使用 pandoc 将 Markdown 文件转换为文字处理器文档

过着纯文本生活? 这里介绍如何创建人们要求的文字处理器文档,而无需亲自在文字处理器中工作。
235 位读者喜欢这个。
Jump-start your career with open source skills

Opensource.com

如果你生活在纯文本的世界中,总会有人要求你提供文字处理器文档。 我经常遇到这个问题,尤其是在日常工作中TM。 尽管我已经向我合作的其中一个开发团队介绍了 Docs Like Code 工作流程,用于编写和审查发布说明,但仍有少数人对 GitHub 或使用 Markdown 毫无兴趣。 他们更喜欢为某个专有应用程序格式化的文档。

好消息是,你不会被困在复制和粘贴未格式化的文本到文字处理器文档中。 使用 pandoc,你可以快速满足人们的需求。 让我们看看如何在 Linux 中使用 pandoc 将文档从 Markdown 转换为文字处理器格式。 ​​​​

请注意,pandoc 也适用于各种操作系统,从两种 BSD 版本(NetBSDFreeBSD)到 Chrome OS、MacOS 和 Windows。

转换基础知识

首先,在你的计算机上安装 pandoc。 然后,打开一个控制台终端窗口,并导航到包含你要转换的文件的目录。

键入此命令以创建 ODT 文件(你可以使用像 LibreOffice WriterAbiWord 这样的文字处理器打开它)

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 手册 建议不要对文件进行其他更改,但我会在必要时更改页面大小并添加页眉和页脚。

使用模板

那么,你如何使用刚刚创建的模板呢? 有两种方法可以做到这一点。

最简单的方法是将模板放在你的 /home 目录的 .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.

opensource.com

从多个模板中选择

许多人只需要一个 pandoc 模板。 然而,有些人需要不止一个。

例如,在我的日常工作中,我使用多个模板——一个带有 DRAFT 水印,一个带有 FOR INTERNAL USE 水印,以及一个用于文档最终版本的模板。 每种类型的文档都需要不同的模板。

如果你有类似的需求,请以与单个模板相同的方式开始,创建文件 custom-reference.odt。 将生成的文件重命名——例如,重命名为 custom-reference-draft.odt——然后在 LibreOffice Writer 中打开它并修改样式。 对你需要的每个模板重复此过程。

接下来,将文件复制到你的 /home 目录中。 如果你愿意,甚至可以将它们放在 .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。 我在本文中讨论的内容还允许你在各种标记语言之间创建和转换文档。 有关更多详细信息,请参阅前面链接的 pandoc 站点。

接下来要阅读什么
标签
That idiot Scott Nesbitt ...
我长期使用免费/开源软件,并为乐趣和利润编写各种东西。 我不太把自己当回事,我所有的特技都是自己做的。

1 条评论

又一次救了我。 谢谢,Scott。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.