moon-ssg 是一个完全使用 MoonBit 语言编写的、高性能且轻量级的静态网站与个人博客生成核心引擎。它支持通过底层的编译解析技术,将包含 Front-matter(元数据)声明的 Markdown 源文件,结合预设的 HTML 页面模板,快速、安全地编译组合输出为高可用的整站静态 HTML 文件。引擎采用无副作用的纯函数数据映射设计,具有极强的跨平台移植性与极佳的运行效率。
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
基于 MoonBit 的高性能静态网站生成器 (moon-ssg)
moon-ssg是一个完全使用 MoonBit 编写的高性能、轻量级静态网站与博客生成引擎(Static Site Generator)。它内置了符合 CommonMark 核心规范的 Markdown 解析器与 HTML 渲染模块,能够将 Markdown 文本、元数据(Front-matter)和 HTML 模板(Layout)编译组合为零依赖、极速加载的静态网页。本项目专为 MoonBit 国产基础软件生态开源大赛设计,为 MoonBit 生态提供一个可重用、跨平台的静态文档及个人博客建站底座。
核心功能与亮点
---包裹的文章头部元数据解析(例如title、date等页面属性)。(文件名, Markdown 源码) -> (输出路径, 编译后 HTML),不强制绑定特定的本地 I/O,使其能够完美运行在 WebAssembly(浏览器、Node.js)以及 Native 等任意 MoonBit 支持的后端。moonbitlang/x/fs包实现了一键式整站编译工具,支持自动初始化目录、读取 Markdown 源文件、模版注入、并输出至生成目录。index.html)。目录结构
快速开始
本项目依赖 MoonBit 官方工具链。请确保你已经安装了最新的 MoonBit CLI。
构建项目
运行静态生成器
你可以直接通过
moon run运行 CLI 工具:如果是首次运行,
moon-ssg会自动创建content/与layouts/文件夹,并生成默认的模板与示例文章。生成的 HTML 文件会输出在public/目录下。运行测试
引擎中包含详尽的单元测试与集成测试,采用 MoonBit 原生的快照测试机制(
inspect/debug_inspect):模版占位符支持
在网页模板中,你可以使用以下占位符来动态注入文章内容:
{{title}}- 文章标题{{date}}- 发布日期{{content}}- 编译后的 Markdown HTML 正文{{posts}}- (仅限首页模版)生成的文章列表 HTML 块开源协议
本项目基于 MIT 许可证开源。