#rss #mdbook-preprocessor #generate

bin+lib mdbook-rss

从您的章节生成 RSS 联想预处理器

1 个不稳定版本

0.1.0 2021 年 3 月 7 日

#13#mdbook-preprocessor

自定义许可

26KB
232 行代码(不含注释)

mdbook-rss

mdBook 提供的预处理器,可从您的章节生成 RSS 联想。

代码基于文档中的 示例 构建。

使用和配置

首先,确保将其安装到您的 $PATH 中,以便 mdbook 可以找到并使用它

cargo install --git <url to this repository>

配置:Feed

本节描述了针对 RSS 联想本身的“全局”配置。

mdbook-rss 在您的 book.toml 中查找 [preprocessor.rss] 部分

[preprocessor.rss]
files-glob = "posts/*.md"
url-base = "https://example.com/"

从 book.toml 中获取的可用配置键

  • files-glob:用于指定要包含在 RSS 联想中的文件的文件通配符
  • url-base:一个 URL,与文件的路径结合使用以构建文章的链接。
    基本上,这是 mdbook 托管域和书的 site-url 选项的组合。
    请注意,由于 url::Url::join 的实现细节,它应以 '/' 结尾。

生成的 RSS 联想将写入与您的 SUMMARY.md 旁边的 rss.xml 文件,因此可以通过 <url-base>/rss.xml 访问。

配置:书籍章节和 RSS 项目

本节描述了基于章节的配置。

除了全局配置之外,您还可以通过定义类似如下的前端元数据来配置您书籍中每个章节的一些属性

---
pub_date: Wed, 03 Mar 2021 12:00:00 GMT
description: A helpful example
---

# Example
Rest of your markdown

目前仅支持 pub_datedescription,其中描述是可选的。

注意:此前端元数据将从中删除每个章节,因此它将不再适用于在此之后运行的预处理器!

已知问题/潜在改进

  • 目前还没有实际的测试。我做的唯一测试是检查在新闻源阅读器中的结果源。
  • 该预处理程序使用 markdown crate 将 RSS 项目的内容渲染为 HTML;这意味着生成的 RSS 源中可能无法正确渲染 mdbook 特定功能。
  • 前端内容被移除,使其不可用/与其他在此之后运行的也使用前端内容的预处理程序不兼容。
    保留前端内容并使用用于移除前端内容的单独预处理程序将其移除?
  • 此预处理程序目前假设每个 RSS 项都由同一人(们)编写,并仅用逗号分隔每个 RSS 项的书籍 作者 字段。
    这可以在前端内容中覆盖吗?
  • RSS 源的标题以及每个项目的标题都来自书籍和章节。
    这可以在 book.toml 和前端内容中覆盖吗?

许可证

此存储库中的代码在 Mozilla Public License Version 2.0 下发布。

依赖项

~20–33MB
~583K SLoC