Markzen 帮助

帮助

Markzen 是什么?

Markzen 是一款用于轻量级标记语言(Markdown 和其他六种)的桌面编辑器,具有实时、完全样式化的预览功能。您在左侧使用简单的标点符号编写纯文本标记,Markzen 会在您输入时将其渲染为右侧的格式化 HTML。

它与普通 Markdown 编辑器的区别在于往返转换。Markzen 可以读取八种标记语言,在文档内部渲染 30 种实时扩展(图表、数学公式、乐谱、棋盘、二维码),并导出为二十多种格式——电子书、Word、PowerPoint、LaTeX、Jupyter 笔记本等等。一次编写,几乎可以以任何形式交付结果。转换器内置,无需安装外部工具。

您可以打开现有文件或直接开始输入——无需先打开文件。

编辑器

左侧窗格是一个功能齐全的 CodeMirror 代码编辑器,而非纯文本框:它具有您正在编写的标记的语法高亮显示、一个格式化工具栏(粗体、斜体、标题、列表等,以及用于插入链接和图像的专用按钮——请参阅 链接和图像——以及用于插入表格的按钮——请参阅 表格和电子表格),以及查找和替换搜索功能。标准的编辑快捷方式——复制、粘贴、撤消、重做——都按预期工作。

您可以使用八种轻量级标记语言之一进行编写。这些是纯文本格式,使用标点符号(# 表示标题,* 表示强调)而不是隐藏样式来表达结构,因此文档作为文本保持可读性,并且在版本控制中易于比较。Markzen 读取所有八种语言,并根据文件扩展名决定文件属于哪种语言——您无需手动选择格式。兼容性 列出了哪些扩展名打开哪种语言。

每种语言都有自己的约定和现有的文档生态系统;Markzen 以其自己的方言渲染每种语言,而不是首先将所有内容转换为 Markdown。BBCode 是唯一没有单一标准的语言——每个论坛都发明了自己的变体——因此 Markzen 慷慨地读取它,并排接受常见的拼写([list][ul][h1][heading=1]),并将任何它不识别的标签显示为纯文本而不是吞噬它。要切换文档所用标记的类型,请使用工具栏的转换为菜单(请参阅下面的转换和导出)。

**并非每种语言都能表达所有内容。**格式化工具栏在每个文档中都带有相同的按钮,但 Markzen 始终只编写语言本身定义的标记——它从不发明私有方言来弥补空白。当前语言没有表示法的按钮会变灰。粗体、斜体、标题、列表、代码块、链接、图像、规则和表格在所有八种语言中都可用;少数空白列在 兼容性 中。Markdown 的空白令人惊讶:它没有标准的方法来居中段落,因此 Markzen 不提供对齐按钮,而不是编写只有部分读者会遵守的内容。

文本大小通过工具栏的放大字体缩小字体按钮设置。编辑器窗格也可以完全隐藏——隐藏时,Markzen 成为一个纯粹的阅读器(请参阅实时预览)。

格式化工具栏有两个专用按钮,用于在文档中插入链接或图片,每个按钮都会在光标所在位置打开一个小弹出窗口。链接 (Ctrl+K) — 或按 Ctrl+K — 插入超链接:输入链接文本及其地址,Markzen 会为其编写正确的标记。图片 以相同的方式插入图片,并提供一些额外的选项,如下所述。

两者都以当前文档使用的标记编写——插入到 AsciiDoc 文件中的链接会以 AsciiDoc 格式显示,插入到 Org 文件中的链接会以 Org 格式显示,依此类推,适用于所有八种语言。

从您已有的地址开始。 将网址粘贴到文档中,选中它,然后按 Ctrl+K:Markzen 会识别出所选内容是地址而不是文字,将其放入弹出窗口的地址字段中,并将光标留在空文本字段中,等待链接应显示的内容。如果没有这样做,选定的地址将成为链接的可见文本——一个显示为裸 URL 的链接。绝对文件路径在 Windows 和其他地方也算作地址,因此相同的快捷方式会将粘贴的路径转换为指向该文件的链接。

编辑您已有的链接或图片。 将光标放在现有链接或图片上的任意位置,然后再次打开弹出窗口(按钮,或 Ctrl+K):Markzen 会识别出该结构,将其当前文本和地址加载到弹出窗口中,并在您确认时替换整个内容——这样您就可以在原地编辑它,而不是意外地在新链接中嵌套旧链接。

对于图片,弹出窗口还提供一个 浏览图片 按钮,用于从磁盘选择文件而不是键入路径——它会在您上次获取图片的文件夹中打开,与您文档来源的文件夹分开保存——以及一个重要的选择:图片是嵌入式还是链接式。

嵌入式或链接式图片

当您插入图片时,Markzen 可以通过两种方式将其存储在文档中:

  • 链接 — 文档仅通过文件路径或网址指向图片。文档文件保持较小,但图片必须随文档一起传输(或保持其 URL 可访问),否则它将无法在其他地方显示。这是默认设置。
  • 嵌入 — 图片的实际字节作为文本(base64 data: 块)写入文档中,因此文件完全自包含:一个文件包含所有内容,没有任何东西会丢失。缺点是大小——文档会因图片的大小而增加,并且嵌入式图片不能使用相对路径。

当您想要一个可移植的单一文件进行交付时,选择嵌入式;当您将图片与文档放在一起并希望文件保持较小时,选择链接式。

对于链接式图片,还会出现一个选项:相对路径。当图片位于文档自己的文件夹(或子文件夹)中时,勾选此选项会将其引用写入为短的相对路径,而不是完整的绝对路径,因此当您同时移动文档及其图片时,链接仍然有效。仅当图片位于文档文件夹内时才提供此选项——否则没有相对路径可写。

嵌入式图片在编辑器中保持整洁。 base64 嵌入式图片是一长串文本,否则会掩盖其周围的行,因此 Markzen 会将每个图片折叠成一个显示其类型和大小的小芯片(例如 🖼 webp · 38 KB)。该芯片仅用于显示——底层文本未受影响,因此保存、复制或剪切始终会携带完整的图片,并且光标会作为一个整体跳过该芯片。

文件、标签页和保存

Markzen 可以同时打开任意数量的文档,每个文档都在自己的标签页中,因此您可以在多个文件之间工作并自由切换。您无需打开文件即可开始——在已有的空白文档中开始输入,或使用工具栏的文件按钮:

  • 新建文档 — 打开一个简短菜单(新建),列出八种标记语言;选择一种以在新标签页中开始一个用该标记语言编写的全新空文档。
  • 打开 Markdown 文件 — 浏览现有文件并打开它。选择器接受所有八种标记格式,Markzen 会根据文件扩展名选择正确的格式。它会在您上次获取文档的文件夹中打开,并在会话之间记住,因此您每次都不必从头开始。
  • 保存 — 将活动文档写回其文件。从未保存的文档会转到“另存为”,以便您先命名它。
  • 另存为 — 将活动文档保存到新文件,保持任何原始文件不变。

您还可以将文件从文件管理器拖放到窗口中以打开它。

每个打开的文档都是窗口顶部的一个标签页。未保存的标签页会标有一个点,而其标记不是 Markdown 的标签页会带有一个小格式徽章(例如 adoc)。标签页上的 × 会关闭它——关闭带有未保存更改的文档绝不会默默地丢弃它们:标签页上会出现一个内联栏,以便您可以先保存放弃

文档打开时,Markzen 会监视其磁盘上的文件。如果文件在另一个程序中更改而您没有自己的未保存编辑,Markzen 会自动拉取新版本;如果您确实有未保存的编辑,它会先询问——一个内联的重新加载栏让您决定是采用磁盘上的版本还是保留您自己的版本。

实时预览

右侧窗格是文档渲染为带样式的 HTML,在您输入时实时更新。链接有效,表格对齐,代码显示在等宽块中,任务列表获得复选框,并且每个渲染扩展块(见下文)都会在其位置绘制图形。预览是 HTML 或 PDF 导出外观的真实写照。

如果 Markdown 文档以 YAML front-matter 块开头——即 Jekyll、Hugo 和 Obsidian 等工具放在最顶部的 --- key: value --- 部分——Markzen 会将其渲染为文档上方整洁的元数据卡片,而不是让结束的 --- 变成一个杂散的标题。

布局模式

一组三个工具栏按钮设置窗口显示内容:

  • 分屏视图 — 编辑器和预览并排显示。拖动分隔线以更改它们各自占用的空间。
  • 显示编辑器 — 仅显示编辑器,填满窗口以实现无干扰写作。
  • 显示预览 — 仅显示预览,一个干净的全宽阅读器。

目录

目录 按钮会打开一个面板,该面板是根据文档中的每个标题(###### 等)自动构建的。单击任何条目可将预览滚动到该部分。任何带有子标题的标题都会显示一个 V 形符号:单击它可以折叠该部分并隐藏其嵌套标题,或展开以将其恢复——这样您就可以将长提纲折叠到您正在处理的部分。面板标题中的小 2 / 3 / 4 按钮将提纲限制为该标题深度——在长文档中当您只想查看顶层时很有用——再次单击活动按钮会恢复所有级别。面板通过拖动其左边缘来调整大小并折叠以释放阅读空间。它只是应用程序内部的导航辅助工具——它永远不会出现在导出中。

**提供您自己的提纲。**如果标题不是您想要的提纲,文档可以携带自己的提纲。一个标记为 markzen 的围栏块,其第一行是 toc,将生成的面板替换为在其下方写入的列表:

`markdown

```markzen
toc
- [Introduction](#intro)
  - [Background](#background)
- [Results](#results)
```

缩进设置级别,每个条目都指向一个必须存在于文档本身中的锚点——您给出了显式 id 的标题,或者一个普通的 <a id="intro"></a>。该块本身不绘制任何内容:它是面板读取的元数据。

表格与电子表格

表格可以在Markzen和任何电子表格之间干净地移动。将从Excel、Google Sheets、Word或网页表格中复制的制表符分隔文本粘贴到编辑器中,Markzen会将其转换为文档自身标记语言编写的正确表格,而不是插入一堆制表符。粘贴读取器支持引号(它能正确处理包含制表符、换行符或引号的单元格),并且仅当剪贴板中包含至少两列的整齐矩形网格时才触发;否则会作为普通文本粘贴。

您也可以从头开始创建表格。工具栏上的插入表格按钮会打开一个小网格——在上面滑动以选择所需的行数和列数,Markzen会以文档自身的标记语言写入一个该大小的空表格,供您输入。第一行是标题行。

反向操作也同样有效。将鼠标悬停在预览中任何渲染的表格上,其角落会出现一个复制按钮:它会将表格复制为制表符分隔的文本,可以直接粘贴到电子表格单元格或Word文档中。这些复制按钮仅为预览提供便利——它们在每次导出和转换时都会被移除,因此共享文件只包含干净的表格。

渲染扩展

Markzen 通过围栏代码块扩展了标准标记。开头的三个反引号后面的语言标签决定了代码块的渲染方式:Markzen 识别为扩展的标签会绘制一个实时图形,而不是显示代码。

每种图形都由其自己的渲染引擎绘制,Markzen 在文档实际请求时才获取引擎,而不是在启动时加载所有引擎——这就是为什么应用程序几乎可以即时启动,以及为什么给定类型的第一个图表可能需要一些时间才能出现,而之后的每个图表都是即时的。

例如,此源:

```mermaid
graph LR
  A --> B --> C
```

渲染为实时流程图,而不是代码列表——并且在 PDF 和 HTML 导出中也保持为流程图。

图表、数学、乐谱、国际象棋和围棋棋盘、二维码等都内置其中——兼容性 列出了每个及其标签。

每个扩展都有自己的语言标签(mermaidchartjskatexabcchess 等)。您可以在单个文档中将它们与普通散文混合使用,数量不限——它们都会一起渲染。文档离开 Markzen 后,图形是否仍然是图形取决于您将其发送到何处——请参阅下面的 转换和导出

句子中的公式

数学公式可以是一个独立的——一个 katexasciimath 块,像教科书中的方程式一样独立居中。这适用于所有八种标记语言。

公式也可以在句子中,这样“面积是 pi r 平方”就读作一行散文,其中包含真实的符号。这取决于标记语言是否有其表示法,并且每种语言的拼写方式都不同——每种语言的表示法在 兼容性 中。

Textile 和 BBCode 是两个例外,这是这些语言的限制,而不是 Markzen 的限制:两者都没有定义编写数学的方法。因此,在 Textile 或 BBCode 文档中,公式必须是一个独立的块。没有任何损失——公式会渲染,并且在导出后仍然存在——它只是不能编织到一行散文中。

放置和调整图形大小

将鼠标悬停在预览中渲染的图形上,旁边会出现一个小面板:对齐 按钮(左、中、右)以及——对于可以调整大小的图形类型——以像素为单位的 宽度高度 框。remove style block 再次清除它们。

这个选择不会保存在某个不可见的地方:面板将其写入文档,作为一个标记为 markzen 的短块,紧接在它所应用的图形之前。

```markzen
style
align center
width 480
```

因此,布局随文件一起传输——它是您在任何机器上保存、移交和导出的内容的一部分。您也可以手动编写该块:每行一个指令,alignleftcenterright)、widthheight 以像素为单位,始终应用于其正下方的块。

使用 CSS 样式化一个文档

Markdown 文档还可以携带自己的样式表,放在一个标记为 style 的围栏块中:

```style
h2 { color: #b03030; border-bottom: 2px solid #b03030; }
blockquote { font-style: italic; }
```

这些规则适用于该文档的预览及其 PDF 和 HTML 导出,在任何活动的样式模板之上——这是一种在不更改其他所有设置的情况下为单个文档赋予其自身外观的方法。仅限普通选择器:不支持 @media@keyframes 等 at-rule,并且该块仅适用于 Markdown 文档。

转换与导出

工具栏的转换为菜单是完成的文档离开Markzen的地方。它执行两项不同的操作。

转换为另一种标记语言。轻量级标记下,将打开的文档重写为其他七种标记语言中的任何一种——AsciiDoc、BBCode、Djot、MediaWiki、Org、reStructuredText 或 Textile。当维基需要 MediaWiki、论坛需要 BBCode、出版商需要 AsciiDoc,或者您在不同生态系统之间移动笔记时,这会很有用。这八种标记语言在菜单中各出现一次,作为一种标记语言:从这里保存为 MediaWiki 的文档与您在其他任何地方获得的相同文件。

**导出为完成的格式。**将文档交给捆绑的转换器,该转换器会输出二十多种文档格式,按用途分组:

类别 格式
电子书 EPUB 3, FictionBook2
文字处理 Microsoft Word (.docx), OpenDocument (.odt), Rich Text Format (.rtf)
演示文稿 Microsoft PowerPoint (.pptx), reveal.js (.html)
排版 InDesign ICML, LaTeX (.tex), Typst (.typ)
XML DocBook, JATS, OpenDocument XML, TEI Simple
笔记本 Jupyter Notebook (.ipynb)
大纲 OPML (.opml)

转换器内置于Markzen中——无需额外下载或配置。除此之外,工具栏上还有三个快速输出:保存为 PDF保存为 HTML按预览时的样子(包括样式模板、字体和扩展图)导出渲染的文档,而打印将其发送到打印机。代码字体随导出的文件一起传输,因此代码块或 ASCII 图在读者的机器上看起来与您看到的一样,无论他们是否安装了该字体。

**哪些会传输,哪些不会。**渲染扩展图仅在目标格式可以容纳图片时才保留为图,因此文档通过以下两种途径之一离开Markzen:

  • 作为您看到的文档——刚刚描述的三个工具栏输出(PDF、HTML、打印)以及上表中五种格式:EPUB 3、Microsoft Word (.docx)、OpenDocument (.odt)、Microsoft PowerPoint (.pptx) 和 Rich Text Format (.rtf)。图表、公式和乐谱都以图像形式写入并完整到达。
  • 作为文档的源文本——所有其他目标,以及转换为另一种标记语言的所有转换。散文、标题、列表、表格和链接都会转换;mermaidkatex 块会作为包含您输入的源代码的普通代码块到达,因为这些格式没有Markzen可以提供给它们的图。

因此,围绕图表构建的文档最好以 PDF、HTML、EPUB、Word、OpenDocument、PowerPoint 或 RTF 格式交付。LaTeX、Typst、reveal.js 和其余格式仍然为您提供整个文档——每个图的源都保留在原位,可供该生态系统自己的工具使用。

从命令行导出

Markzen 也可以在不打开窗口的情况下工作。将源文件和 -o 与输出路径一起传递给 Markzen 可执行文件,它会渲染文档并将导出直接写入磁盘:

markzen.exe report.md -o report.pdf

源文件可以是 Markzen 读取的八种标记格式中的任何一种;输出是 PDF 或 HTML 文件,由输出名称的扩展名选择。导出经过与应用程序本身相同的渲染,因此图表、公式和所有其他扩展块都以实时图形的形式输出。导出使用默认样式模板和字体——命令行在其自己的干净配置文件中运行,与应用程序分离,这也意味着当 Markzen 已经打开时它也能正常工作。

可以在一次调用中导出多个文档——提供任意数量的 source -o output 对,一次启动即可渲染所有文档,成本仅为每个文件单独启动的一小部分:

markzen.exe a.md -o a.pdf b.adoc -o b.html c.rst -o c.pdf

字体和外观

Markzen 旨在使文档看起来像排版过的,而不是通用的。这些控件都位于工具栏样式和字体按钮的后面,因此您可以在阅读时调整它们;主题和界面语言位于设置 → 显示中。

样式模板

样式提供五种预览样式:标准GitHub书籍现代极简。您选择的模板也是应用于PDF和HTML导出的样式,因此它决定了共享文档的阅读方式——如果您要交付文档,请选择书籍或现代;如果需要无干扰阅读,请选择极简。模板只对预览进行样式设置,从不影响编辑器。

字体

同一面板中的三个选择器为每种文本设置单独的字体——标题正文代码——这就是让Markzen文档感觉像排版过的原因:

  • 标题 — Oswald、Playfair Display、Merriweather、Raleway、Montserrat、Lora、Libre Baskerville、Bebas Neue、Abril Fatface、Cinzel。
  • 正文 — Inter、Roboto、Georgia、Lato、Source Serif 4、Nunito、PT Serif、Crimson Text、Libre Franklin、Open Sans。
  • 代码 — JetBrains Mono、Source Code Pro、Cascadia Mono、Fira Mono。

选择代码字体除了外观之外还有一个特性:它们都能绘制树形列表和ASCII图表所用的方框绘制字符│ ├ └ ─),因此粘贴到代码块中的目录树会保持其形状,而不是断裂成间隙。它们也是无连字的变体——带有连字的字体会将!=重绘为单个,这在代码编辑器中很令人愉悦,但在旨在显示文件实际内容的文档中却是错误的。JetBrains Mono和Source Code Pro内置于Markzen中,因此它们可以在从未见过它们且完全没有连接的机器上工作。

文本大小

工具栏上的放大字体缩小字体按钮可以更改文本大小。

主题和语言

设置 → 显示中:

  • 主题浅色深色。默认:浅色。
  • 语言 — Markzen的界面已翻译成五十多种语言,包括从右到左书写的文字(阿拉伯语、希伯来语)和CJK(中文、日语、韩语)。

兼容性

参考表格:每种标记语言支持的功能,以及Markzen可以绘制的各种实时图表。这里的一切都关乎什么在哪里有效——解释在上面的章节中。

每种标记语言的功能

标记语言 打开以…结尾的文件 实时图表 目录面板 句中公式 无法表达
Markdown .md, .markdown 所有 $…$ 文本对齐
AsciiDoc .adoc, .asciidoc, .asc style 外的所有 仅块 删除线
reStructuredText .rst, .rest style 外的所有 $…$ 删除线
Org .org style 外的所有 $…$ 左右对齐
Textile .textile style 外的所有 仅块
Djot .dj style 外的所有 $`…`
MediaWiki .wiki, .mediawiki, .wikitext style 外的所有 <math> 行内代码、删除线、引用块、文本对齐
BBCode .bbcode, .bb style 外的所有 仅块

实时图表style 块是唯一的例外:它将 CSS 应用于文档本身,只有 Markdown 支持。其他所有类型的图表都适用于所有语言。在 BBCode 文档中,该块写为 [code=mermaid]…[/code] 而不是反引号;在 MediaWiki 中,写为 <syntaxhighlight lang="mermaid">…</syntaxhighlight>

无法表达 — 这些是标记语言本身的限制,而非 Markzen 的限制:如果一种语言没有某种表示法,Markzen 就不会提供相应的按钮,而不是编写只有它自己才能读回的私有方言。有关数学行,请参阅 句中公式

各种图表

在开头的三个反引号后写入标签 — ```mermaid — 该块就会变成一个图表。

类别 图表 块标签 备注
图示 Mermaid mermaid 流程图、序列图、类图、甘特图、ER图、状态图
Graphviz graphviz DOT 语言
Cytoscape cytoscape 网络图;在预览中平移和缩放
Markmap markmap 从项目符号大纲生成思维导图;点击折叠
Timeline timeline 垂直事件时间线
软件图表 Nomnoml nomnoml UML
PlantUML plantuml UML — 唯一需要互联网连接的图表
DBML dbml 数据库模式图
图表 Chart.js chartjs 条形图、折线图、饼图、雷达图
Vega-Lite vega-lite 基于 JSON 的声明式图表
ECharts echarts 大型交互式图表
IT 开发 Pseudocode pseudocode 排版算法
Tabulator tabulator 可排序的交互式表格
Bytefield bytefield 位和字节字段布局
QR Code qrcode
Railroad railroad 语法图
WaveDrom wavedrom 数字时序图
数学 KaTeX katex 句中也支持 $…$ — 参见上表
AsciiMath asciimath 纯文本数学符号
图形 function-plot fnplot 绘制函数曲线
JSXGraph jsxgraph 交互式几何
Plotly plotly 科学和 3D 图表
科学 SMILES smiles 化学结构图
音乐 ABC Notation abc 从纯文本生成乐谱
VexFlow vexflow 雕刻谱表
VexChords vexchords 吉他和弦图
ChordPro chordpro 歌词上方的和弦
MusicXML musicxml 完整乐谱
游戏 Chess chess 从 FEN 位置生成棋盘
Go Board goboard 9×9、13×13 和 19×19
文档 Markzen markzen 不可见:放置和调整其下方图表的大小,或覆盖目录面板
Style style 不可见:此文档的 CSS — 仅限 Markdown

文件关联

在 Windows 上,安装程序可以将 Markzen 注册为它读取的所有标记文件类型的处理程序——在所有八种语言中,*兼容性*中列出的所有十五种扩展名。注册后,在资源管理器中双击其中一个文件会直接在 Markzen 中打开它,如果安装了多个编辑器,您仍然可以通过“打开方式…”选择 Markzen。

键盘快捷键

操作
Ctrl+S 保存
Ctrl+Shift+S 另存为
Ctrl+ + / Ctrl+ - 增大/减小文本大小

标准编辑器快捷键(查找、替换、复制、粘贴、撤消、重做)和格式工具栏快捷键(粗体 Ctrl+B、斜体 Ctrl+I、标题 Ctrl+H、链接 Ctrl+K 等)在编辑器窗格中均可使用。只有当当前标记具有该构造时,格式快捷键才存在——Ctrl+D 在 AsciiDoc 文档中不起作用,因为它没有自己的删除线(请参阅 编辑器)。

提示

  • **隐藏编辑器以阅读。**预览显示的单视图将Markzen变成一个干净的阅读器,五个样式模板让您可以设置其外观。
  • **一份文档,各种内容。**Mermaid流程图、KaTeX方程和乐谱可以与普通散文并存——它们都会一起渲染,并且都能在PDF和HTML导出中保留。
  • **样式模板即导出外观。**您选择的任何模板都是烘焙到PDF和HTML输出中的样式,因此请在导出前设置好。
  • **用您喜欢的标记语言写作,以他们需要的格式交付。**用Markdown(或八种语言中的任何一种)起草,然后使用“转换为”来生成Word文件、幻灯片、电子书或LaTeX源文件——无需单独的工具。
目录