#html-template #html #template

dojang

Dojang, a EJS like Html Template Engine

7 releases

0.1.6 Jul 25, 2021
0.1.5 Jun 18, 2021
0.1.0 May 31, 2021

#130 in Template engine

Download history 18/week @ 2023-02-06 22/week @ 2023-02-13 26/week @ 2023-02-20 115/week @ 2023-02-27 918/week @ 2023-03-06 803/week @ 2023-03-13 394/week @ 2023-03-20 286/week @ 2023-03-27 367/week @ 2023-04-03 519/week @ 2023-04-10 598/week @ 2023-04-17 728/week @ 2023-04-24 751/week @ 2023-05-01 925/week @ 2023-05-08 926/week @ 2023-05-15 928/week @ 2023-05-22

3,593 downloads per month

MIT license

160KB
4K SLoC

Dojang

Test and Coverage

Dojang is a Html template engine, as a drop in replacement for EJS. Though it does not supports 100% of the javascript syntax, it supports enough to cover the basic usages.

Features

  • Supports basic javascript. (if, for, while, etc.)
  • Supports script and output tags. (<%, <%-, <%=)
  • Supports calling external functions.

How to use?

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"
    );

Features coming soon.

  • Support for file includes (<%- .. >)
  • Optimization.

Dependencies

~520–800KB
~18K SLoC