tag-changelog

一个 Swift Package Manager 的 Markdown 解析器,使用 Github Flavored Markdown。因此,它自带一系列 Markdown 扩展,例如围栏代码块、表格、删除线、硬换行和自动链接。

此外,Parsley 支持 Markdown 文档中的嵌入式元数据,并且它将文档标题从文档正文中分离出来。

let input = """
---
author: Kevin
tags: Swift, Parsley
---

# Hello World
This is the body
"""

let document = try Parsley.parse(input)
print(document.title) // Hello World
print(document.body) // <p>This is the body</p>
print(document.metadata) // ["author": "Kevin", "tags": "Swift, Parsley"]

安装

Parsley 可以通过 Swift Package Manager 获取,并在 macOS 和 Linux 上运行。

.package(url: "https://github.com/loopwerk/Parsley", from: "0.5.0"),

在 Saga 中用作阅读器

Parsley 可以用作静态站点生成器 Saga 中的阅读器,使用 SagaParsleyMarkdownReader

修改生成的 HTML

Parsley 没有插件系统,它纯粹依赖于底层的 cmark-gfm 来将 Markdown 渲染为 HTML。如果您想修改生成的 HTML,例如,如果您想向所有外部链接添加 target="blank"SwiftSoup 是实现此目的的好方法。

cmark 之上添加插件系统意味着 Parsley 将无法再依赖 cmark 的出色输出;相反,Parsley 将不得不解析其 AST 并基于此自行生成 HTML,因此,重新发明(非常复杂的)轮子。