3 个稳定版本
1.2.0 | 2021年4月26日 |
---|---|
1.1.0 | 2021年4月26日 |
1.0.0 | 2021年4月21日 |
在 模板引擎 中排名 #406
11KB
174 行
Markdown Bakery
CLI 工具,用于烘焙您的 MD 文件
关于
在你的 Rust 开发生涯中,你至少想确保一次你的 markdown 文件中的所有代码示例都是最新的、正确的,并且格式正确,但现有的工具无法做到这一点 - 别担心!
Markdown Bakery 允许你创建 markdown 模板文件,通过特殊的代码块从源文件中注入 Rust 代码
# Content of `./src/main.rs`:
```rust: source
./src/main.rs
```
在语言部分之后,你告诉 MD Bakery 这个代码部分需要从代码块内指定的路径注入源代码。
如果你想转义 MD Bakery 代码块,你可以在 !
前面放置 source
(不幸的是,我们无法在这里展示它,因为这会在你目前正在阅读的说明文件中打印出双重的 !
,更多关于原因稍后说明)。
如果你更喜欢注入代码文件的不同部分,而不是将每个代码片段保存在单独的文件中,你所要做的就是注入命名源
# Snippet A:
```rust: source @ snippet-a
./src/main.rs
```
# Snippet B:
```rust: source @ snippet-b
./src/main.rs
```
然后在你源文件中,你可以使用如下注释指定代码片段所在的命名代码块
use std::collections::HashMap;
// [md-bakery: begin @ snippet-a]
#[derive(Debug)]
struct Foo {
bar: HashMap<String, usize>,
}
// [md-bakery: end]
fn main() {
// [md-bakery: begin @ snippet-b]
let foo = Foo {
bar: {
let mut result = HashMap::new();
result.insert("answer".to_owned(), 42);
result
},
};
println!("{:?}", foo);
// [md-bakery: end]
}
然后所有这些都渲染为
# Snippet A:
```rust
#[derive(Debug)]
struct Foo {
bar: HashMap<String, usize>,
}
```
# Snippet B:
```rust
let foo = Foo {
bar: {
let mut result = HashMap::new();
result.insert("answer".to_owned(), 42);
result
},
};
println!("{:?}", foo);
```
当然,这个说明文件也被烘焙了,你可以在 /examples
文件夹中看到模板源代码!所以,要查看如何转义 MD Bakery 代码块,去那里自己看看吧:D
用法
md-bakery 1.0.0
Patryk 'PsichiX' Budzynski <[email protected]>
Markdown Bakery CLI app
USAGE:
mdbakery.exe [OPTIONS] --input <FILE> --output <FILE>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-i, --input <FILE> Markdown template file name
-o, --output <FILE> Markdown generated file name
-r, --root <FILE> Source files root path
待办事项
-
添加
exec
代码块变体,它运行具有块内容中指定的参数的可执行文件,然后输出其 stdout```bash: exec cargo run -- --help ```
依赖关系
~2.8–4MB
~60K SLoC