railwind

Crates.iorailwind
lib.rsrailwind
version0.1.5
sourcesrc
created_at2022-10-13 21:03:42.617647
updated_at2023-02-18 15:29:03.643449
descriptionTailwind compiler for utility classes written in Rust
homepagehttps://github.com/pintariching/railwind
repositoryhttps://github.com/pintariching/railwind
max_upload_size
id687471
size1,107,166
pintariching (pintariching)

documentation

README

Railwind

Tailwind compiler rewritten in Rust

Description

The main goal, is to decouple the original Tailwind project from Node and NPM and add warning messages with some recovery in specific situations with the side goal of possibly making it even faster and smaller (Tailwind already has a standalone version, but the binary size is a whooping 35 mb).

Getting started

Installation

To install with cargo, run cargo install railwind to install the CLI.

Using railwind

To first start, generate a default railwind.config.ron file using railwind -g or railwind --generate. At the moment, the config supports only two values:

content

Similar to tailwinds option, configure a path to all your HTML templates, Rust or JS files.

extend_collection_options

The compiler reads the file extension and selects an apropriate regex or way to parse that file. For example, files ending with .html will be parsed with a regex: (?:class|className)=(?:["]\W+\s*(?:\w+)\()?["]([^"]+)["]" to extract the class names. Similarly, you can specify your own regex to parse custom files:

extend_collection_options: Some({
    "rs": Regex(r#"(?:class)=(?:["]\W+\s*(?:\w+)\()?["]([^"]+)["]"#)
})

or give hints to the compiler, for example to parse a rs file as a html file:

extend_collection_options: Some({
    "rs": Html
})

To check out what other options are available, check out the documentation or the railwind::CollectionOptions enum which can be expaned.

After setting up the config file, you can run tailwind to read the railwind.config.ron and generate a railwind.css file in the same directory. You can optionally specify a different config file with the -c flag and a different output file using the -o flag.

Authors

Contributors names and contact info

@pintariching

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

Inspiration, code snippets, etc.

Commit count: 201

cargo fmt