4 个版本

0.1.3 2020 年 11 月 17 日
0.1.2 2020 年 11 月 13 日
0.1.1 2020 年 11 月 12 日
0.1.0 2020 年 11 月 12 日

模板引擎 中排名第 353

MIT/Apache

16KB
185

terender - 从数据文件中渲染 tera 模板

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

terender 是一个简单的命令行工具,用于从数据文件中渲染 tera 模板。

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

terender - 从数据文件中渲染 tera 模板

terender 是一个简单的命令行工具,用于从数据文件中渲染 tera 模板,它使用来自文件的结构化输入数据。

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

# Our products
{% for category in categories %}
## {{ category.name }} ({{ category.articles | length }} articles)

{% for article in category.articles -%}
* {{ article }}
{% endfor -%}

{% endfor -%}

{
    "categories": [
        {
            "name": "Sports",
            "articles": [
                "Training shoes",
                "Bicycle"
            ]
        },
        {
            "name": "Electronics",
            "articles": [
                "Mobile phone",
                "USB memory stick",
                "E-Book reader"
            ]
        },
        {
            "name": "Food",
            "articles": [
                "Cheese",
                "Apple",
                "Milk"
            ]
        }
    ]
}

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

$ terender products.template.md products.json
# Our products

## Sports (2 articles)

* Training shoes
* Bicycle

## Electronics (3 articles)

* Mobile phone
* USB memory stick
* E-Book reader

## Food (3 articles)

* Cheese
* Apple
* Milk
$

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

cargo install terender

terender 是一个简单的命令行工具,用于渲染模板文件,它使用来自文件的结构化输入数据。

cargo install -f terender

特殊情况

文件中顶级非对象单数据文件

tera 模板渲染只能渲染具有命名字段的实体(例如 JSON 对象或 YAML 映射)。如果数据输入文件在顶层包含其他内容,例如数组/列表/序列或原始类型,则该实体会被包裹在一个包含名为 data 的单个字段的对象中,以便处理该输入。

[
    "hello",
    "world"
]

在处理之前将变为

{
    "data": [
        "hello",
        "world"
    ]
}

使用多个数据文件

如果您想在渲染中使用多个数据文件,您可以这样操作。如果您传递多个数据文件参数,这些参数将被包裹在一个包含一个 data 字段的顶层对象中,该字段是一个包含所有数据文件的数组。

如果传递这两个文件到处理过程

# This is file1.toml

[details]
version = "1.0"
{
    "information": "this is file2.json"
}

传递给模板的数据将如下所示(JSON 格式)

{
    "data": [
        {
            "details": {
                "version": "1.0"
            }
        },
        {
            "information": "this is file2.json"
        }
    ]
}

技术细节

这个工具只是对现有功能进行的小型实现。重头戏是由这个工具使用的库 crate 完成的。

正是由于这些优秀的实现,这个 crate 才能如此简洁且易于实现。

给包维护者的提示

如果您想为操作系统发行版打包此工具,请随时操作。如果您这样做,我很高兴您能通知我,但这不是强制性的。

如果您想与您的软件包一起部署 shell 完成脚本,可以通过将环境变量 TERENDER_GENERATE_SHELL_COMPLETIONS 设置为相对或绝对目录路径来生成这些脚本,该路径将生成 clap 支持的所有 shell 的完成文件。

变更日志

版本 0.1.3

  • 允许使用多个数据输入文件

版本 0.1.2

  • 添加对 YAML 数据文件的支持
  • 添加对 TOML 数据文件的支持

版本 0.1.1

  • 添加对将顶层非对象类型包装到包含 data 字段的对象中以便处理的支撑。

版本 0.1.0

  • 首次发布

依赖项

~11–21MB
~280K SLoC