《Pandoc用戶指南》之一


@(編程)

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
作者:高翌翔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM