@(编程)

1. 描述

Pandoc是一个用于从一种标记格式转换为另一种的Haskell库,还是一个使用该库的命令行工具。它可以读取markdown格式和Textile格式(的子集)、reStructuredText格式、HTML格式、以及LaTeX格式;而且它可以写成纯文本、markdown格式、reStructuredText格式、HTML格式、LaTeX格式、ConTeXt格式、RTF格式、DocBook XML格式、OpenDocument XML格式、ODT格式、GNU Texinfo格式、MediaWiki markup格式、EPUB格式、Textile格式、groff man页面、Emacs Org-Mode格式、以及Slidy格式或S5格式的HTML幻灯片显示。

Pandoc的markdown增强版包括的语法有:脚注、表格、灵活有序列表、定义列表、分隔的代码块、上标、下标、删除线、标题块、自动目录、嵌入式LaTeX数学符号、引用、以及将HTML标记内的块元素转化为markdown格式。(在下面的Pandoc的markdown格式小节下描述了这些增强语法,还可以使用--strict选项将其禁用。)

同大多数用于从markdown格式转换为HTML格式的现有工具不同的是,那些工具都使用了正则替换,而Pandoc具有模块化设计:它由一系列读出器和一系列编写器组成的,读出器用于以给定格式分析文本并生成一份此文档的本地表示,编写器则用于将这份本地表示转换为目标格式。因此,增加某种输入或输出格式只需要增加一个读出器或编写器就可以了。

2. 使用Pandoc

如果未指定input-file(输入文件),那么将从stdin(标准输入)中读取输入。否则,多个输入文件input-files会串联起来(彼此之间以一个空行分隔),并作为输入使用。在默认情况下,会输出到stdout(标准输出设备,如命令行窗口)(然而,对于odt和epub输入格式则被禁用输出到stdout)。对于输出到文件,应使用-o选项:

pandoc -o output.html input.txt
除了文件,还可以给定一个绝对URI。在本例中,Pandoc将使用HTTP协议获取相应内容:

pandoc -f html -t markdown http://www.fsf.org
如果有多个输入文件,pandoc在解析前将把它们全部串联起来(它们彼此之间以若干空行分隔)。

输入和输出格式可以使用命令行选项显式指定。可使用-r/--read或-f/--from选项指定输入格式,使用-w/--write或-t/--to选项指定输出格式。因此,把hello.txt从markdown格式转换为LaTeX格式,你可以输入:

pandoc -f markdown -t latex hello.txt
把hello.html从html格式转换为markdown格式:

pandoc -f html -t markdown hello.html
在-t/--to选项下列出了支持的输出格式。在-f/--from选项下列出了支持的输入格式。请注意,rst、textile、latex、以及html读出器是不完整的;尚有一些它们没有解析的结构。

如果没有显示指定输入或输出格式,那么pandoc将尝试从输入和输出文件名的扩展名来猜出相应格式。因此,例如,

pandoc -o hello.tex hello.txt
将把hello.txt从markdown格式转换为LaTeX格式。如果没有指定输出文件(因此会输出到stdout),或者如果输出文件的扩展名是未知的,那么输出格式将默认采用HTML格式。如果没有指定输入文件(因此输入将来自stdin),或者如果输入文件的扩展名是未知的,那么除非显式指定,否则输入格式将假定为markdown格式。

Pandoc对于输入和输出都使用UTF–8字符编码。如果你的本地字符编码不是UTF–8,你应该通过iconv传送输入和输出:

iconv -t utf-8 input.txt | pandoc | iconv -f utf-8

转载

转载自http://www.ituring.com.cn/article/746
作者:高翌翔

