#markup-language #jinja #html #svelte #astro #vue #github

markup_fmt

可配置的HTML、Vue、Svelte、Astro、Angular、Jinja、Twig、Nunjucks和Vento格式化器

22个版本 (11个重大变更)

0.12.0 2024年8月14日
0.11.0 2024年7月19日
0.10.0 2024年7月1日
0.6.0 2024年3月2日
0.2.1 2023年11月11日

#61 in 模板引擎

Download history 8/week @ 2024-04-28 130/week @ 2024-05-05 23/week @ 2024-05-12 18/week @ 2024-05-19 5/week @ 2024-05-26 205/week @ 2024-06-02 14/week @ 2024-06-09 19/week @ 2024-06-16 9/week @ 2024-06-23 185/week @ 2024-06-30 2/week @ 2024-07-07 339/week @ 2024-07-14 5/week @ 2024-07-21 205/week @ 2024-07-28 23/week @ 2024-08-04 354/week @ 2024-08-11

每月下载量616次
用于holochain_scaffolding_cli

MIT许可证

220KB
5.5K SLoC

markup_fmt是一个可配置的HTML、Vue、Svelte、Astro、Angular、Jinja、Twig、Nunjucks和Vento格式化器。

基本用法

您可以使用format_text函数格式化源代码字符串。

use markup_fmt::{config::FormatOptions, format_text, Language};

let options = FormatOptions::default();
assert_eq!("<div class=\"container\"></div>\n", &format_text(
    "<div class=container></div>",
    Language::Html,
    &options,
    |code, _| Ok::<_, std::convert::Infallible>(code.into()),
).unwrap());

有关配置的详细文档,请参阅GitHub上的配置

如果源代码中有语法错误,它将返回 [Err]

use markup_fmt::{config::FormatOptions, format_text, FormatError, Language, SyntaxError};

let options = FormatOptions::default();
assert!(matches!(
    format_text(
        "<div>",
        Language::Html,
        &options,
        |code, _| Ok::<_, std::convert::Infallible>(code.into()),
    ).unwrap_err(),
    FormatError::Syntax(SyntaxError { .. })
));

外部格式化器也可以返回 [Err]。此错误将汇总并返回在 FormatError::External

use markup_fmt::{config::FormatOptions, format_text, FormatError, Language};

struct ExternalFormatterError;

let options = FormatOptions::default();
assert!(matches!(
    format_text(
        "<script>a</script>",
        Language::Html,
        &options,
        |_, _| Err(ExternalFormatterError),
    ).unwrap_err(),
    FormatError::External(errors) if !errors.is_empty()
));

依赖项

~1.4–2MB
~28K SLoC