Linux中國

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

如果你生活在普通文本世界裡,總會有人要求你提供格式化文檔。我就經常遇到這個問題,特別是在 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.](/data/attachment/album/201907/29/113429xae6gh0orhehkiri.png "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.](/data/attachment/album/201907/29/113439i264v0prtt92nwrc.png "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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國