type
status
date
slug
summary
tags
category
comment
icon
password
今天给大家介绍改变你们文档编写和排版方式的工具——Quarkdown。如果你厌倦了在 Markdown 的简洁性和复杂排版需求之间反复横跳,那么 Quarkdown 绝对值得你花时间了解一下。
📝 Quarkdown:重新定义你的 Markdown 工作流
Quarkdown 是一个基于 Markdown 的现代化排版系统。它的核心设计理念就是通用性 (versatility)。你只需要编写一次内容,就能无缝地将它编译成一本适合打印的精美书籍,或者一个交互式的演示文稿。这一切都通过一个极其强大的、图灵完备的 Markdown 扩展来实现,确保你的思想能够自动流畅地呈现在纸张或屏幕上。
核心链接速览:
- Wiki 文档: 点此深入了解
- 官方文档: 阅读详细指南
- 最新版本: 查看最新发布 (稳定版链接相同)
- 代码格式: Ktlint 驱动
- 代码质量: CodeFactor 认证
下载通道:
- 最新预览版: Latest
- 稳定版: Stable
目录 (Table of contents)
- 输出目标:多样化的文档格式
Quarkdown:到底是什么?
Quarkdown 的诞生,源于对 CommonMark 和 GFM (GitHub Flavored Markdown) 的扩展。它为 Markdown 带来了函数 (functions) 的概念,以及许多其他的语法增强。
看看这个例子,一个简单的函数调用:
是不是感觉 Markdown 的能力瞬间被放大了?
更酷的是,Quarkdown 提供了一个不断扩展的标准库 (standard library),里面包含了布局构建器、I/O 操作、数学计算、条件语句和循环等强大功能。这意味着,你的可能性是无限的!
还不够?没关系!你完全可以在 Markdown 文件中定义自己的函数和变量,甚至可以创建自己的库,分享给社区使用。
来看一个自定义函数的例子:
编译结果将会是:Hello, world from iamgio!
这种开箱即用的脚本支持,为创建复杂和动态的内容打开了大门,这在纯粹的 Markdown 中是难以想象的。再结合其实时预览和闪电般⚡的编译速度,Quarkdown 能让你事半功倍。

想要更深入地了解 Quarkdown 的语言特性?务必查看项目的 Wiki。
看看这个用 Quarkdown 制作的演示文稿!
没错,这个演示文稿本身就是用 Quarkdown 构建的。 href="https://github.com/iamgio/quarkdown/blob/main/demo/demo.qmd"
演示:眼见为实,如你所愿的简洁。
Quarkdown 保留了 Markdown 的简洁易读性。你可以像写普通 Markdown 一样快速上手。

...亦能满足你所需的复杂。
当需要更复杂的布局和动态内容时,Quarkdown 的扩展功能又能轻松应对。

