#recipe #mdbook #data #generate #parsed #generator #cookbook

app cookbook_src_generator

使用解析后的 Rust 烹饪书数据为 mdbook 生成文件

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017 年 11 月 14 日

#1783开发工具

MIT 许可证

7KB
108

mdBook 的 Rust 烹饪书源代码解析器和生成器

如何使用

将此包放在 rust-cookbook 包文件夹内。在编译烹饪书之前,使用此文件夹内的 cargo run。编译 rust-cookbook。

文件夹结构


data -> data folder
 
 category -> category folder (folder name -> category link)

 meta.json -> category meta 

  recipe -> recipe folder (folder name -> recipe link)

   content.md -> recipe content

   meta.json -> recipe metadata

内部

  • 遍历分类
  • 对于每个分类遍历食谱
  • 将食谱元数据和内容解析到 Rust 结构体中
  • 收集所有食谱并按 "order" 顺序对食谱元数据进行排序
  • 将解析器.rs 中的解析数据传递到生成器.rs
  • 使用分类元数据生成页面标题
  • 使用食谱元数据生成目录
  • 逐个生成食谱,使用解析后的食谱

移动数据

有三种方法可以以新的方式重新组织数据

  1. 逐个更改并在构建 pros 中包含
  • 我们可以逐个进行
  • 我们无法在移动所有内容之前开始使用系统
  1. 批量更改(整个分类)优点
  • 我们可以更快地开始使用它
  • 我们无法将所有内容分成小块移动
  1. 添加跳过选项(跳过分类并构建其他)优点
  • 我们可以分步骤移动数据
  • 需要实现

重新组织数据困难吗?会花费很多时间吗?

我想一个人需要几个小时,这非常简单。问题可能在于开放的 PR,因为它们修复了旧文件。

我们应该重新组织数据吗?

我认为是的。

缺点

  • 我们需要投入一些精力将数据移动到新格式
  • 我们需要维护新工具

优点

  • 数据更容易组织
  • 目录自动生成

新工具复杂吗?

不。它大约有 240 行代码,并使用正则表达式、serde、serde_derive、serde_json。还有一些重构的空间。

为工具创建另一个存储库

可能使用不同的存储库来维护这个工具会更好,但我们需要在代码中做一些更改。它是一个二进制文件,可能可以通过 "cargo install" 安装。

依赖关系

~8MB
~174K SLoC