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命令行工具

Download history 268/week @ 2024-04-19 28/week @ 2024-04-26 143/week @ 2024-05-03 36/week @ 2024-05-10 8/week @ 2024-05-17 1/week @ 2024-05-24 1/week @ 2024-06-07 80/week @ 2024-06-14 49/week @ 2024-06-21 14/week @ 2024-06-28 77/week @ 2024-07-05 80/week @ 2024-07-26 7/week @ 2024-08-02

87 每月下载量

无许可证

31KB
618 代码行

GitHub License GitHub Actions Workflow Status GitHub Release Crates.io Version Crates.io MSRV

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