#css-class #file-content #tailwind #sorting #sorter

rustywind_core

一个用于排序 Tailwind CSS 类的库

3 个版本

0.1.2 2024年5月28日
0.1.1 2024年4月12日
0.1.0 2024年4月12日

#3 in #sorter

Download history 14/week @ 2024-05-13 56/week @ 2024-05-20 316/week @ 2024-05-27 20/week @ 2024-06-03 120/week @ 2024-06-10 21/week @ 2024-06-17 10/week @ 2024-06-24 31/week @ 2024-07-01 80/week @ 2024-07-08 16/week @ 2024-07-15 263/week @ 2024-07-22 312/week @ 2024-07-29 204/week @ 2024-08-05 260/week @ 2024-08-12 200/week @ 2024-08-19

1,004 每月下载量
4 个crate(3 个直接) 中使用

Apache-2.0

140KB
5.5K SLoC

RustyWind Mean Bean CI npm version crates.io

安装

可通过 npm 使用

yarn global add rustywind

npm install-g rustywind

从 homebrew 安装(mac 和 linux)

brewinstall avencera/tap/rustywind

从 crates.io 安装

cargoinstall rustywind

cargobinstall rustywind

从 GitHub 发布版安装

curl -LSfshttps://avencera.github.io/rustywind/install.sh | sh -s ----git avencera/rustywind

直接从 GitHub 下载发布版: github.com/avencera/rustywind/releases

可以使用 Docker 版本

docker run--rm-v$PWD:/app avencera/rustywind:latest<rustywind 参数>

用法

运行 rustywind 并将输出更新后的文件内容路径传递给终端

  • rustywind.

如果要在原地重新组织所有类并更改文件,请使用带有 --write 标志的运行

  • rustywind--write.

使用路径和 --dry-run 运行 rustywind 以获取将要更改的文件列表

  • rustywind--dry-run.

在 STDIN 上运行 rustywind

  • echo"<FILE CONTENTS>" |rustywind--stdin

在 CI 中运行,如果找到未排序的类则退出错误

  • rustywind--check-formatted.

使用自定义排序器运行 RustyWind。配置文件 config_file.json 应该有一个顶层条目 sortOrder,它是一个数组,包含要排序的类的顺序。

  • rustywind--config-file config_file.json

与 Tailwind prettier 插件一起使用

  • rustywind--output-css-file<到 Tailwind 生成的 CSS 文件的路径>

  • rustywind--vite-css<到 Vite 生成的 CSS 的 URL>

Usage: rustywind [OPTIONS] [PATH]...

Run rustywind with a path to get a list of files that will be changed
  rustywind . --dry-run

If you want to reorganize all classes in place, and change the files run with the `--write` flag
  rustywind --write .

To print only the file names that would be changed run with the `--check-formatted` flag
  rustywind --check-formatted .

If you want to run it on your STDIN, you can do:
  echo "<FILE CONTENTS>" | rustywind --stdin

Arguments:
  [PATH]...
          A file or directory to run on

Options:
      --stdin
          Uses stdin instead of a file or folder

      --write
          Changes the files in place with the reorganized classes

      --dry-run
          Prints out the new file content with the sorted classes to the terminal

      --check-formatted
          Checks if the files are already formatted, exits with 1 if not formatted

      --allow-duplicates
          When set, RustyWind will not delete duplicated classes

      --config-file <CONFIG_FILE>
          When set, RustyWind will use the config file to derive configurations. The config file current only supports json with one property sortOrder, e.g. { "sortOrder": ["class1", ...] }

      --output-css-file <OUTPUT_CSS_FILE>
          When set RustyWind will determine the sort order by the order the class appear in the the given css file

      --vite-css <VITE_CSS>
          When set RustyWind will determine the sort order by the order the class appear in the CSS file that vite generates.

          Please provide the full URL to the CSS file ex: `rustywind --vite-css "http://127.0.0.1:5173/src/assets/main.css" . --dry-run`

          Note: This option is experimental and may be removed in the future.

      --skip-ssl-verification
          When set, RustyWind will skip SSL verification for the vite_css option

      --ignored-files <IGNORED_FILES>
          When set, RustyWind will ignore this list of files

      --custom-regex <CUSTOM_REGEX>
          Uses a custom regex instead of default one

      --quiet
          Do not print log messages

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

What

受到Ryan Heybournheadwind vscode 插件的启发。这是一个 CLI 工具,可以遍历您的项目并对所有Tailwind CSS 类进行排序。

它还会删除它找到的任何重复类。


lib.rs:

您需要的功能在sorter模块中。使用文件内容和排序器选项调用sorter::sort_file_contents

parser模块包含解析文件中类的函数。函数parser::parse_classes_from_file将返回一个包含类及其顺序的HashMap<String, usize>

您可以使用此来创建自定义排序器。使用此自定义排序器,您可以调用sorter::sort_file_contents

依赖

~4–5MB
~86K SLoC