iamgio/quarkdown

GitHub: iamgio/quarkdown

基于 Markdown 的现代排版系统,通过图灵完备的函数扩展实现从单一源文件到论文、演示文稿、网站、书籍等多种格式的无缝输出。

Stars: 12530 | Forks: 332

Quarkdown banner
Wiki Docs Release Visual Studio Code Extension Version FMT: Ktlint CodeFactor

iamgio%2Fquarkdown | Trendshift

Releases
Latest   |   Stable 


# 目录 1. [关于](#about) 2. [演示](#as-simple-as-you-expect) 3. [目标输出格式](#targets) 4. [对比](#comparison) 5. [入门指南](#getting-started) 1. [安装](#installation) 2. [快速开始](#quickstart-) 3. [创建项目](#creating-a-project) 4. [编译](#compiling) 6. [Mock 文档](#mock-document) 7. [贡献](#contributing) 8. [赞助](#sponsors) 9. [理念](#concept) 10. [许可证](#license)   # 关于 Quarkdown 是一个基于 Markdown 的现代排版系统,专为**多功能性**而设计。它允许单个项目无缝编译为可打印的书籍、学术论文、知识库或交互式演示文稿。 这一切都归功于极其强大的图灵完备 Markdown 扩展,确保你的想法能够自动跃然纸上。  

Paper demo

Original credits: Attention Is All You Need


Quarkdown Flavor 诞生于 CommonMark 和 GFM 的扩展,它为 Markdown 引入了**函数**,以及许多其他语法扩展。

得益于不断扩展的[标准库](quarkdown-stdlib/src/main/kotlin/com/quarkdown/stdlib),**可能性是无限的**, 它提供了布局构建器、I/O、数学运算、条件语句和循环。 **还不够?** 你仍然可以在 Markdown 中定义自己的函数和变量。 你甚至可以为所有人创建出色的库。

这种开箱即用的脚本支持,为创建复杂和动态的内容打开了大门,而这些在原生 Markdown 中是无法实现的。 结合实时预览、:zap: 极快的编译速度以及强大的 [VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=quarkdown.quarkdown-vscode),Quarkdown 能够轻松搞定一切, 无论是学术论文、书籍、知识库还是交互式演示文稿。  

Live preview

 

在寻找什么?

查看 wiki 以开始入门并了解更多关于该语言及其特性的信息!

  ## 如你期望般简单...

Paper code demo

Inspired by: X-ray flashes from a nearby supermassive black hole accelerate mysteriously

 

...如你所需般复杂。

Chart code demo

# 目标输出格式 - **HTML** - [X] **Plain** 类似 Notion/Obsidian 的连续流,非常适合静态网站和知识管理 - 查看作者的[个人网站](https://iamgio.eu/)。 - [X] **Paged** via [paged.js](https://pagedjs.org) 非常适合论文、文章和书籍 - 查看[演示文档](https://github.com/quarkdown-labs/generated/blob/main/mock/paperwhite_latex.pdf)。 - [X] **Slides** via [reveal.js](https://revealjs.com) 非常适合交互式演示文稿。 - [X] **Docs** 非常适合 wiki、技术文档和大型知识库 - 查看 [Quarkdown 的 wiki](https://quarkdown.com/wiki)。 - **PDF** - [X] HTML 支持的所有文档类型和特性在导出为 PDF 时也同样受支持。 - **纯文本** 可以通过在源文件中调用 [`.doctype` 函数](https://quarkdown.com/wiki/document-types) 来设置所需的文档类型: - `.doctype {plain}` (默认) - `.doctype {paged}` - `.doctype {slides}` - `.doctype {docs}` # 对比 | | Quarkdown | LaTeX | Typst | AsciiDoc | MDX | |-----------------------|:------------------:|:------------------:|:------------------:|:------------------:|:------------------:| | 简洁易读 | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | 完整的文档控制[^control] | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | | 脚本支持 | :white_check_mark: | Partial | :white_check_mark: | :x: | :white_check_mark: | | 书籍/文章导出 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Third-party | | 演示文稿导出 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Third-party | | 静态站点导出 | :white_check_mark: | :x: | Experimental | :white_check_mark: | :white_check_mark: | | 文档/Wiki 导出 | :white_check_mark: | :x: | :x: | :white_check_mark: | :white_check_mark: | | 学习曲线 | :green_circle: | :red_circle: | :orange_circle: | :green_circle: | :green_circle: | | 目标格式 | HTML, PDF, TXT | PDF, PostScript | HTML, PDF | HTML, PDF, ePub | HTML | [^control]: 通过语言本身自定义文档及其输出产物属性的能力。
LaTeX Quarkdown
``` \tableofcontents \section{Section} \subsection{Subsection} \begin{enumerate} \item \textbf{First} item \item \textbf{Second} item \end{itemize} \begin{center} This text is \textit{centered}. \end{center} \begin{figure}[!h] \centering \begin{subfigure}[b] \includegraphics[width=0.3\linewidth]{img1.png} \end{subfigure} \begin{subfigure}[b] \includegraphics[width=0.3\linewidth]{img2.png} \end{subfigure} \begin{subfigure}[b] \includegraphics[width=0.3\linewidth]{img3.png} \end{subfigure} \end{figure} ``` ``` .tableofcontents # 小节 ## 子节 1. **First** item 2. **Second** item .center This text is _centered_. .row alignment:{spacebetween} ![Image 1](https://raw.githubusercontent.com/iamgio/quarkdown/main/img1.png) ![Image 2](https://raw.githubusercontent.com/iamgio/quarkdown/main/img2.png) ![Image 3](https://raw.githubusercontent.com/iamgio/quarkdown/main/img3.png) ```
  # 入门指南 ## 安装 ### 安装脚本 (Linux/macOS) ``` curl -fsSL https://raw.githubusercontent.com/quarkdown-labs/get-quarkdown/refs/heads/main/install.sh | sudo env "PATH=$PATH" bash ``` Root 权限允许脚本将 Quarkdown 安装到 `/opt/quarkdown`,并将其包装脚本安装到 `/usr/local/bin/quarkdown`。 如果缺少依赖,将使用系统包管理器自动安装 Java 17、Node.js 和 npm。 有关更多安装选项,请查看 [get-quarkdown](https://github.com/quarkdown-labs/get-quarkdown)。 ### Homebrew (Linux/macOS) ``` brew install quarkdown-labs/quarkdown/quarkdown ``` ### 安装脚本 (Windows) ``` irm https://raw.githubusercontent.com/quarkdown-labs/get-quarkdown/refs/heads/main/install.ps1 | iex ``` ### Scoop (Windows) ``` scoop bucket add java scoop bucket add quarkdown https://github.com/quarkdown-labs/scoop-quarkdown scoop install quarkdown ``` ### GitHub Actions 查看 [setup-quarkdown](https://github.com/quarkdown-labs/setup-quarkdown) 以轻松将 Quarkdown 集成到你的 GitHub Actions 工作流中。 ### 手动安装