输出目标:多样化的文档格式
Quarkdown 的强大之处在于其多样化的输出能力:
- HTML
- ✅ 所有 HTML 支持的文档类型和特性,在导出为 PDF 时同样支持。
- 想了解更多?请查阅 Wiki 中的 PDF 导出 页面。
.doctype {slides}
(用于幻灯片)
.doctype {paged}
(用于分页文档,如书籍)
📊 横向对比:Quarkdown 的独特优势
为了让大家更直观地理解 Quarkdown 的定位,这里有一个简单的对比表格:
特性 | Quarkdown | Markdown (原生) | LaTeX | Typst | AsciiDoc | MDX |
简洁易读 | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
完全文档控制 | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: |
脚本能力 | :white_check_mark: | :x: | 部分支持 | :white_check_mark: | :x: | :white_check_mark: |
书籍/文章导出 | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | 第三方 |
演示文稿导出 | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | 第三方 |
学习曲线 | :green_circle: | :green_circle: | :red_circle: | :orange_circle: | :green_circle: | :green_circle: |
输出目标 | HTML, PDF | HTML | PDF, PostScript | PDF | HTML, PDF, ePub | HTML |
🟢 = 简单, 🟠 = 中等, 🔴 = 困难
从上面的对比可以看出,Quarkdown 在保持 Markdown 简洁性的同时,提供了类似 LaTeX 的强大排版能力,但语法却友好得多。
快速上手指南
安装步骤
- 从 最新稳定版 下载
quarkdown.zip
,或者通过gradlew distZip
命令自行构建。
- 解压缩下载的文件。
bin
目录包含了可执行脚本。建议将其添加到你的系统PATH
环境变量中,方便全局调用。lib/qmd
目录包含了可以导入到项目中的.qmd
库文件。
- 确保你的系统安装了 Java 17 或更高版本。Quarkdown 支持所有主流操作系统。
创建你的第一个项目
运行命令
quarkdown create [directory]
(例如 quarkdown create my-awesome-book
)。这将启动一个基于命令行的项目向导,帮助你快速设置一个新的 Quarkdown 项目,并自动生成包含元数据和初始内容的框架。更多关于项目创建器的信息,请查看其 Wiki 页面。
当然,你也可以手动创建一个
.qmd
源文件开始你的创作。编译项目
运行命令
quarkdown c file.qmd
(例如 quarkdown c main.qmd
) 将会编译给定的文件,并将输出结果保存到指定目录。如果你的项目由多个源文件组成,那么编译的目标文件必须是根文件,即包含了其他文件的那个文件。 (如何包含其他文件?)
如果你想先熟悉一下 Quarkdown 的语法和功能,可以运行
quarkdown repl
进入交互式的 REPL 模式进行尝试。编译选项
Quarkdown 提供了一系列命令行选项来控制编译过程:
p
或-preview
: 编译后自动重新加载内容。 如果 Web 服务器尚未运行,它会自动启动并在默认浏览器中打开文档。 这对于在浏览器中渲染分页文档是必需的。
w
或-watch
: 监视源目录中的文件变化,并在文件更改时自动重新编译。
💡 专业提示: 组合使用 -p -w 可以实现实时预览 (live preview)!
-pdf
: 生成 PDF 文件。更多详情请参阅 Wiki 的 PDF 导出 页面。
o <dir>
或-output <dir>
: 设置输出文件的目录。默认为./output
。
l <dir>
或-libs <dir>
: 设置外部库的加载目录。默认为<install dir>/lib/qmd
。 (这是什么?)
r <renderer>
或-render <renderer>
: 设置目标渲染器。默认为html
。可接受的值:html
html-pdf
(等同于r html --pdf
)
-server-port <port>
: 可选,自定义本地 Web 服务器的端口。默认为8089
。
-pretty
: 生成格式化(美化)的输出代码。这对于调试或更容易阅读输出代码很有用,但在生产环境中应禁用,因为结果可能会受到视觉影响。
-clean
: 在生成新文件之前删除输出目录的内容。这是一个破坏性操作,请谨慎使用。
-strict
: 如果发生错误,则强制程序退出。在非严格模式下,错误将作为文档中的提示框显示。
-no-media-storage
: 关闭媒体存储系统。 (这是什么?)
Dloglevel=<level>
(JVM 属性): 设置日志级别。如果设置为warning
或更高,则不会打印输出内容。
示例工程 (Mock Document)
Mock 是一个用 Quarkdown 编写的综合示例集合,展示了该语言提供的各种视觉元素和关键特性。它是探索和理解 Quarkdown 功能的理想方式——你可以亲自动手实验,并以页面或幻灯片的形式看到具体成果。
- 该文档的源文件位于
mock
目录中,可以通过quarkdown c mock/main.qmd -p
命令进行编译和预览。
- 针对所有可能的主题组合生成的 PDF 文件可在
generated
分支中查看。
- 作者:KAI
- 链接:https://blog.kaitp.com//technology/QuarkDown
- 声明:All rights reserved. 本文禁止全文转载。如需引用,请注明文章链接。 ©KICC 保留所有权利