使用 pandoc 將 Markdown 轉換為格式化文件

Scott Nesbitt發表於2019-07-29

生活在普通文字世界麼?以下是無需使用文書處理器而建立別人要的格式化文件的方法。

如果你生活在普通文字世界裡,總會有人要求你提供格式化文件。我就經常遇到這個問題,特別是在 Day JobTM。雖然我已經給與我合作的開發團隊之一介紹了用於撰寫和審閱發行說明的 Docs Like Code 工作流程,但是還有少數人對 GitHub 和使用 Markdown 沒有興趣,他們更喜歡為特定的專有應用格式化的文件。

好訊息是,你不會被卡在將未格式化的文字複製貼上到文書處理器的問題當中。使用 pandoc,你可以快速地給人們他們想要的東西。讓我們看看如何使用 pandoc 將文件從 Markdown 轉換為 Linux 中的文書處理器格式。

請注意,pandoc 也可用於從兩種 BSD(NetBSDFreeBSD)到 Chrome OS、MacOS 和 Windows 等的各種作業系統。

基本轉換

首先,在你的計算機上安裝 pandoc。然後,開啟控制檯終端視窗,並導航到包含要轉換的檔案的目錄。

輸入此命令以建立 ODT 檔案(可以使用 LibreOffice WriterAbiWord 等字處理器開啟):

pandoc -t odt filename.md -o filename.odt

記得用實際檔名稱替換 filename。如果你需要為其他文書處理器(你知道我的意思)建立一個檔案,替換命令列的 odtdocx。以下是本文轉換為 ODT 檔案時的內容:

Basic conversion results with pandoc.

這些轉換結果雖然可用,但有點乏味。讓我們看看如何為轉換後的文件新增更多樣式。

帶樣式轉換

pandoc 有一個漂亮的功能,使你可以在將帶標記的純文字檔案轉換為字處理器格式時指定樣式模板。在此檔案中,你可以編輯文件中的少量樣式,包括控制段落、文章標題和副標題、段落標題、說明、基本的表格和超連結的樣式。

讓我們來看看能做什麼。

建立模板

要設定文件樣式,你不能只是使用任何一個模板就行。你需要生成 pandoc 稱之為引用模板的檔案,這是將文字檔案轉換為文書處理器文件時使用的模板。要建立此檔案,請在終端視窗中鍵入以下內容:

pandoc -o custom-reference.odt --print-default-data-file reference.odt

此命令建立一個名為 custom-reference.odt 的檔案。如果你正在使用其他文書處理程式,請將命令列中的 “odt” 更改為 “docx”。

在 LibreOffice Writer 中開啟模板檔案,然後按 F11 開啟 LibreOffice Writer 的 “樣式” 窗格。雖然 pandoc 手冊建議不要對該檔案進行其他更改,但我會在必要時更改頁面大小並新增頁首和頁尾。

使用模板

那麼,你要如何使用剛剛建立的模板?有兩種方法可以做到這一點。

最簡單的方法是將模板放在家目錄的 .pandoc 資料夾中,如果該資料夾不存在,則必須先建立該資料夾。當轉換文件時,pandoc 會使用此模板檔案。如果你需要多個模板,請參閱下一節瞭解如何從多個模板中進行選擇。

使用模板的另一種方法是在命令列鍵入以下轉換選項:

pandoc -t odt file-name.md --reference-doc=path-to-your-file/reference.odt -o file-name.odt

如果你想知道使用自定義模板轉換後的檔案是什麼樣的,這是一個示例:

A document converted using a pandoc style template.

選擇模板

很多人只需要一個 pandoc 模板,但是,有些人需要不止一個。

例如,在我的日常工作中,我使用了幾個模板:一個帶有 DRAFT 水印,一個帶有表示內部使用的水印,另一個用於文件的最終版本。每種型別的文件都需要不同的模板。

如果你有類似的需求,可以像使用單個模板一樣建立檔案 custom-reference.odt,將生成的檔案重新命名為例如 custom-reference-draft.odt 這樣的名字,然後在 LibreOffice Writer 中開啟它並修改樣式。對你需要的每個模板重複此過程。

接下來,將檔案複製到家目錄中。如果你願意,你甚至可以將它們放在 .pandoc 資料夾中。

要在轉換時選擇特定模板,你需要在終端中執行此命令:

pandoc -t odt file-name.md --reference-doc=path-to-your-file/custom-template.odt -o file-name.odt

改變 custom-template.odt 為你的模板檔名。

結語

為了不用記住我不經常使用的一組選項,我拼湊了一些簡單的、非常蹩腳的單行指令碼,這些指令碼封裝了每個模板的選項。例如,我執行指令碼 todraft.sh 以使用帶有 DRAFT 水印的模板建立文書處理器文件。你可能也想要這樣做。

以下是使用包含 DRAFT 水印的模板的指令碼示例:

pandoc -t odt $1.md -o $1.odt --reference-doc=~/Documents/pandoc-templates/custom-reference-draft.odt

使用 pandoc 是一種不必放棄命令列生活而以人們要求的格式提供文件的好方法。此工具也不僅適用於 Markdown。我在本文中討論的內容還可以讓你在各種標記語言之間建立和轉換文件。有關更多詳細資訊,請參閱前面連結的 pandoc 官網


via: https://opensource.com/article/19/5/convert-markdown-to-word-pandoc

作者:Scott Nesbitt 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

使用 pandoc 將 Markdown 轉換為格式化文件

訂閱“Linux 中國”官方小程式來檢視

相關文章