今天给大家介绍一个超酷的开源项目——Quarkdown,它绝对能颠覆你对 Markdown 的认知,它给 Markdown 插上了想象的翅膀,注入了强大的“超能力”。

项目简介

Quarkdown是一个基于 Markdown 的现代排版系统。它继承了 Markdown 的所有优点,比如语法简单、纯文本、易于版本控制等,但又不止于此。它通过一套图灵完备的语法扩展,你可以在 Markdown 里写函数、定义变量、用条件语句和循环,甚至还能调用各种库来扩展功能。

而且它不只是功能强,输出格式还特别丰富。不管是 HTML 网页、PDF 文档,还是演示幻灯片、专业书籍,都能一键生成。

和其他同类工具的对比

目前在Github上收获了7.5K star,非常的牛皮!

功能特性

  • 增强的Markdown语法
    • 引入函数调用、变量定义、条件语句和循环等编程特性,让Markdown具备动态内容生成能力。比如可以定义一个问候函数,随时调用生成不同的问候语。
    • 支持Turing完备的语法扩展,复杂逻辑也能轻松实现,不再局限于简单的文本格式。
  • 多目标输出
    • 支持导出HTML、PDF、演示文稿(基于reveal.js)和书籍(基于paged.js)等多种格式,满足不同场景需求。
    • PDF导出时支持所有HTML特性,排版效果专业,不需要再额外调整。
  • 实时预览与快速编译
    • 自带实时预览功能,修改文档后自动重新编译,浏览器中即时查看效果,创作过程更直观。
    • 编译速度极快,即使是复杂文档也能瞬间生成,不用漫长等待。
  • 丰富的标准库与扩展
    • 提供布局构建、数学运算、文件处理等功能的标准库,直接调用就能实现复杂效果。
    • 支持自定义函数和变量,还能创建共享库,方便团队协作和复用代码。
  • 模块化与跨平台设计
    • 采用模块化架构,支持插件扩展,可根据需求添加特定功能,灵活性高。
    • 基于Java开发,支持所有主流操作系统,安装使用无平台限制。
  • 强大的排版控制
    • 支持页面边距、内容边框、居中对齐等高级排版功能,文档样式更精美。
    • 可插入图表、数学公式、代码块等复杂元素,满足学术、技术文档需求。

快速安装使用

电脑上需要先准备 Java 17 或更高的环境。

然后去项目的 Releases 页面下载最新版的Quarkdown压缩包。当然,如果你喜欢自己动手,也可以使用gradlew distZip命令进行构建。

下载或构建完成后,解压安装文件,会看到一个 bin 目录,里面包含了可执行脚本。

将这个 bin 目录的路径添加到你系统的环境变量(PATH)中,这样你就可以更方便地使用它了。

基本使用方式

1、向导模式(新手推荐)

quarkdown create my-book

跟着提示走,一个新项目的基本框架就搭好了。然后进入 my-book 目录,你会看到一些 .qmd 文件。

当然,老手可直接新建.qmd文件开写。

2、效果预览

想看看效果?在终端里运行:

quarkdown c main.qmd -p -w

这个命令会编译 main.qmd-p 参数会启动一个网页服务器并在浏览器里打开预览,而 -w 则会监视文件变化,你一保存,浏览器那边就自动刷新了。

3、编译输出

# 生成HTML
quarkdown c my_book/main.qmd
   
# 生成带实时预览的PDF
quarkdown c my_book/main.qmd --pdf -p

小结

Quarkdown 真的把 Markdown 的潜力挖透了。它既保留了 Markdown 的简洁易用,又通过可编程性和丰富功能,让文档创作进入了一个新境界。不管你是写技术博客、做学术论文,还是准备演示文稿,它都能胜任。

更多细节功能,感兴趣的可以到项目地址查看:

https://github.com/iamgio/quarkdown