Markdown 用上这招 ! 开外挂了
1. 引言
在 GitHub 上闲逛的时候,发现一个叫 Quarkdown 的开源项目,这是一个基于 Markdown 的现代排版系统。如果你平时写文档、论文或者要做幻灯片,肯定遇到过格式调整的麻烦。
传统的 Markdown 功能有限,而 LaTeX 又太复杂。Quarkdown 的想法很巧妙,它在保持 Markdown 简洁易写的同时,通过引入函数、变量和条件判断这些编程概念,让文档拥有了动态生成和复杂排版的能力。你可以用同一份源文件,输出成印刷级的论文、交互式幻灯片或者网页,确实能省下不少重复调整格式的时间。
1.1 Quarkdown 是什么
Quarkdown 是一个基于 Kotlin 语言开发的现代化 Markdown 排版系统,融合了 Markdown 的简洁性与 LaTeX 的专业排版能力,支持将项目编译为打印就绪的书籍或交互式演示文稿。
1.2 开源成就
- Star 数:GitHub 上已吸引 1.6 万+ 星(数据截至 2026 年 9 月)
- 主开发语言:Kotlin
- 开源协议:GPL-3.0
2. 核心功能
2.1 函数扩展标记
Quarkdown 在 CommonMark 和 GFM 规范基础上,引入了函数调用语法。你可以在文档里定义和调用自定义函数,甚至使用变量、条件语句和循环,让文档内容可以动态生成,比如根据数据自动更新表格,这是传统 Markdown 做不到的!
2.2 多格式输出
它支持多种输出格式,包括普通 HTML、基于 paged.js 的分页文档(适合论文和书籍),以及通过 reveal.js 生成的交互式幻灯片。你只需维护一个源文件,通过 .doctype 函数就能在 html、paged、slides、docs 等文档类型间切换,非常适合需要多场景展示的内容!
2.3 实时预览编译
它提供了实时预览功能,编译时加上 -p(预览)和 -w(监听)参数,修改源文件后就能在浏览器中立刻看到效果,很方便!
quarkdown c main.qd -p -w
2.4 布局系统
它提供了容器模型和布局函数,比如 .container 和 .row,让你能轻松实现多栏布局、内容对齐等复杂排版。这相当于在 Markdown 里拥有了类似 CSS 的布局控制能力,但又不需要直接写繁琐的样式!
2.5 交互组件
内置了折叠面板、交互式图表(通过 Mermaid 集成)和可展开的文本等组件。这让生成的文档不再是静态的:读者可以点击折叠块查看详情,或者与图表进行交互,特别适合制作教学材料和演示文稿!
2.6 数学公式支持
它集成了 LaTeX 数学公式支持,允许你在行内或块级插入复杂的数学符号,还支持通过 .texmacro 定义可复用的公式片段。对搞学术写公式很友好,而且语法比纯 LaTeX 更简洁!
3. 安装指南
前置依赖:需要 Java 17+;Node.js 与 npm 仅在进行 PDF 导出时需要。
3.1 macOS / Linux 安装(Homebrew)
brew install quarkdown-labs/quarkdown/quarkdown
3.2 Windows 安装(Scoop)
scoop bucket add quarkdown https://github.com/quarkdown-labs/scoop-quarkdown
scoop install quarkdown
4. 使用指南
4.1 创建项目
quarkdown create my-project
cd my-project
4.2 编辑文档
编辑项目根目录下的 main.qd 文件,可以混合使用 Markdown 语法和 Quarkdown 排版指令:
.doctype {paged}
.docname {测试}
.docauthor {开源日记}
这是 Quarkdown 的内容区域,支持 Markdown 和动态脚本
4.3 编译输出
quarkdown c main.qd
编译完成后,浏览器打开 output 目录中的 HTML 文件即可查看渲染好的内容;如需导出 PDF,加上 --pdf 参数:
quarkdown c main.qd --pdf