1 个不稳定版本
0.1.0 | 2024 年 3 月 22 日 |
---|
#168 在 模板引擎
20KB
172 行
金吉
描述
金吉是一个基于 Rust 的动态内容生成工具,利用 Tera 模板和 REGEX 进行模式匹配。它自动并简化了复杂文本文件的创建,非常适合系统配置和数据转换,提供可定制、可扩展的文本处理解决方案。
特性
- Tera 模板渲染:动态处理和渲染示例。
- 标题提取和渲染:支持源文件中标题的循环渲染。
- Markdown 到 HTML 转换:将 Markdown 文本转换为 HTML 格式。
- 自定义 Tera 过滤器和函数:包括如
Banana
过滤器和HttpGet
函数的实现。
入门
安装
cargo install jinji
使用
运行项目
cargo run -- --source <path_to_your_source_file>
示例
jinji --source examples/concept.md
或 cat examples/concept.md | jinji
源代码位置
---
vars:
a1: yahoo
calls:
url1: https://google.com
url2: https://{{ vars.a1 }}.com
url3: {{ calls.url1 | upper }}xxx{{ calls.url2 }}:{{ 2 * 8 }}
fruits: ["Apple", "Banana", "Cherry"]
---
# General form
How much us 8 x 6 ? it's {{ 8 * 6 }}
And that's {{ vars.a1 | upper }}!
At: {{ calls.url1 | banana(count=3) }}
Get: {{ http_get(url=calls.url1) | get(key="headers") | get(key="date") }}
Cyclic: {{ calls.url3 }}
{{ "2019-09-19T13:18:48.731Z" | date(timezone="America/New_York") }}
{{ 1648252203 | date(format="%A %-d %B", timezone="Europe/Paris", locale="fr_FR") }}
{{ 3 * 1.20 * 22 + 3 * 2.00 * 22 }}
{% for fruit in fruits %}
<li>{{ fruit }}</li>
{% endfor %}
结果
# General form
How much us 8 x 6 ? it's 48
And that's YAHOO!
At: 🍌🍌🍌https://google.com🍌🍌🍌
Get: Fri, 22 Mar 2024 09:04:03 GMT
Cyclic: HTTPS://GOOGLE.COMxxxhttps://yahoo.com:16
2019-09-19
Saturday 26 March
211.2
<li>Apple</li>
<li>Banana</li>
<li>Cherry</li>
许可
在 MIT 许可下分发。有关更多信息,请参阅 LICENSE
。
依赖项
~15–29MB
~473K SLoC