3 个版本
0.1.2 | 2023 年 2 月 22 日 |
---|---|
0.1.1 | 2022 年 12 月 23 日 |
0.1.0 | 2022 年 10 月 10 日 |
#1079 in 文本处理
在 antwerp 中使用
97KB
2.5K SLoC
Marcus
描述
Marcus 是一个用 Rust 编写的实验性 Markdown 解析器。它使用 正则表达式 和内置方法(对于 str & String 类型)将 Markdown 转换为 HTML。请注意,由于不支持完整的 Markdown 规范,GitHub 预览无法正确渲染某些测试文件(代码 *.md
)。
演示
在 Cargo.toml
文件的 [dependencies]
部分包含以下依赖项
glob = "0.3.0"
marcus = "0.1.1"
此 Marcus 包可以从 GitHub 仓库 包含
glob = "0.3.0"
marcus = { git = "https://github.com/Malekaia/Marcus" }
在此演示中,使用 fs
和 glob
包将样本文件转换为 HTML
use glob::glob;
use marcus;
use std::fs;
fn main() {
// Iterate the globbed paths
for path_buf in glob("./test/**/*.md").expect("GlobError: Failed to read glob pattern") {
// Get the file path from the glob entry
let file_path: String = path_buf.expect("GlobError: failed to glob entry").display().to_string();
// Create the HTML output path
let output_path: &String = &file_path.replace(".md", ".html");
// Read the MarkDown from the globbed file
let md: String = fs::read_to_string(&file_path).expect("ReadError: failed to read file");
// Convert the HTML to MD using Marcus
let html: String = marcus::to_string(md);
// Write the HTML to the HTML output path
fs::write(output_path, html).expect("WriteError: failed to write to file");
}
}
注意:本演示中使用的测试文件(代码 .md
)及其对应的输出(代码 .html
)可从 docs 文件夹 下载。
许可证
此仓库中包含的源代码在 MIT 许可证 下免费分发,有关完整许可证,请参阅 LICENSE.md。
依赖项
~3.5–4.5MB
~106K SLoC