使用 pandoc 将 Markdown 转换为格式化文档
创始人
2024-03-02 03:14:10
0

生活在普通文本世界么?以下是无需使用文字处理器而创建别人要的格式化文档的方法。

如果你生活在普通文本世界里,总会有人要求你提供格式化文档。我就经常遇到这个问题,特别是在 Day JobTM。虽然我已经给与我合作的开发团队之一介绍了用于撰写和审阅发行说明的 Docs Like Code 工作流程,但是还有少数人对 GitHub 和使用 Markdown 没有兴趣,他们更喜欢为特定的专有应用格式化的文档。

好消息是,你不会被卡在将未格式化的文本复制粘贴到文字处理器的问题当中。使用 pandoc,你可以快速地给人们他们想要的东西。让我们看看如何使用 pandoc 将文档从 Markdown 转换为 Linux 中的文字处理器格式。

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

基本转换

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

输入此命令以创建 ODT 文件(可以使用 LibreOffice WriterAbiWord 等字处理器打开):

pandoc -t odt filename.md -o filename.odt

记得用实际文件名称替换 filename。如果你需要为其他文字处理器(你知道我的意思)创建一个文件,替换命令行的 odtdocx。以下是本文转换为 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。我在本文中讨论的内容还可以让你在各种标记语言之间创建和转换文档。有关更多详细信息,请参阅前面链接的 pandoc 官网


via: https://opensource.com/article/19/5/convert-markdown-to-word-pandoc

作者:Scott Nesbitt 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

用AI制作“思维导图”,两...
AI是知识工作者的挖掘机,大幅提升教学与科研生产力。 ——...
2025-06-08 12:11:19
mdbook通过markd...
mdbook通过markdown制作电子书(代替gitbook) ...
2025-05-30 12:27:57
gitbook通过mark...
gitbook通过markdown制作电子书 环境:...
2025-05-30 08:22:09
不在Markdown中强制...
在Markdown中,不能直接强制使用表情符号,但可以通过使用HT...
2025-01-11 15:31:26
不需要使用v-html来显...
在Vue中,可以使用第三方库marked来解析Markdown,并...
2025-01-10 15:01:06
不希望在Beamer(使用...
要在Beamer(使用R Markdown编织)中使用Berlin...
2025-01-10 11:01:31

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...