手动安装说明 从[最新稳定版本](https://github.com/iamgio/quarkdown/releases/latest)下载 `quarkdown.zip` 并解压, 或使用 `gradlew installDist` 进行构建。 或者,将 `/bin` 添加到你的 `PATH` 中,以便更轻松地访问 Quarkdown。 系统要求: - Java 17 或更高版本 - (仅适用于 PDF 导出) Node.js、npm、Puppeteer。详情请参阅 [*PDF 导出*](https://quarkdown.com/wiki/pdf-export)。
  ## 快速开始 🆕 新用户?你会在**[快速开始指南](https://quarkdown.com/wiki/quickstart)** 中找到**所需的一切**,为你的第一份文档注入生命!   ## 创建项目 **`quarkdown create [directory]`** 将启动基于提示的项目向导,使得设置新 Quarkdown 项目比以往任何时候都快,并且所有[元数据](https://quarkdown.com/wiki/document-metadata)和初始内容均已存在。 有关项目创建器的更多信息,请查看其 [wiki 页面](https://quarkdown.com/wiki/cli-project-creator)。 或者,你可以手动创建一个 `.qd` 源文件并从此开始。   ## 编译 运行 **`quarkdown c file.qd`** 将编译给定文件并将输出保存为文件。 如果你想先熟悉一下 Quarkdown,`quarkdown repl` 可以让你体验交互式 REPL 模式。 #### 选项 最常用的选项有: - **`-p`** 或 **`--preview`**:在编译后启用自动内容重载。 - **`-w`** 或 **`--watch`**:每次源目录中的文件发生更改时重新编译。 - **`--pdf`**:生成 PDF 文件。在 wiki 的 [*PDF 导出*](https://quarkdown.com/wiki/pdf-export) 页面了解更多。 有关完整的选项列表,请查看 [CLI 选项](https://quarkdown.com/wiki/cli-options) wiki 页面。     ## Mock 文档  

Mock document demo

用 Quarkdown 编写的 ***Mock*** 是该语言所提供的视觉元素的全面集合, 非常适合探索和理解其关键特性——同时以页面或幻灯片的具体形式进行动手实践和实验。 - 该文档的源文件可在 [`mock`](mock) 目录中找到,可以通过 `quarkdown c mock/main.qd -p` 进行编译。 - 所有可能的主题组合生成的 PDF 产物均可在 [`generated`](https://github.com/quarkdown-labs/generated) 仓库中查看。 ## 贡献 欢迎贡献!请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解如何通过 issues 或 pull requests 进行贡献。 ## 理念 该 logo 类似于原始的 [Markdown 图标](https://github.com/dcurtis/markdown-mark),重点关注 Quarkdown 的完备性, 丰富的特性和自定义选项,并通过球体周围旋转的箭头加以强调。

Quarkdown icon

那些可能被误认为是星球的物体实际上是一个 **quark**(夸克),或者更准确地说是一个 **down quark**(下夸克), 这是一种构成物质主要成分的基元粒子:它们赋予了我们已知每一种复杂结构以生命, 同时也是现存最轻的物体之一。 这正是 **Quarkdown** 所基于的理念。 ## 许可证 默认情况下,Quarkdown 及其模块均根据 [GNU GPLv3](./LICENSE) 授权,除了包含其自身 `LICENSE` 文件的模块: CLI (`quarkdown-cli`) 和 Language Server (`quarkdown-lsp`) 模块及二进制文件均根据 GNU AGPLv3 授权。 ## 脚注
标签:DNS解析, JS文件枚举, Kotlin, Markdown, MITM代理, Quarkdown, Ruby, VSCode 扩展, 内容管理, 后台面板检测, 威胁情报, 学术工具, 富文本, 开发者工具, 开源项目, 技术写作, 技术栈, 排版引擎, 数字出版, 文档生成, 文档系统, 文档转换, 演示文稿, 电子书制作, 知识库, 科技写作, 论文排版, 静态网站生成