1 个不稳定版本
0.1.0 | 2022年1月23日 |
---|
#1557 在 文本处理
23KB
499 代码行
Corg
Corg 是一个类似 cog 的工具,使用 Rust 编写。
来自 Ned 的直接引用
Cog 是一个文件生成工具。它允许您将 Python 代码片段用作源文件中的生成器,以生成所需的任何文本。
由于是用 Python 编写的,Cog 自然会执行 Python 并与其进行更深入的集成,但在这里是不可能的。
相反,Corg 允许选择任何可执行文件(Python、Bash 等),这些文件可以接受管道输入。下面显示,Corg 使用类似 shebang 的机制。
示例
这个工具最直观的动机示例是保持文档与其来源的一致性。无论是验证 CLI 帮助文本还是执行代码示例。
本文件就是一个很好的示例。下面在 CLI 部分嵌入以下代码块。
<!-- [[[#!/usr/bin/env bash
cargo run --features cli -- --help
]]] -->
正如您下面所见,它输出了帮助文本。查看原始 README 源代码,您会注意到用于生成输出的不可见、注释掉的代码段!
此存储库的 CI 然后运行:cargo run --features cli -- README.md -r --check --checksum
以验证其保持同步。
安装
使用 Cargo
cargo install corg --features=cli
下载版本
- 从 版本 下载预构建的二进制文件
CLI
使用自身生成下面的输出!
corg 0.1.0
A cog-like tool
USAGE:
corg [OPTIONS] <INPUT>
ARGS:
<INPUT> The input file
OPTIONS:
-c, --checksum Checksum the output to protect it against accidental change
--check Check that the files would not change if run again
-d, --delete-blocks Delete the generator code from the output file
-e Warn if a file has no cog code in it
-h, --help Print help information
--markers <MARKERS> The patterns surrounding cog inline instructions. Should include
three values separated by spaces, the start, end, and end-output
markers
-o, --output <OUTPUT> Write the output to a file instead of stdout
-r, --replace Write the output to the original input file, supercedes `--output`
-V, --version Print version information
-x, --omit-output Omit all the generated output without running the generators
库
上面的 CLI 是 corg 内部结构的薄包装。是否有用并不明显,但它是可用的!
依赖
~2–14MB
~130K SLoC