#html-templating #template #html

道场

道场,一个类似 EJS 的 Html 模板引擎

7 个版本

0.1.6 2021年7月25日
0.1.5 2021年6月18日
0.1.0 2021年5月31日

#193模板引擎

Download history 485/week @ 2024-01-11 493/week @ 2024-01-18 451/week @ 2024-01-25 374/week @ 2024-02-01 133/week @ 2024-02-08 338/week @ 2024-02-15 381/week @ 2024-02-22 407/week @ 2024-02-29 568/week @ 2024-03-07 434/week @ 2024-03-14 506/week @ 2024-03-21 489/week @ 2024-03-28 468/week @ 2024-04-04 552/week @ 2024-04-11 512/week @ 2024-04-18 449/week @ 2024-04-25

2,061 每月下载量

MIT 许可证

160KB
4K SLoC

道场

Test and Coverage

道场 是一个 Html 模板引擎,作为 EJS 的替代品。尽管它不支持 100% 的 JavaScript 语法,但它支持足够的语法来覆盖基本用法。

特性

  • 支持基本的 JavaScript。 (if, for, while, 等.)
  • 支持脚本和输出标签。 (<%, <%-, <%=)
  • 支持调用外部函数。

如何使用?

use dojang::Dojang;
use serde_json::Value;

// Create a template engine Dojang.
let mut dojang = Dojang::new();

// Load template file under '/my/template/files'
assert!(dojang.load("/my/template/files").is_ok());

// Render a template. "some_template" is the one of the template file under /my/template/files. 
// Note that the context should be provided as a serde_json value.
assert_eq!(
    dojang
        .render(
            "some_template",
            serde_json::from_str(r#"{ "a" : 1 }"#).unwrap()
        )
        .unwrap(),
    " Hi "
    );

assert_eq!(
    dojang
        .render(
            "some_template",
            serde_json::from_str(r#"{ "a" : 2 }"#).unwrap()
        )
        .unwrap(),
    "2"
    );

即将推出特性。

  • 支持文件包含 (<%- .. >)
  • 优化。

依赖

~0.5–1MB
~21K SLoC