Quarkdown:赋予 Markdown 超能力的现代排版系统

0 阅读6分钟

如果你用过 Markdown 写过笔记或文档,一定体会过它的简洁与局限——写个简单的博客文章绰绰有余,但一旦想排出一本正经的学术论文或精美的幻灯片,它就开始"力不从心"了。Quarkdown 正是为了填补这道鸿沟而生的。它是一个基于 Markdown 的现代排版系统,把 Markdown 的亲切感和 LaTeX 级别的排版能力融为一体,让你用一套源码就能输出论文、书籍、网站、幻灯片……几乎想要什么就能出什么。


🪐 它到底是什么?

Quarkdown 由开发者 iamgio(Giorgia Gio)于 2024 年 1 月创建,是一个开源的、图灵完备的 Markdown 扩展排版系统。截至 2026 年,它在 GitHub 上已积累超过 15,780 颗星488 个 Fork,并在 Hacker News 上获得 668 点的高度关注。

它的核心理念可以用一句话概括: "一份源文件,多种输出形态。"

你写的是 Markdown,但经过 Quarkdown 的编译器处理后,可以得到:

  • 一篇排版精美、可直接打印的学术论文(PDF)
  • 一本完整的书籍
  • 一个交互式幻灯片演示
  • 一个静态知识库网站或技术文档站

这在传统工具里几乎是不可能的——LaTeX 擅长论文,但做幻灯片很痛苦;Markdown 写博客很爽,但排版能力极其有限。Quarkdown 把两者的优点拼在了一起。


🔧 核心特性详解

Markdown 的超集:函数系统

Quarkdown 最革命性的设计,是在 Markdown 里引入了函数调用机制。这让它从一个"标记语言"升级成了一个真正的"脚本化排版语言"。

函数调用的语法长这样:

.somefunction {arg1} {arg2}
    Body argument

你甚至可以在文档里自定义函数

.function {greet}
    to from:
    **Hello, .to** from .from!

.greet {world} from:{iamgio}

输出结果就是:Hello, world from iamgio!

这个设计和 LaTeX 的 \command{} 非常相似,但语法更直观,学习曲线更平缓。

图灵完备的脚本能力

Quarkdown 内置了一套完整的脚本系统,包括:

  • 变量定义与赋值
  • 条件判断(if/else)
  • 循环语句(loops)
  • 数学运算
  • 数据解构(destructuring)
  • Lambda 表达式

这意味着你可以在文档里写逻辑,动态生成内容——这是普通 Markdown 完全做不到的事情。

丰富的标准库

Quarkdown 自带一个持续扩展的标准库,覆盖了大量实用功能:

功能分类具体能力
布局系统行、列、网格、容器、浮动、对齐
数学公式完整 TeX 公式支持
图表XY 图表、Mermaid 流程图
数据处理CSV 导入、表格生成与操作
幻灯片交互片段、演讲者注释
文档结构目录、参考文献、脚注、书籍封面
代码高级代码块、正则样式化

🎯 支持的输出目标

Quarkdown 的"一源多出"能力来自其灵活的渲染后端,目前支持以下输出格式:

export_hs94c7.png

  • Plain HTML:连续流式布局,类似 Notion 或 Obsidian,适合静态网站和知识管理
  • Paged HTML(基于 paged.js):分页排版,适合论文、文章和书籍
  • Slides(基于 reveal.js):交互式演示文稿
  • Docs:适合大型 Wiki 和技术文档站——Quarkdown 自己的官方 Wiki(100+ 子文档)就是用它构建的,编译时间约 2 秒

⚔️ 与同类工具的横向对比

Quarkdown 的出现,让排版工具的格局变得更有趣。社区里对它和 LaTeX、Typst 的比较讨论非常热烈。

工具语法难度输出灵活性脚本能力适合场景
LaTeX高(陡峭学习曲线)高(主要 PDF)高(宏系统)学术论文、数学排版
Typst中(现代语法)中(主要 PDF)中(内置脚本)论文、技术文档
Markdown低(极易上手)低(HTML 为主)博客、笔记
Quarkdown低-中(基于 Markdown)高(多种格式)高(图灵完备)论文/书/网站/幻灯片

Quarkdown 的核心优势在于:它是目前唯一能用接近 Markdown 的写作体验,同时输出多种专业格式的工具。正如开发者所说,它是"Markdown 的亲切感 + LaTeX 的排版能力"的混合体。

当然,它也有局限——对于极度复杂的数学排版场景,LaTeX 的宏系统仍然更强大;Typst 在纯 PDF 排版的精细控制上也有自己的优势。


🚀 如何开始使用

安装

Quarkdown 基于 JVM(Java 虚拟机),需要 Java 环境。安装后通过命令行使用:

# 创建新项目
quarkdown create myproject

# 编译文档
quarkdown compile myfile.qmd

# 启动实时预览服务器
quarkdown serve myfile.qmd

VS Code 扩展

官方提供了 VS Code 插件,支持实时预览功能——你在左边写代码,右边实时看到渲染效果,延迟极低。这对于写作体验来说是质的提升。

一个最简单的文档示例

.doctype {paged}
.theme {paperwhite}

# 我的第一篇论文

## 摘要

这是用 Quarkdown 写的第一个文档。

## 正文

.math
    E = mc^2

这是爱因斯坦的质能方程。

短短几行,就能输出一个带有 LaTeX 风格排版的 PDF 论文页面。


🧠 技术架构:它是怎么工作的

Quarkdown 的编译流程分为几个清晰的阶段:

export_jpp5ko.png

整个系统基于 Kotlin 编写,代码库包含多个模块:核心编译器(quarkdown-core)、标准库(quarkdown-stdlib)、HTML 渲染器(quarkdown-html)、CLI 工具(quarkdown-cli)、LSP 语言服务器(quarkdown-lsp)等,架构清晰,扩展性强。


🌟 生态与社区现状

Quarkdown 的生态正在快速成长:

  • 官方 Wiki 本身就是用 Quarkdown 编写并部署的,包含 100+ 子文档
  • VS Code 扩展 提供语法高亮、实时预览、代码补全
  • 内置 AI Agent 技能,让 AI 编程助手能够"理解" Quarkdown 语法,直接生成符合规范的文档
  • Docker 支持,可以容器化部署
  • 持续集成友好,3 分钟内即可配置好 CD 工作流自动发布文档

💡 总结

Quarkdown 代表了一种新的文档创作哲学——写作应该简单,但输出不应该将就。它让你不必在"Markdown 的简单"和"LaTeX 的强大"之间二选一,而是两者兼得。

对于学生、研究者、技术写作者、甚至前端开发者来说,它都是一个值得认真尝试的工具。尤其是当你需要同时维护一份文档,并以多种形式发布时,Quarkdown 的"一源多出"能力几乎无可替代。

项目仍在活跃开发中(截至 2026 年已有 3,600+ 次提交),社区也在持续壮大。如果你对现代排版工具感兴趣,这颗正在冉冉升起的"夸克之星"绝对值得关注。


参考来源