《Pandoc用户指南》之一的更多相关文章

  1. Gradle用户指南(1)-Gradle安装

    前置条件 Gradle 需要 Java JDK 或者 JRE,版本是 6 及以上.Gradle 将会装载自己的 Groovy 库,因此,Groovy 不需要被安装.任何存在的 Groovy 安装都会被 ...

  2. Gradle用户指南(章9:Groovy快速入门)

    Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...

  3. Gradle用户指南

    下载安装gradle 2.1 下载地址:http://www.gradle.org/learn 安装先决条件:gradle安装需要1.6或者更高版本的jdk(jre)(可以使用java –versio ...

  4. scons用户指南翻译(附gcc/g++参数详解)

    scons用户指南 翻译 http://blog.csdn.net/andyelvis/article/category/948141 官网文档 http://www.scons.org/docume ...

  5. 阿里云 EDAS-HSF 用户指南

    阿里云 EDAS-HSF 用户指南 针对 EDAS v2.3.0©Alibaba EDAS 项目组2015/8/19 1 前言本文档旨在描述阿里云 EDAS 产品中应用服务化模块的基本概念,以及如何使 ...

  6. 【Flume NG用户指南】(1)设置

    作者:周邦涛(Timen) Email:zhoubangtao@gmail.com 转载请注明出处:  http://blog.csdn.net/zhoubangtao/article/details ...

  7. Android官方技术文档翻译——Gradle 插件用户指南(1-3)

    不知道是什么网络问题,上午一直发不了博客,其它页面基本正常,就是在写博客这里,每次打开都是响应超时.刚才用了VPN,顺便试了一下,竟然能够编辑.想是CDN之类的问题吧. 这次翻译的是Gradle 插件 ...

  8. 【Flume NG用户指南】(2)构造

    作者:周邦涛(Timen) Email:zhoubangtao@gmail.com 转载请注明出处:  http://blog.csdn.net/zhoubangtao/article/details ...

  9. Android官方技术文档翻译——Gradle 插件用户指南(5)

    昨晚把第五章未译完的几句话攻克了.只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章. 本文译自Android官方技术文档<Gradle Plugin User Gu ...

随机推荐

  1. aptana studio 3支持jquery

    首先要说的一点是,如果你不使用PortableGit,就不要安装,否则New From Template中会缺失大部分模板.至于还有什么缺陷,暂时没测出来,本人也是刚玩aptana studio 3哈 ...

  2. Android Studio 配置使用百度api (附带简单样例)

    还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明.  难道,是因为后者是 "Doo ...

  3. 51nod1257 背包问题 V3

    分数规划经典.开始精度1e-3/1e-4都不行,1e-5就A了 #include<cstdio> #include<cstring> #include<cctype> ...

  4. VS启用IIS调试的方法及可能碰到的问题。

    经常有这种情况, 开发机本地正常, 但是一旦发布到服务上后, 就出现各种问题. 这是由于开发机和服务器环境不一样造成的, 所以开发时要尽可能的模拟真实性.  这时候, VS的这个功能就帮大忙了. 如何 ...

  5. rmmod 无法卸载模块问题

    用insmod加载驱动模块成功后,用rmmod无法卸载 解决方法:在板子上建立一个空目录:lib/modules/2.6.30.4/

  6. dede 替换后台两个文件去广告

    A:替换后台两个文件去广告  dede/templets路径下两个文件 1.index2.htm <!--This is IE DTD patch , Don't delete this lin ...

  7. errno 与 perror()/strerror()函数

    errno是个全局的int型变量,当调用一个系统函数时不管成功不成功都有可能改变errno的值.但只有不成功时errno的值才是有意义的.如果要真的想用errno进行多次打印,刚可以先将其缓存一下.下 ...

  8. 警惕VPS服务商常用的超售手段

    任何商业企业都希望将利益最大化,这是可以理解的.但如果做的过火最终损害的还是自己的利益.VPS服务提供商也一样,为了将利益最大化,他们往往会实用技术手段对所出售的VPS进行“超售”. 那么何谓“超售” ...

  9. Oracle 11g对大表中添加DEFAULT值的NOT NULL字段速度有大幅度的提升

    在一张2000万的表上增加了一个字段并字段一个默认值,执行这条语句(alter table tablename add new_col default ‘col’)一个小时没有执行完,问我有没有其他解 ...

  10. 安卓 Dialogs(对话框)

    转载自:http://www.apkbus.com/home.php?mod=space&uid=679028&do=blog&id=61197 对话框是一个小的窗口用以提示用 ...