2 个不稳定版本
0.2.0 | 2024年4月9日 |
---|---|
0.1.0 | 2024年4月8日 |
738 在 文本处理
每月下载量 24
19KB
220 行
mdbook-collector
一个 mdbook 预处理器,从每篇文章中收集 json/yaml/toml 数据,并构建一个 json 文件
安装
cargo install mdbook-collector
使用 (v0.2.0)
在文章的 markdown 文件中包含
<!-- collect
{
"data": {
"type": "json",
"keywords": ["json", "collect"]
}
}
-->
然后预处理器将解析每篇文章并构建一个综合的 json 文件,该文件是一个映射,其键是每篇文章的 URL 路径,其值是解析数据的 子映射。每篇文章的标题也将添加到子映射中,键名为 "title"。
{
"post/ex/url": {
"title": "Title of this post",
"data" {
"type": "json",
"keywords": ["json", "collect"]
}
},
...
}
- 请注意,在 v.0.1.0 中,此映射的键是文章的名称(标题)。从 v.0.2.0 开始,每篇文章的 URL 路径是键。标题也将添加到每个子映射中。
这个新创建的 json 文件可用于各种目的:例如,在您的附加 .js 文件中。
确保每篇文章的原始 json 数据可以解析为 "映射" 结构。例如,以下内容将无法解析,因此将被忽略
<!-- collect
"data": {
"type": "json",
"keywords": ["json", "collect"]
}
-->
如果 Json 的严格性和无注释性让您感到困扰,请使用 yaml 或 toml 选项!
配置
book.toml
中的配置示例。以下是默认设置
[preprocessor.collector]
input_type = "json"
marker = "collect"
save_path = "collect.json"
add_title = true
input_type
输出文件始终为 .json 格式。但是,您可以在 json
、yaml
或 toml
中选择要解析的输入数据的格式。
例如,使用 toml
<!-- collect
[data]
type = "toml"
keywords=["toml", "collect"] # any comment
-->
预处理器依赖于 serde_json
用于 json 选项,serde_yaml
用于 yaml,以及 toml
用于 toml。yaml 和 toml 选项不仅解析自身格式,还解析 json 格式,因为它们的依赖库是这样工作的。
marker
预处理器尝试解析每个帖子源文件中位于第一个 <!-- collect
和 -->
之间的任何字面量。(<!-- collect
替代 <!-- collect
是可以的。)
您可以更改标记字面量。默认是 collect
。
save_path
新创建的json文件将保存在一个路径中,该路径结合了书籍的 src
目录和给定的 save_path
。
它必须保存在 src
目录下,以便自动复制到构建目录。
🪧 请注意,
mdbook serve
监视src
目录。一旦您启动mdbook serve
命令,然后更改src
目录下的任何内容,收集器将重新构建json文件,这会导致监视和服务的重复循环。为了避免这种情况,在书籍的根目录中创建一个 .gitignore 文件,并添加要构建的json文件的名称。
add_title
收集器创建一个json映射,其键是每个帖子的URL路径,其值是从每个帖子源文件解析的子映射。
收集器在子映射中插入更多信息:每个帖子的标题作为值,“title”作为键。如果您不想添加标题信息,设置 add_title
为 false。
依赖关系
~13–24MB
~350K SLoC