开源 NamBlog:一个博客外壳下的体验编译器
写作的裂变:从静态文本到动态原型
现阶段,我们见证了许多生成式 AI 带来的范式转移:聊天、绘图、编程等等。我关注写作这一行为,写作的定义也在悄然地裂变。过去,写作意味着生产静态文本;现在,写作是在设计可交互的数字体验原型。过去,作者交付的是内容;现在,作者交付的是调教 AI 的规则。
差异将体现在交互方式和对资源整合的想象力上。聊天对话框把思维压缩成线性 prompt,是 AI 时代的“命令行”,能用,但远远不够。我们需要一种能同时承载人类意图的模糊性和机器执行的精确性的媒介——一种既是底稿又是源代码、既写给人类也写给 AI 的双重文本。
这就是为什么 Markdown 值得被重视。它可以被视为是一种允许留白和扩展的社群协商式的符号中介层。那些 `#`、`*`、`![]()` 不是死板的语法规则,而是人机对“如何共同理解一段文本”达成的动态协议。那些排版是为了流畅阅读,也可以为了工作流编排;那些嵌入块是思维关联,也可以是微服务容器。
受此理念驱使,我开发了一个实验性项目。它始于博客,因为博客是最朴素的 MVP。
一份 Markdown + 一段提示词 → 一个样式与交互自包含的 HTML。
这就是它最简单的表现形式,剩下的全靠用户发挥。这与当下 AIGC 的泛滥有本质不同。那些 AI 生成的内容,缺乏创作谱系,很容易被归类为垃圾内容被整个互联网排斥。而在这里,Markdown 是源真相。AI 不是替代创作者,而是以人为本的增强。整个生成链条从作者真实的写作开始,所使用的中间提示词都是可以自定义的。AI 的所有增强都被追踪、版本化、元数据化。MD 文档是核心,甚至,你还可以为一个文档库启动多个容器,例如创建多语言版。
这个项目不是静态博客生成器,因为它拥抱多样化;不是 Notion 式的富文本编辑器,因为它坚持文档的纯粹性。实验旨在探索一个问题:当文档可以被 AI 编译成任何可交付的成果时,写作的终极形态是什么?
Markdown + Prompt → HTML,是这种想象力的最小可行载体。
NamBlog:一个文档体验编译器
NamBlog 是我基于这一理念构建的开源原型。读者不妨试试当文章不再仅仅排版美化,而是作为一种“意图指令”时,会发生什么。
在 NamBlog 中,内置的 AI Agent 和可热重载的提示词系统构成了一个实时编译环境。当你提交一篇文档时,系统会根据你的指令——“生成一个交互式图表”、“设计一个沉浸式阅读页”或“构建一个带动画的卡片布局”——实时调用 AI 将 Markdown 编译为包含完整样式和脚本的 HTML 应用。这让“写作”的过程,在某种程度上变成了用自然语言进行编程。
对于开发者而言,这也是一个现代化的技术实验场。后端基于 .NET 10 构建,采用了 DDD(领域驱动设计)分层架构。数据层摒弃了传统的 RESTful 接口,全面采用 GraphQL,让前端可以按需查询数据,不再受限于预定义的模板结构。同时,无论是 AI 的提示词还是系统配置,都支持热重载——修改配置就像修改代码一样,拥有即时的反馈循环。
在体验上,NamBlog 试图弥合 Web 与原生应用的鸿沟。它是一个单页应用(SPA),提供如同原生 App 般的流畅体验和离线访问能力(PWA),同时内置了针对爬虫的静态交付机制,确保内容能被搜索引擎索引。它也不强迫你改变工作流:你可以使用 Web 编辑器,也可以通过 MCP 协议直接在 Claude/Cherry Studio 中操作博客,或者仅仅将它作为一个文件流监控器,配合 Obsidian 等流行的 Markdown 工具使用。
移动端编辑体验:
项目发布在 GitHub:code-gal/namblog
演示站点:namblog
关于未来的一点畅想
这个世界也许早晚要统一语言,但不是统一符号或发音,而是统一转换的范式。这种统一将以一种极为高效的方式进行,因为人工智能革命正在发生。在这种统一下,所有的语言只是一种方言,它会被自动翻译成目标对象可以接受的方式。
这场革命如果不由人主导,人至少可以抓住一点主动权——提供原材料。不是食物链中的有机物,而是信息要素。将感觉的刺激,在脑海中的涟漪,转换成表达的内容,这方面人可以维持自己独特的优势。这个项目就是那个“转换器”的原型,它让你的思想(Markdown)可以无损地、多态地转换成读者(未来可以是计算机)需要的形式。

浙公网安备 33010602011771号