11 个版本
0.2.4 | 2024 年 6 月 20 日 |
---|---|
0.2.3 | 2024 年 5 月 8 日 |
0.2.1 | 2024 年 4 月 23 日 |
0.1.7 | 2024 年 4 月 18 日 |
#1842 在 命令行工具 中
87 每月下载量
31KB
618 代码行
Jango
一个用于填充模板的 CLI 应用程序。
特性
- 使用受 Jinja 启发的 Tera 语法创建模板。
- 自定义
content
字段,可以通过命令行进行填充。 - 使用 Markdown TOML 前置的任意模板字段。
- 顺便说一下,是用 Rust 编写的。
安装
预构建二进制文件
通过 shell 脚本安装预构建二进制文件
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/DavoReds/jango/releases/download/v0.2.4/jango-installer.sh | sh
这适用于 Linux 和 MacOS。
通过 powershell 脚本安装预构建二进制文件
powershell -c "irm https://github.com/DavoReds/jango/releases/download/v0.2.4/jango-installer.ps1 | iex"
您也可以从 发布页面 手动下载预构建的二进制文件。
Crates.io
如果您已安装 Rust,您可以使用 crates.io 注册表从源代码构建 Jango。
cargo install jango
或者使用 cargo-binstall 下载预构建的二进制文件。
cargo binstall jango
使用方法
使用 CLI 参数
此模式允许使用包含 Tera 的内置函数和名为 content
的变量的模板,该变量对应于同名的命令行参数。
模板可能看起来像这样
---
date: {{ now() | date(format="%F") }}
---
# This is a title
{{ content }}
然后您可以使用此命令填充它
jango args template.md output.md -c "Hello, **world\!**"
这将生成此文件
---
date: 2024-04-05
---
# This is a title
Hello, **world!**
如果您正在处理 HTML,您可以使用 --escape
标志来转义传递给命令的输入。
使用 Markdown 文件
当处理更复杂的模板时,您可以使用包含 TOML 前置的 Markdown 文件来传递除文件的 content
之外的任何任意变量。
模板可能看起来像这样
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{{ title }}</title>
</head>
<body>
{{ content | indent }}
</body>
</html>
您可以编写这样的 Markdown 文件
+++
title = "This is a title"
+++
# This is a heading
This is a paragraph.
然后执行以下命令
jango markdown template.html markdown.md output.html
这将生成此文件
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>This is a title</title>
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
贡献
欢迎贡献!
您需要安装 Rust。我还建议安装 Bacon(处理重新编译)和 cargo-nextest(运行测试时的更友好界面)。
我们在向仓库贡献时,也尝试遵循常规提交约定。
(无)许可证
依赖项
~18–29MB
~414K SLoC