项目简介
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** item
2. **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)