面向文档编程:MoonBit 的创新开发体验
MoonBit 通过整合编译器、构建系统和 IDE 等核心组件,正式推出“面向文档编程”(Document-Oriented Programming)的创新概念。
这一功能在 Markdown 文档中无缝集成了代码静态分析、IDE 原生支持、自动化格式化、测试运行和调试等功能,为开发者带来前所未有的文档与代码协同体验。
与传统的编程模式相比,MoonBit 的「面向文档编程」突破了将文档嵌入源代码注释的局限。
传统方式(如通过注释记录 API 文档)适合简短说明,但难以承载详细的文档内容或可运行的代码示例。虽然一些编程语言(如 Rust)支持文档中的代码高亮和测试,MoonBit 在此基础上进一步扩展,提供了更强大、更自然的文档编程体验:「在 Markdown 文档(.mbt.md 文件)中的 MoonBit 代码块与常规 .mbt 源文件享有相同的工具链支持,真正实现“文档即代码,代码即文档”。」
借助 MoonBit 工具链,在 Markdown 文档中进行编程的过程如下:在某个包中新建 Markdown 文档,注意该文档需以 .mbt.md 结尾,这是 MoonBit 工具链识别文档的标志。
使用方式
在 MoonBit 项目中,只需在某个包中创建一个以 .mbt.md 结尾的 Markdown 文档,即可启用面向文档编程功能。.mbt.md 是 MoonBit 工具链识别文档的标志,文件中的 MoonBit 代码块将获得与源代码一致的开发支持,享受与 .mbt 文件相同的功能支持,包括但不限于:
-
代码高亮:语法高亮,增强文档可读性。
-
跳转到定义:点击符号跳转到其定义位置。
-
代码补全:提供类型引导的智能补全建议。
-
实时诊断:检测代码中的警告和错误,实时渲染在 IDE 中。
-
自动化格式化:一键格式化代码块,保持风格一致。
-
测试运行:支持文档中的测试代码运行。
-
调试支持:在文档中直接调试代码。
在该文档中通过 ```mbt 或者 ```moonbit 声明代码块,写在这些块中的代码便能享受到原生的 IDE 功能支持:
IDE 支持
MoonBit 的 IDE(基于 VS Code 插件)为 .mbt.md
文件提供了原生支持,极大提升了文档编程的效率。以下是一些实用的功能:
1、便捷的代码块插入:
MoonBit IDE 提供专用的代码片段(code snippet)。在 .mbt.md
文件中输入 mbt
并触发补全,即可自动插入 ```mbt
代码块,简化编写流程。
2、自动化格式化:
每个 MoonBit 代码块上方显示 CodeLens 按钮(如 Fmt
),点击即可一键格式化代码块,保持规范一致的代码风格。
3、测试与调试:
1)支持在 .mbt.md
文件中编写测试代码块(test block),通过 moon test
或者代码块上方的 Test CodeLens 自动运行。
2)支持调试功能,开发者可以在文档中设置断点,直接调试代码逻辑。
MoonBit 对于 .mbt.md 提供的是开箱即用的原生支持,也就是说,.mbt.md 中的代码和常规的 MoonBit 代码是一样的(在实现上我们将其作为黑盒测试处理),用户可以像写黑盒测试一样通过 @pkg.xxx 使用本包中的 pub 定义。
工具链支持
MoonBit 的构建系统(moon)对 .mbt.md 文件提供全面支持,与常规 .mbt 文件无缝集成:
1、静态分析:
1)运行 moon check 时,工具链会自动检查 .mbt.md 文件中的 MoonBit 代码块,输出警告和错误到控制台。
2)IDE 实时检测代码中的类型错误、未定义符号等问题,确保文档代码的正确性。
2、测试运行:
1、运行 moon test 时,工具链会自动执行 .mbt.md 文件中的测试代码块,与常规测试文件(如 _wbtest.mbt、_test.mbt)一起运行。
2、测试结果统一输出,方便开发者验证文档代码的正确性。
3、构建集成:
.mbt.md 文件中的代码块被视为黑盒测试,参与构建流程,确保文档与源代码一致。
4、单文件支持:
1)可以通过 moon test /path/to/xxx.mbt.md
运行不在某个包中的 .mbt.md 文档中的测试。若是该 .mbt.md 文档存在于某个包中,在包含该包的项目目录下直接运行 moon test
即可。
另外,即使是单个 .mbt.md 文档(不在某个包中),也可以使用第三方依赖(通过文档首部的 header 声明,示例如下),赋予文档编写极大的灵活性。
--- moonbit: deps: moonbitlang/x:0.4.23//第三方依赖 backend: js //指定运行后端 --- ```moonbit test { letsingle_mbt_md=1 letpath="1.txt" letcontent="Hello, MoonBit" @fs.write_string_to_file!(path, content)//使用moonbitlang/x中的fs包 letres=@fs.read_file_to_string!(path) inspect!(res, content=content) inspect!(234523) println("222") } ```
用 .mbt.md 写技术博客
借助 .mbt.md 文件,开发者可以直接在 Markdown 格式的技术博客中嵌入可运行的 MoonBit 代码,享受 IDE 和工具链的全程支持,如:
-
实时验证:代码块中的拼写错误(typo)或逻辑错误会被 MoonBit 工具链实时检测,避免博客中出现无效代码。
-
一致体验:博客编写过程与编码一致,支持代码高亮、补全、跳转等 IDE 功能。
-
可运行示例:读者可以直接复制代码块运行,或通过 .mbt.md 文件复现示例。
这种方式特别适合撰写教程、API 文档或技术文章。现在有许多优秀的静态博客生成框架,支持将 Markdown 文件直接渲染为漂亮的网页。我们以 hexo 框架演示用 .mbt.md 写技术博客的过程:
用 CI 确保文档代码始终正确
MoonBit 的工具链为 .mbt.md 文件提供强大的静态分析支持,结合持续集成(CI)可以确保文档代码始终与源代码保持一致以及文档中的代码始终能够编译以及通过单元测试,一旦因为源代码改动导致文档代码发生 breaking change 也能第一时间发现并修改,避免了文档滞后于代码的常见问题,提升了文档的可信度。
moonbitlang/core 项目已经全面接入 .mbt.md 文档,其中每个 package 的 README 都以这种格式书写,以详细的文档配合代码示例说明该包的用法,一旦包中的某个 api 改动导致文档中的测试运行失败,moonbitlang/core 的 CI 会立刻报告错误,此时开发者便能及时修复源代码中的 bug 或者更新文档以适应新 api。
演示视频请跳转原文:
https://mp.weixin.qq.com/s/xNh8XEgp95lMDjdWtmbr6g
总结
MoonBit 的面向文档编程重新定义了文档与代码的协作方式,通过 .mbt.md 文件将 Markdown 文档提升为可执行、可验证的开发环境。
借助 IDE 的原生支持、工具链的静态分析和 CI 的自动化验证,开发者可以在编写技术博客、API 文档或教程时享受与编码一致的体验,MoonBit 提供了其他语言难以企及的文档编程体验。
欢迎尝试去 VSCode 里下载 MoonBit 插件试用 .mbt.md 的 MoonBit 专属文档,体验代码与文档的完美融合!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Reddit 起诉 Anthropic 未经许可使用其数据训练 AI 模型
Reddit 于 2025年 6月 4日向北加州法院提交诉讼,指控 AI 初创公司 Anthropic未经授权使用其网站数据训练 AI模型,且未支付相应费用。Reddit认为,Anthropic的行为违反了其用户协议,且未经授权将 Reddit数据用于商业用途是违法的。 https://redditinc.com/hubfs/Reddit Inc/Content/PDFs/Docket Stamped Complaint.pdf Reddit 称已与包括 OpenAI 和谷歌在内的其他 AI 模型提供商达成了数据许可协议,允许这些公司在特定条款下使用 Reddit 数据训练模型,这些条款旨在保护用户利益和隐私。 Reddit 首席法务官 Ben Lee 表示,公司不会容忍像 Anthropic 这样的营利实体在没有为 Reddit 用户带来任何回报或尊重其隐私的情况下,商业利用 Reddit 内容获取数十亿美元的利益。 诉状中,Reddit 声称曾与 Anthropic 接触,明确指出该 AI 初创公司无权抓取或使用 Reddit 的内容,但 Anthropic “拒绝接触”。Redd...
- 下一篇
Python 有史以来最强大的挑战者终于出现!
在 AI 浪潮重塑技术栈的 2025 年,虽然 Python 在各大编程语言排行榜多次霸榜,但其动态类型与性能短板在大规模 AI 工程中愈发显露疲态。面对这场技术民主化的新挑战,国产编程语言 MoonBit 以颠覆性创新给出解题思路。 Part 1:MoonBit 介绍 MoonBit 是深圳本土前 ReScript 作者张宏波团队打造的面向云计算、边缘计算及 AI 的高性能开源语言,聚焦 WebAssembly(WASM)和原生编译场景。 其核心优势在于:通过优化的 WASM 后端实现比 Rust/Go 更快的运行速度和更小代码体积;原生后端直接编译为机器码(支持 RISC-V),数值计算性能超 Java 15 倍。近期新增原生后端,强化对嵌入式与 IoT 场景支持,完善 IDE、调试工具及 AI 代码助手,并引入现代化泛型系统。目前已应用于清华、北大等高校课程,获海外云服务商采用,核心户超 6 万,计划三年内构建百万级开发生态,加速云原生与 AI 领域落地。 MoonBit 介绍文章: 1、被质疑套壳的编程语言也能进入北大,成为计算机学院研究生课程? 2、挑战Rust和Scala,...
相关文章
文章评论
共有0条评论来说两句吧...