怎么使用pandoc将Markdown转换为格式化文档
小编给大家分享一下怎么使用pandoc将Markdown转换为格式化文档,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
基本转换
首先,在你的计算机上安装 pandoc。然后,打开控制台终端窗口,并导航到包含要转换的文件的目录。
输入此命令以创建 ODT 文件(可以使用 LibreOffice Writer 或 AbiWord 等字处理器打开):
pandoc -t odt filename.md -o filename.odt
记得用实际文件名称替换 filename
。如果你需要为其他文字处理器(你知道我的意思)创建一个文件,替换命令行的 odt
为 docx
。以下是本文转换为 ODT 文件时的内容:
Basic conversion results with pandoc.
这些转换结果虽然可用,但有点乏味。让我们看看如何为转换后的文档添加更多样式。
带样式转换
pandoc
有一个漂亮的功能,使你可以在将带标记的纯文本文件转换为字处理器格式时指定样式模板。在此文件中,你可以编辑文档中的少量样式,包括控制段落、文章标题和副标题、段落标题、说明、基本的表格和超链接的样式。
让我们来看看能做什么。
创建模板
要设置文档样式,你不能只是使用任何一个模板就行。你需要生成 pandoc 称之为引用模板的文件,这是将文本文件转换为文字处理器文档时使用的模板。要创建此文件,请在终端窗口中键入以下内容:
pandoc -o custom-reference.odt --print-default-data-file reference.odt
此命令创建一个名为 custom-reference.odt
的文件。如果你正在使用其他文字处理程序,请将命令行中的 "odt" 更改为 "docx"。
在 LibreOffice Writer 中打开模板文件,然后按 F11
打开 LibreOffice Writer 的 "样式" 窗格。虽然 pandoc 手册建议不要对该文件进行其他更改,但我会在必要时更改页面大小并添加页眉和页脚。
使用模板
那么,你要如何使用刚刚创建的模板?有两种方法可以做到这一点。
最简单的方法是将模板放在家目录的 .pandoc
文件夹中,如果该文件夹不存在,则必须先创建该文件夹。当转换文档时,pandoc
会使用此模板文件。如果你需要多个模板,请参阅下一节了解如何从多个模板中进行选择。
使用模板的另一种方法是在命令行键入以下转换选项:
pandoc -t odt file-name.md --reference-doc=path-to-your-file/reference.odt -o file-name.odt
如果你想知道使用自定义模板转换后的文件是什么样的,这是一个示例:
A document converted using a pandoc style template.
选择模板
很多人只需要一个 pandoc
模板,但是,有些人需要不止一个。
例如,在我的日常工作中,我使用了几个模板:一个带有 DRAFT 水印,一个带有表示内部使用的水印,另一个用于文档的最终版本。每种类型的文档都需要不同的模板。
如果你有类似的需求,可以像使用单个模板一样创建文件 custom-reference.odt
,将生成的文件重命名为例如 custom-reference-draft.odt
这样的名字,然后在 LibreOffice Writer 中打开它并修改样式。对你需要的每个模板重复此过程。
接下来,将文件复制到家目录中。如果你愿意,你甚至可以将它们放在 .pandoc
文件夹中。
要在转换时选择特定模板,你需要在终端中运行此命令:
pandoc -t odt file-name.md --reference-doc=path-to-your-file/custom-template.odt -o file-name.odt
改变 custom-template.odt
为你的模板文件名。
结语
为了不用记住我不经常使用的一组选项,我拼凑了一些简单的、非常蹩脚的单行脚本,这些脚本封装了每个模板的选项。例如,我运行脚本 todraft.sh
以使用带有 DRAFT 水印的模板创建文字处理器文档。你可能也想要这样做。
以下是使用包含 DRAFT 水印的模板的脚本示例:
pandoc -t odt $1.md -o $1.odt --reference-doc=~/Documents/pandoc-templates/custom-reference-draft.odt
以上是"怎么使用pandoc将Markdown转换为格式化文档"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!