@(编程)

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. 【笨嘴拙舌WINDOWS】GDI对象之位图

    GDI对象在windows中可以描述成为一次绘画操作时可使用的抽象工具.包括(画笔.画刷.字体.区域.调色板.位图等) GDI对象里的对象概念和在编程领域中面向对象编程的对象概念是不一样的! GDI对 ...

  2. QDialog之屏蔽Esc键

    简述 Qt中Esc键会在一些控件中默认的进行一些事件的触发,比如:QDialog,按下Esc键窗口消失.大多数情况下,我们不需要这么做,那么就需要对默认事件进行屏蔽. 简述 源码分析 事件过滤器 事件 ...

  3. 51nod1086 背包问题 V2

    我都快不会写二进制优化多重背包了...卡了一下常数从rank100+到20+... #include<cstdio> #include<cstring> #include< ...

  4. POJ 3422 Kaka's Matrix Travels (K取方格数:最大费用流)

    题意 给出一个n*n大小的矩阵,要求从左上角走到右下角,每次只能向下走或者向右走并取数,某位置取过数之后就只为数值0,现在求解从左上角到右下角走K次的最大值. 思路 经典的费用流模型:K取方格数. 构 ...

  5. GrepCode

    /***************************************************************************** * GrepCode * 声明: * 最近 ...

  6. Python内置数据类型之List篇

    List的定义: li = ["one" , "two" , "three" , "four"] List是一个有序的集 ...

  7. SOAP+WSDL

    一 SOAPSOAP最开始是用作RPC机制的,后来XML的出现使其应用非常广泛.它与HTTP一样是一种应用级协议,使用他可以在不同的应用程序之间进行数据交换.SOAP可以基于HTTP,也可以基于HTT ...

  8. openssl安装

    www.openssl.orgconfigure the environment:<pre lang="bash" escaped="true">t ...

  9. 深入学习Heritrix---解析处理器(Processor)(转)

    深入学习Heritrix---解析处理器(Processor) 本节解析与处理器有关的内容. 与处理器有关的主要在以下几个类:Processor(处理器类),ProcessorChain(处理器类), ...

  10. IOS OC声明变量在@interface括号中与使用@property的区别(转载)

    刚开始接触OC再看别人写的代码的时候,常常困惑于人家在声明属性时的写法,总结出来有三中方式,不知道哪一种比较规范化,现在我把三种方式贴出来,然后再一一探讨每个方式声明属性的区别. 方式一:直接在@in ...