7 releases
0.2.1 | Oct 21, 2024 |
---|---|
0.2.0 | Oct 21, 2024 |
0.1.4 | Oct 21, 2024 |
0.1.2 | May 28, 2024 |
0.1.1 | Apr 12, 2024 |
#3 in #sorter
1,811 downloads per month
Used in 4 crates
(3 directly)
150KB
5.5K
SLoC
RustyWind
Install
Available via npm
yarn global add rustywind
or
npm install -g rustywind
or
Install from homebrew (mac and linux):
brew install avencera/tap/rustywind
or
Install from crates.io:
cargo install rustywind
or
cargo binstall rustywind
or
Install from a github release:
curl -LSfs https://avencera.github.io/rustywind/install.sh | sh -s -- --git avencera/rustywind
or
Download a release directly from github: github.com/avencera/rustywind/releases
or
You can use the dockerized version
docker run --rm -v $PWD:/app avencera/rustywind:latest <rustywind arguments>
Usage
Run rustywind with a path to output updated file contents to the terminal:
rustywind .
If you want to reorganize all classes in place, and change the files run with the --write
flag
rustywind --write .
Run rustywind with a path and the --dry-run
to get a list of files that will be changed:
rustywind --dry-run .
Run rustywind on your STDIN:
echo "<FILE CONTENTS>" | rustywind --stdin
Run in CI, exit with error if unsorted classes are found:
rustywind --check-formatted .
Run RustyWind with a custom sorter. The config_file.json
should have a top level entry of sortOrder
which is an array with the classes listed in the order you want them sorted.
rustywind --config-file config_file.json
Use with tailwind prettier plugin
-
rustywind --output-css-file <path to the tailwind generated css file>
-
rustywind --vite-css <url to the css generated by vite>
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
Inspired by Ryan Heybourn's headwind vscode plugin. This is a CLI tool that will look through your project and sort all Tailwind CSS classes.
It will also delete any duplicate classes it finds.
lib.rs
:
The functionality you need is in the sorter
module.
Call sorter::sort_file_contents
with the file contents and the sorter options.
The parser
module contains the functions to parse the classes from a file.
The parser::parse_classes_from_file
function will return a HashMap<String, usize>
with the classes and their order.
You can use this to create a custom sorter. Using this customer sorter you can call sorter::sort_file_contents
.
Dependencies
~4–5.5MB
~87K SLoC