#markdown #parse-markdown #front-matter #file #matters

markdown-parser

😎 这是一个可以解析 markdown 文件的 crate

3 个版本

0.1.2 2021年4月10日
0.1.1 2021年4月9日
0.1.0 2021年4月9日

16#parse-markdown

每月 45 次下载

MIT/Apache

18KB
330

Markdown 解析器

😎 这是一个可以解析 markdown 文件的 crate。

特别是当你有 markdown 文件中的 front matters 时,这将帮助你解析它们。

开始

使用这个解析器总是很容易。

只需开始读取一个 markdown 文件并解析它。

use markdown_parser::{
    read_file, Error
};

fn main() -> Result<(), Error> {
    let md = read_file("$PATH.md")?;
    let content = md.content();
    println!("{}", content);
    Ok(())
}

前端内容

md-parser 有 3 种前端内容格式,可以在运行时确认。

enum Format {
    JSON,
    YAML,
    TOML,
}

这些格式是最流行的前端内容格式,如果你不包括在内,可能需要自己进行解析工作。

你可以访问 文档 了解关于 crate 的更多信息。

适配

有时你不得不将 markdown 中的前端内容进行转换。

例如,你有这样的内容

---
date: 2020-01-02
title: it is yaml
categories:
  - rust
tags:
  - front-matter
  - md
---

你需要为 markdown 渲染任务使用 toml 风格的前端内容。

所以你可以使用功能 adapt 来使用转换任务,这将加载 serde crates。

[dependencies.markdown-parser]
version = "*"
features = ["adapt"]

实际上,这个任务非常常见,所以默认情况下启用了功能 adapt

现在你可以像这样更改 md 文件

use markdown_parser::*;

fn main() -> Result<(), Error> {
    let origin = read_file("yaml.md")?;
    let md = origin.adapt::<TomlAdapter, BasicObject>()?;
    md.write_file("toml.md")?;
    Ok(())
}

依赖

~3.5–5MB
~100K SLoC