3 个稳定版本

1.2.0 2021年4月26日
1.1.0 2021年4月26日
1.0.0 2021年4月21日

模板引擎 中排名 #406

MIT 许可证

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