项目简介
Quarkdown 是一种基于 Markdown 的现代排版系统,围绕多功能性这一核心概念设计,能够无缝地将项目编译成适合打印的书籍或交互式演示文稿。通过功能强大的图灵完备的 Markdown 扩展,确保您的想法能够自动转化为纸质文档。
原始来源:Attention Is All You Need
Quarkdown 风格源于 CommonMark 和 GFM 的扩展,为 Markdown 增加了函数以及许多其他语法扩展。
这是一个函数调用:
ounter(lineounter(line.somefunction {arg1} {arg2} Body argument
凭借不断扩展的标准库[1],可能性无限,标准库提供布局构建器、输入输出、数学运算、条件语句和循环等功能。
还不够? 您仍然可以在 Markdown 中定义自己的函数和变量——甚至可以创建供大家使用的出色库。
ounter(lineounter(lineounter(lineounter(lineounter(line.function {greet} to from: **Hello, .to** from .from!
.greet {world} from:{iamgio}
结果:Hello, world from iamgio!
这种开箱即用的脚本支持功能为复杂和动态内容的实现打开了大门,而这些内容用原生 Markdown 是无法实现的。
结合实时预览和 :zap: 快速编译速度,Quarkdown 简直让工作变得轻而易举。
查看 wiki[2] 了解更多关于该语言及其功能的信息。
查看演示演示文稿 这里
由 Quarkdown 自身构建 — 源代码
(建议使用桌面视图)
如您所期望的简单……
灵感来源:附近超大质量黑洞的 X 射线闪光加速神秘莫测
如您所需的复杂。
目标
-
HTML
-
:white_check_mark: 纯输出(默认)
-
:white_check_mark: 幻灯片 通过 reveal.js[3]
-
:white_check_mark: 分页(书籍、文章) 通过 paged.js[4]
分页文档需要在 Web 服务器上渲染以在浏览器中显示。请参阅下面的 `-p`[5] 选项。
-
PDF
-
:white_check_mark: HTML 支持的所有文档类型和功能在导出为 PDF 时也同样支持。
-
查看 wiki 的 PDF 导出[6] 页面了解更多信息。
可以通过在源文件中调用 `.doctype` 函数[7] 来设置所需的文档类型:
-
.doctype {slides}
-
.doctype {paged}
对比
Quarkdown
Markdown
LaTeX
AsciiDoc
MDX
简洁易读
:white_check_mark:
:white_check_mark:
:x:
:white_check_mark:
:white_check_mark:
完整的文档控制
:white_check_mark:
:x:
:white_check_mark:
:x:
:x:
脚本支持
:white_check_mark:
:x:
部分
:x:
:white_check_mark:
书籍/文章导出
:white_check_mark:
:x:
:white_check_mark:
:white_check_mark:
第三方支持
演示文稿导出
:white_check_mark:
:x:
:white_check_mark:
:white_check_mark:
第三方支持
目标格式
HTML, PDF
HTML
PDF, PostScript
HTML, PDF, ePub
HTML
LaTeX
Quarkdown
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line\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}
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line.tableofcontents
# Section
## Subsection
1. **First** item2. **Second** item
.center This text is _centered_.
.row alignment:{spacebetween} 


入门指南
安装
从 releases[8] 页面下载 quarkdown.zip,或者使用 gradlew distZip 构建,并解压缩。
-
bin 目录包含可执行脚本。可选地,将其添加到您的 PATH 中可以更方便地访问 Quarkdown。
-
lib/qmd 目录包含可以导入到项目中的 .qmd 库。
需要 Java 17 或更高版本。
创建项目
运行 quarkdown create [directory] 将启动基于提示的项目向导,使设置新的 Quarkdown 项目变得前所未有的快捷,所有元数据[9]和初始内容已经准备就绪。
有关项目创建器的更多信息,请查看其 wiki 页面[10]。
或者,您可以手动创建一个 .qmd 源文件并从头开始。
编译
运行 quarkdown c file.qmd 将编译给定的文件并将输出保存到文件中。
如果项目由多个源文件组成,则目标文件必须是根文件,即包含其他文件的文件。
-
如何包含其他文件?[11]
如果您想熟悉 Quarkdown,quarkdown repl 可以让您在交互式 REPL 模式中进行尝试。
选项
-
-p 或 --preview: 编译后启用自动内容重新加载。
如果 webserver[12] 尚未运行,则会启动并在默认浏览器中打开文档。
这是在浏览器中渲染分页文档所必需的。
-
-w 或 --watch: 每当源目录中的文件发生更改时重新编译源文件。
[!TIP] 结合 -p -w 可实现***实时预览***!
-
--pdf: 生成 PDF 文件。在 wiki 的 *PDF 导出*[13] 页面了解更多信息。
-
-o <dir> 或 --output <dir>: 设置输出文件的目录。默认为 ./output。
-
-l <dir> 或 --libs <dir>: 设置可以加载外部库的目录。默认为 <安装目录>/lib/qmd。 (?)[14]
-
-r <renderer> 或 --render <renderer>: 设置目标渲染器。默认为 html。接受的值:
-
html
-
html-pdf(等同于 -r html --pdf)
-
--server-port <port>: 可选地自定义本地 Web 服务器的端口。默认为 8089。
-
--pretty: 生成格式美观的输出代码。这对于调试或更容易阅读输出代码很有用, 但在生产环境中应禁用,因为结果可能会影响视觉效果。
-
--clean: 在生成新文件之前删除输出目录的内容。破坏性操作。
-
--strict: 如果发生错误,则强制程序退出。在非严格模式下,错误会以框的形式显示在文档中。
-
--no-media-storage: 关闭媒体存储系统。 (?)[15]
-
-Dloglevel=<level> (JVM 属性): 设置日志级别。如果设置为 warning 或更高,则不打印输出内容。
模拟文档
Mock,用 Quarkdown 编写,是该语言提供的视觉元素的全面集合,非常适合探索和理解其关键功能——同时通过具体的页面或幻灯片形式进行实践和实验。
-
文档的源文件位于 `mock`[16] 目录中,可以通过 quarkdown c mock/main.qmd -p 进行编译。
-
为所有可能的主题组合生成的 PDF 成品可在 `generated`[17] 分支中查看。
项目地址
https://github.com/iamgio/quarkdown/blob/main/README.md
参考资料
[1]
标准库: quarkdown-stdlib/src/main/kotlin/com/quarkdown/stdlib
[2]
wiki: https://github.com/iamgio/quarkdown/wiki
[3]
reveal.js: https://revealjs.com
[4]
paged.js: https://pagedjs.org
[5]
-p: #options
[6]
PDF 导出: https://github.com/iamgio/quarkdown/wiki/pdf-export
[7]
.doctype 函数: https://github.com/iamgio/quarkdown/wiki/document-metadata
[8]
releases: https://github.com/iamgio/quarkdown/releases
[9]
directory]`** 将启动基于提示的项目向导,使设置新的 Quarkdown 项目变得前所未有的快捷,所有[元数据: https://github.com/iamgio/quarkdown/wiki/document-metadata
[10]
wiki 页面: https://github.com/iamgio/quarkdown/wiki/cli%3A-project-creator
[11]
如何包含其他文件?: https://github.com/iamgio/quarkdown/wiki/including-other-quarkdown-files
[12]
webserver: https://github.com/iamgio/quarkdown/wiki/cli%3A-webserver
[13]
PDF 导出: https://github.com/iamgio/quarkdown/wiki/pdf-export
[14]
(?): https://github.com/iamgio/quarkdown/wiki/importing-external-libraries
[15]
(?): https://github.com/iamgio/quarkdown/wiki/media-storage
[16]
mock: mock
[17]
generated: https://github.com/iamgio/quarkdown/tree/generated/pdf/mock
项目简介
Quarkdown 是一种基于 Markdown 的现代排版系统,围绕多功能性这一核心概念设计,能够无缝地将项目编译成适合打印的书籍或交互式演示文稿。通过功能强大的图灵完备的 Markdown 扩展,确保您的想法能够自动转化为纸质文档。
原始来源:Attention Is All You Need
Quarkdown 风格源于 CommonMark 和 GFM 的扩展,为 Markdown 增加了函数以及许多其他语法扩展。
这是一个函数调用:
ounter(lineounter(line.somefunction {arg1} {arg2}Body argument
凭借不断扩展的标准库[1],可能性无限,标准库提供布局构建器、输入输出、数学运算、条件语句和循环等功能。
还不够? 您仍然可以在 Markdown 中定义自己的函数和变量——甚至可以创建供大家使用的出色库。
ounter(lineounter(lineounter(lineounter(lineounter(line.function {greet}to from:**Hello, .to** from .from!.greet {world} from:{iamgio}结果:Hello, world from iamgio!
这种开箱即用的脚本支持功能为复杂和动态内容的实现打开了大门,而这些内容用原生 Markdown 是无法实现的。
结合实时预览和 :zap: 快速编译速度,Quarkdown 简直让工作变得轻而易举。
查看 wiki[2] 了解更多关于该语言及其功能的信息。
查看演示演示文稿 这里
由 Quarkdown 自身构建 — 源代码
(建议使用桌面视图)
如您所期望的简单……
灵感来源:附近超大质量黑洞的 X 射线闪光加速神秘莫测
如您所需的复杂。
目标
-
HTML
-
:white_check_mark: 纯输出(默认) -
:white_check_mark: 幻灯片 通过 reveal.js[3] -
:white_check_mark: 分页(书籍、文章) 通过 paged.js[4]
分页文档需要在 Web 服务器上渲染以在浏览器中显示。请参阅下面的 `-p`[5] 选项。 -
PDF
-
:white_check_mark: HTML 支持的所有文档类型和功能在导出为 PDF 时也同样支持。 -
查看 wiki 的 PDF 导出[6] 页面了解更多信息。
可以通过在源文件中调用 `.doctype` 函数[7] 来设置所需的文档类型:
-
.doctype {slides} -
.doctype {paged}
对比
|
|
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|---|---|
|
|
入门指南
安装
从 releases[8] 页面下载 quarkdown.zip,或者使用 gradlew distZip 构建,并解压缩。
-
bin目录包含可执行脚本。可选地,将其添加到您的PATH中可以更方便地访问 Quarkdown。 -
lib/qmd目录包含可以导入到项目中的.qmd库。
需要 Java 17 或更高版本。
创建项目
运行 quarkdown create [directory] 将启动基于提示的项目向导,使设置新的 Quarkdown 项目变得前所未有的快捷,所有元数据[9]和初始内容已经准备就绪。
有关项目创建器的更多信息,请查看其 wiki 页面[10]。
或者,您可以手动创建一个 .qmd 源文件并从头开始。
编译
运行 quarkdown c file.qmd 将编译给定的文件并将输出保存到文件中。
如果项目由多个源文件组成,则目标文件必须是根文件,即包含其他文件的文件。
如何包含其他文件?[11]
如果您想熟悉 Quarkdown,quarkdown repl 可以让您在交互式 REPL 模式中进行尝试。
选项
-
-p或--preview: 编译后启用自动内容重新加载。
如果 webserver[12] 尚未运行,则会启动并在默认浏览器中打开文档。
这是在浏览器中渲染分页文档所必需的。 -
-w或--watch: 每当源目录中的文件发生更改时重新编译源文件。
[!TIP] 结合
-p -w可实现***实时预览***!
-
--pdf: 生成 PDF 文件。在 wiki 的 *PDF 导出*[13] 页面了解更多信息。 -
-o <dir>或--output <dir>: 设置输出文件的目录。默认为./output。 -
-l <dir>或--libs <dir>: 设置可以加载外部库的目录。默认为<安装目录>/lib/qmd。 (?)[14] -
-r <renderer>或--render <renderer>: 设置目标渲染器。默认为html。接受的值: -
html -
html-pdf(等同于-r html --pdf) -
--server-port <port>: 可选地自定义本地 Web 服务器的端口。默认为8089。 -
--pretty: 生成格式美观的输出代码。这对于调试或更容易阅读输出代码很有用, 但在生产环境中应禁用,因为结果可能会影响视觉效果。 -
--clean: 在生成新文件之前删除输出目录的内容。破坏性操作。 -
--strict: 如果发生错误,则强制程序退出。在非严格模式下,错误会以框的形式显示在文档中。 -
--no-media-storage: 关闭媒体存储系统。 (?)[15] -
-Dloglevel=<level>(JVM 属性): 设置日志级别。如果设置为warning或更高,则不打印输出内容。
模拟文档
Mock,用 Quarkdown 编写,是该语言提供的视觉元素的全面集合,非常适合探索和理解其关键功能——同时通过具体的页面或幻灯片形式进行实践和实验。
-
文档的源文件位于 `mock`[16] 目录中,可以通过 quarkdown c mock/main.qmd -p进行编译。 -
为所有可能的主题组合生成的 PDF 成品可在 `generated`[17] 分支中查看。
项目地址
https://github.com/iamgio/quarkdown/blob/main/README.md
参考资料
标准库: quarkdown-stdlib/src/main/kotlin/com/quarkdown/stdlib
[2]wiki: https://github.com/iamgio/quarkdown/wiki
[3]reveal.js: https://revealjs.com
[4]paged.js: https://pagedjs.org
[5]-p: #options
PDF 导出: https://github.com/iamgio/quarkdown/wiki/pdf-export
[7].doctype 函数: https://github.com/iamgio/quarkdown/wiki/document-metadata
releases: https://github.com/iamgio/quarkdown/releases
[9]directory]`** 将启动基于提示的项目向导,使设置新的 Quarkdown 项目变得前所未有的快捷,所有[元数据: https://github.com/iamgio/quarkdown/wiki/document-metadata
[10]wiki 页面: https://github.com/iamgio/quarkdown/wiki/cli%3A-project-creator
[11]如何包含其他文件?: https://github.com/iamgio/quarkdown/wiki/including-other-quarkdown-files
[12]webserver: https://github.com/iamgio/quarkdown/wiki/cli%3A-webserver
[13]PDF 导出: https://github.com/iamgio/quarkdown/wiki/pdf-export
[14](?): https://github.com/iamgio/quarkdown/wiki/importing-external-libraries
[15](?): https://github.com/iamgio/quarkdown/wiki/media-storage
[16]mock: mock
generated: https://github.com/iamgio/quarkdown/tree/generated/pdf/mock
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)