@(编程)

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. R语言实战读书笔记(五)高级数据管理

    5.2.1 数据函数 abs: sqrt: ceiling:求不小于x的最小整数 floor:求不大于x的最大整数 trunc:向0的方向截取x中的整数部分 round:将x舍入为指定位的小数 sig ...

  2. 使用Spring Session做分布式会话管理

    在Web项目开发中,会话管理是一个很重要的部分,用于存储与用户相关的数据.通常是由符合session规范的容器来负责存储管理,也就是一旦容器关闭,重启会导致会话失效.因此打造一个高可用性的系统,必须将 ...

  3. 监听器Listener

    监听器 6个事件类,均以event结尾 *某些操作,如启动/关闭容器,创建/销毁会话,都将触发一种事件发生,当发生了某种事件,容器将创建对应的事件类对象 8个监听接口,均以Listener结尾 监听器 ...

  4. Android failed creating starting window

    /***************************************************************************** * Android failed crea ...

  5. LeetCode Longest Common Prefix 最长公共前缀

    题意:给多个字符串,返回这些字符串的最长公共前缀. 思路:直接逐个统计同一个位置上的字符有多少种,如果只有1种,那么就是该位是相同的,进入下一位比较.否则终止比较,返回前缀.可能有一个字符串会比较短, ...

  6. 【英语】Bingo口语笔记(13) - Call系列

    call off - call it off 取消它 call it a day / call it a night 今天到此结束吧/今晚到此结束吧

  7. JS面向对象组件(一) ---包装对象与原型链

    首先我们可以看看平时我们常用的 var str = 'hello'; alert(typeof str); //string var str = new String("hello" ...

  8. Spring 框架概述

    ◆简介 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 Spring 框架是一个分层架构,由 7 个定义良好的模块组成. ...

  9. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File

    作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别 是:SharePreference.SQLite.Content Provider和File ...

  10. Delphi 7使用自定义图标关联文件类型

    Delphi 7使用自定义图标关联文件类型 5.2 Delphi编程(40)  版权声明:本文为博主原创文章,未经博主允许不得转载. 在开发过程中,我们经常需要属于自己的文件类型,自定义的后缀名不仅可 ...