18 个版本 (9 个重大更新)
新版本 0.9.1 | 2024年8月15日 |
---|---|
0.8.0 | 2024年8月8日 |
0.5.1 | 2024年7月1日 |
0.2.0 | 2024年3月24日 |
0.1.2 | 2023年11月1日 |
4 在 #sass 中
每月下载量 1,037
270KB
7K SLoC
Malva 是一个可配置、智能且快速的 CSS、SCSS、Sass 和 Less 格式化工具。
基本用法
您可以使用 format_text
函数对源代码字符串进行格式化。
use malva::{config::FormatOptions, format_text, Syntax};
let options = FormatOptions::default();
assert_eq!("a {
color: red;
}
", &format_text("a{color:red}", Syntax::Css, &options).unwrap());
有关配置的详细文档,请参阅 GitHub 上的 配置。
如果源代码中有语法错误,它将返回 Err
use malva::{config::FormatOptions, format_text, Syntax};
let options = FormatOptions::default();
assert!(format_text("a{", Syntax::Css, &options).is_err());
打印 AST
如果您已经使用 Raffia 解析了 AST,则可以使用 print_stylesheet
来打印它。
请注意,尽管您已经有了 AST,但仍需要提供注释并指定语法,还要手动创建 LineBounds
。
use malva::{config::FormatOptions, print_stylesheet, LineBounds, Syntax};
use raffia::{ast::Stylesheet, ParserBuilder};
let input = "a{color:red}";
let mut comments = vec![];
let mut parser = ParserBuilder::new(input)
.syntax(Syntax::Css)
.comments(&mut comments)
.build();
let stylesheet = parser.parse::<Stylesheet>().unwrap();
let options = FormatOptions::default();
let line_bounds = LineBounds::new(input);
assert_eq!("a {
color: red;
}
", &print_stylesheet(&stylesheet, &comments, Some(input), line_bounds, Syntax::Css, &options));
依赖项
~2–2.8MB
~56K SLoC