Marqdo(读作 mark-down)把「代码」与「文档」写在同一份文件里:一个 .mq.md 既是 Markdown 文档,又是可运行的源码。标题是结构,表格是数据,反引号括起来的是表达式。
代码即文档
本站从数据库 schema 到页面路由,全部写在 .mq.md 里。打开 db/schema.mq.md,看到的是五张数据表的 GFM 表格;打开 index.mq.md,看到的是首页、文章、论坛、后台的完整装配过程——文档即代码,代码即文档。
表格即数据
marqdo 相信「表格即数据」:一张 GFM 表格可以是一张数据库表、一个页面组件表、一组样式规则,或一份 API 参数表。web 扩展库 ext/web 提供页面、数据库、应用、表单、样式五个核心对象;页面用什么组件、主体绑哪张表、路由挂到哪个路径,都是表格声明。
模块与命名空间
frontmatter 里的 import 声明导入模块,例如 import theme:styles/theme.mq.md。顶层 ## 段是自由函数,顶层 # 段是对象,对象下的 ## 是它的方法;路径引用如 theme.全局 把各库的函数组装起来。
扩展与插件
marqdo ext add 安装 .mq.md 扩展库;需要原生能力的扩展(如 web.dll)由 cargo 编译成 ABI v2 插件加载。数据层默认 SQLite,也可接 postgres。
在本站开始
跑一遍 marqdo run index.mq.md,站点就在本地端口上展开。想加一篇文章,就在 db/seed.mq.md 里添一行;想换配色,就改 styles/theme.mq.md 里的样式表。少即是多,文档即是全部。
更多用法,请看本仓库源码与 marqdo 官方手册。
// letters
读者来信
文末讨论栏 · 统一身份登录后即可回信
还没有条目。
登录后即可参与讨论。统一身份登录·注册
table=
comments· action=insert· id=comment