chore: add LICENSE, resolve compiler warnings, format code, and migrate to modern packaging
moon-cmark 是一个完全使用 MoonBit 语言编写的、高性能且高度符合 CommonMark 标准的 Markdown 解析与 HTML 渲染引擎。
moon-cmark
本项目专为 MoonBit 国产基础软件生态开源大赛 (OSC2026) 设计,旨在填补目前 MoonBit 生态中缺乏标准化、工业级 Markdown 处理基础库的空白。项目架构从底层彻底解耦了“词法分析”、“语法解析”和“HTML渲染”三个阶段,并暴露了事件流(Event Stream)API。
StartBlock("h1")
TextEvent("Hello")
EndBlock("h1")
本项目依赖 MoonBit 官方工具链。请确保你已经安装了最新的 MoonBit CLI。
git clone https://github.com/Myytsjj/myyProject.git cd myyProject moon build
引擎中自带了详尽的单元测试,覆盖了区块扫描、行内解析和集成渲染场景:
moon test
只需几行代码,即可实现从 Markdown 文本到 HTML 的无缝转换:
let md = "### Hello *MoonBit*\n\nThis is a **test**." let parser = Parser::new(md) // 1. 将文本解析为 AST (抽象语法树) let blocks = parser.parse() // 2. 将 AST 转换为 Event Stream (事件流) let events = to_events(blocks) // 3. 将 Event Stream 渲染为 HTML let html = render_html(events) println(html) // 输出: // <h3>Hello <em>MoonBit</em></h3> // <p>This is a <strong>test</strong>.</p>
Token
HeadingMarker
Text
Space
Newline
AST
to_events
本项目是为 OSC2026 大赛第一阶段构建的核心原型库。 灵感与架构参考了 Rust 生态下著名的 pulldown-cmark 引擎,在此特别致谢。
pulldown-cmark
本项目基于 MIT 许可证开源。
一个使用 MoonBit 编写的、高性能且符合 CommonMark 标准的 Markdown 解析与 HTML 渲染引擎。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
基于 MoonBit 的高性能 Markdown 解析与渲染引擎 (moon-cmark)
项目简介
moon-cmark是一个完全使用 MoonBit 语言编写的、高性能且高度符合 CommonMark 标准的 Markdown 解析与 HTML 渲染引擎。本项目专为 MoonBit 国产基础软件生态开源大赛 (OSC2026) 设计,旨在填补目前 MoonBit 生态中缺乏标准化、工业级 Markdown 处理基础库的空白。项目架构从底层彻底解耦了“词法分析”、“语法解析”和“HTML渲染”三个阶段,并暴露了事件流(Event Stream)API。
核心亮点
StartBlock("h1"),TextEvent("Hello"),EndBlock("h1"))。这种架构不但能高效地渲染 HTML,还极大地增强了扩展性,允许开发者在渲染前注入自定义过滤逻辑。快速开始
本项目依赖 MoonBit 官方工具链。请确保你已经安装了最新的 MoonBit CLI。
安装与构建
运行测试
引擎中自带了详尽的单元测试,覆盖了区块扫描、行内解析和集成渲染场景:
代码示例
只需几行代码,即可实现从 Markdown 文本到 HTML 的无缝转换:
架构解析
Token(如HeadingMarker,Text,Space,Newline等)。它封装了指针状态,避免了多余的子字符串复制。AST。to_events方法遍历 AST 并展开为扁平的枚举结构,极大地简化了渲染器的逻辑。参与贡献与致谢
本项目是为 OSC2026 大赛第一阶段构建的核心原型库。 灵感与架构参考了 Rust 生态下著名的
pulldown-cmark引擎,在此特别致谢。开源协议
本项目基于 MIT 许可证开源。