#formatter #css #sass #configurable #less #formatting #smart

malva

可配置、智能且快速的 CSS、SCSS、Sass 和 Less 格式化工具

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

Download history 1/week @ 2024-04-24 19/week @ 2024-05-01 171/week @ 2024-05-08 157/week @ 2024-05-15 32/week @ 2024-05-22 4/week @ 2024-05-29 77/week @ 2024-06-05 6/week @ 2024-06-12 152/week @ 2024-06-19 161/week @ 2024-06-26 90/week @ 2024-07-03 1/week @ 2024-07-10 5/week @ 2024-07-17 53/week @ 2024-07-24 325/week @ 2024-07-31 653/week @ 2024-08-07

每月下载量 1,037

MIT 许可证

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