1 个不稳定版本
0.2.1 | 2024 年 7 月 31 日 |
---|
在 模板引擎 中排名 185
每月下载量 117 次
14KB
325 行代码(不包括注释)
Handlematters
带有 Handlebars 和内联 shell 脚本的独立模板系统
简介
Handlematters 是一个结合 Handlebars 和 shell 脚本的模板系统。它旨在替代 envsubst 等简单替换任务。
以下是一个 Handlematters 模板的示例
hello.hms
Any text before the context or template block is just a comment.
It will not be output.
--- context ---
greeting: echo hello
list: |
for v in foo bar baz; do
echo "* $v"
done
--- template ---
{{greeting}}, world
{{list}}
将此文件传递给 handlematters 将生成以下输出
$ handlematters hello.hms
hello, world
* foo
* bar
* baz
让我们仔细看看。
--- context ---
greeting: echo hello
list: |
for v in foo bar baz; do
echo "* $v"
done
context
块是一个 YAML 文档。每个属性的值将作为 shell 脚本执行,输出将是结果值。
--- template ---
{{greeting}}, world
{{list}}
template
块是一个 Handlebars 模板。使用 {{...}}
输出上下文值。如果您不熟悉 Handlebars 语法,请参阅 https://handlebars.node.org.cn/。
让我们看看一个更实际的例子
Note: The expression in triplet braces {{{...}}} will be output without HTML escaping.
--- context ---
name: cargo metadata --format-version=1 --no-deps | jq -r .packages[0].name
author: cargo metadata --format-version=1 --no-deps | jq -r .packages[0].authors[0]
--- template ---
{{{name}}} by {{{author}}}
将生成
handlematters by Keita Urashima <ursm@ursm.jp>
当然,这个 README 也是由 Handlematters 生成的。查看:https://github.com/ursm/handlematters/blob/main/README.md.hms
使用方法
Self-contained template system with Handlebars and inline shell scripts
Usage: handlematters [FILE]
Arguments:
[FILE] Input file [default: stdin]
Options:
-h, --help Print help
-V, --version Print version
依赖关系
~6.5MB
~133K SLoC