pandoc 文档转换工具¶
在撰写 Sphinx文档 时,也有一些以前使用markdown格式撰写的文档需要转换。
开源文档转换工具pandoc 是一个瑞士军刀般的文档工具:
轻量级markup格式(markdown, reStructuredText, Emacs Org-Mode…)
HTML格式
Ebooks(epub,Fictionbooks)
Word处理(微软Word docx, 富文本RTF, OpenOffice/LibreOffice ODT, OpenDocument XML, 微软PowerPoint)
Wiki markup格式(MediaWiki markup, DokuWiki markup, TikiWiki markup …)
Slide show格式
PDF
安装¶
macOS安装:
brew install pandoc
Linux各个发行版都提供了pandoc,在Debian/Ubuntu中安装非常简单:
sudo apt install pandoc
简单使用¶
将markdown转换成reStructuredText:
pandoc readme.md --from markdown --to rst -s -o readme.rst
Pypandoc 是一个简单的pandoc的python wrapper,可以用来转换文档:
pip install pypandoc
转换操作只有2行代码:
import pypandoc
output = pypandoc.convert('somefile.md', 'rst')
远程转换¶
实际上 pandoc
是一个非常庞大的软件,如果在 Arch Linux 上安装,就会看到依赖安装了大量的 haskell
软件包。对于我的 移动云架构 来说,本地磁盘大多数被用于虚拟机环境,不愿意花费大量的磁盘空间来安装这个并不常用的软件。
不过,我的服务器 zcloud
存储空间充足,性能强大,所以我通过以下脚本来完成转换:
通过SSH将本地Markdown文件上传服务器使用pandoc转换reStructuredText文件下载¶
filename=$1
# sed 转换 "test.txt" 到 "text txt"
read file ext <<< $(echo $filename | sed 's/\./ /g')
cat $filename | ssh zcloud-r pandoc - --from markdown --to rst -s > ${file}.rst
这样,可以简单转换(脚本待完善):
m2r bash_shutcuts.md
则在本地会有转换后的 bash_shutcuts.rst
,方便后续修改。