暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

开源视界 2020-07-05
486

活在纯文本的世界里? 这里有人们需求的不用自己使用字处理器就可以生成字处理文档的方法.

22 May 2019 | Scott Nesbitt

图片: opensource.com

如果你还过着纯文本的生活,总有某些时候某些人会要求你使用字处理器文档。我就经常遇到这个问题,尤其是在白天工作的时候。尽管我已经向我工作中的一个团队介绍了Docs Like Code工作流用于撰写和审查版本更新(release notes),仍然有少部分人对GitHub或者Markdown不感兴趣。它们更喜欢用于专用软件格式的文档。
好消息是,你不会受困于拷贝并粘贴非格式化文本到字处理文档中。使用pandoc,你可以很快地给出人们想要的文档。让我们来看一下,如何在Linux中使用pandoc将一个文档从Markdown转换为字处理器格式吧。
注意pandoc也在许多其它操作系统上可以使用,包括两种风格的BSD(NetBSD和FreeBSD)、Chrome OS、MacOS、Windows。



首先,在你的计算机上安装pandoc。然后,打开一个操纵台终端窗口并导航至含有你想要转换的文件的目录。
输入下面的命令来创建一个ODT文件(你可以用字处理器如LibreOffice Writer或者AbiWord打开)
pandoc -t odt filename.md -o filename.odt
记住把filename替换为文件的真实名字。并且如果你需要创建出其它字处理器(你知道我指的哪个)的文件,在命令中用docx取代odt。下面是文章被转换为ODT打开后的样子

这些结果都是足以使用的,但是有一点过于平淡。现在我们来看一下,如何添加更多的风格到转换后的文本中。



pandoc有一个很漂亮的特性允许你能够在转换一个Markdown纯文本文件到字处理器格式的时候指定一个风格模板。在这个文件中,你可以修改文档中的少数样式,包括控制段落、标题、副标题、题目、插图以及基本表格和超链接等的外观。
我们来看一下有可能实现的功能吧。


为了为你的文档添加样式,你不能仅是使用一个模板。你需要创建一个pandoc称为索引模板的东西,其是程序在转换一个文本文件到字处理文件时需要使用到的东西。为了创建该文件,在终端窗口中输入一下命令:
pandoc -o custom-reference.odt --print-default-data-file reference.odt
这个命令会创建一个名为custom-reference.odt的文件。如果你是用的另一个你知道我指的是什么的字处理器,将命令行中的odt改为docx
在LibreOffice中打开模板文件,并按F11来打开LibreOffice的样式面板。尽管pandoc 手册建议不要对该文件做出修改,我在必要的时候会改变页面尺寸并添加了页眉和页脚。


所以,你要怎样使用你刚床架的模板呢? 有两个方法可以实现。
最简单的方法就是将模板文件放在你的/home目录下的.pandoc/文件夹中-如果该文件夹不存在,你需要先创建它。当需要开始转换一个文档的时候,pandoc会使用该模板。如果你需要从一堆模板中选择模板来使用的话,参见下一节的内容。
另一个方式就是在命令行中增加相应的参数:
pandoc -t odt file-name.md --reference-doc=path-to-your-file/reference.odt -o file-name-odt
如果你想知道通过一个定制的模板转换后的文件看起来是什么样子,下面有一个例子:


许多人仅需要一个pandoc模板。另一些人,然而却需要多个模板。
在我的日常工作中,我就有可能需要使用到多个模板-一个具有DRAFT水印,一个具有水印FOR INTERNAL USE,还有一个用于文档的最终版本。每个类型的文档需要不同的模板。
如果你有相似的需求,首先就像你在处理只需要一个模板的情况那样开始工作,新建一个文件custom-reference.odt。重命名该文件,例如重命名为custom-reference-draft.odt-然后在LibreOffice中打开并修改样式。为每个你需要的模板重复该过程。
下一步,将文件复制到你的/home目录。你甚至可以直接将它们放置到/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.odt --reference-doc=~/Documents/pandoc-templates/custom-reference-draft.odt
使用pandoc是很棒的一个为人们提供需要的字处理器格式文档的方法,为此你不需要放弃终端命令行的工作方式。而且这个工具不仅支持Markdown文件。本文中所谈到的内容对于你创建和转换其它很多类型的标记语言都是适用的。参见pandoc网站来了解更多。

原文: Convert Markdown files to word processor docs using pandoc

原文作者:  Scott Nesbitt

翻译: OpenView | 开放视野


文章转载自开源视界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论