.. _pandoc:
=====================
pandoc 文档转换工具
=====================
在撰写 :ref:`sphinx_doc` 时,也有一些以前使用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`` 是一个非常庞大的软件,如果在 :ref:`arch_linux` 上安装,就会看到依赖安装了大量的 ``haskell`` 软件包。对于我的 :ref:`mobile_cloud_infra` 来说,本地磁盘大多数被用于虚拟机环境,不愿意花费大量的磁盘空间来安装这个并不常用的软件。
不过,我的服务器 ``zcloud`` 存储空间充足,性能强大,所以我通过以下脚本来完成转换:
.. literalinclude:: pandoc/m2r
:language: bash
:caption: 通过SSH将本地Markdown文件上传服务器使用pandoc转换reStructuredText文件下载
这样,可以简单转换(脚本待完善)::
m2r bash_shutcuts.md
则在本地会有转换后的 ``bash_shutcuts.rst`` ,方便后续修改。
参考
======
- `Pandoc: Best Way To Convert Markdown to reStructuredText! `_