#markdown-html #data-transformation #templating #cli-tool #tera #header #config-file

app jinji

用于处理来自文件或 stdin 的文本的命令行工具,具有模板和格式选项

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.mdcat 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