Pandoc和未知的奇觀

我上次提到Haskell是在一篇有關 X莫納德。 但是,這並不是我要向您展示的世界上唯一的非凡事物。

當然每個人都已經知道 降價,如果我不提出這些建議。 它是一種輕標記語言,使我們在編寫文本時更快,更高效。 現在足夠了。

好吧,Markdown並不孤單,並且有多種語言可以執行相同的功能。 通常每個人都會想到帶有一些標記的純文本並將其傳遞為HTML,LaTex等形狀。 一切都很好。

這帶來了幾個問題。 首先,最重要的是,某些實現沒有 todas 我們想要的功能。 或已經實現了我們不喜歡的標記語言。

在我們陷入幻想之前,您必須考慮並意識到有更好的解決方案。 可以將任何標記語言變成其他東西的東西。 任何人。

這就是Haskell出現的地方。 我說的那個奇蹟存在,它還活著,有個名字,它有效並且令人驚訝。 自稱 潘多克 它來自伯克利大學的約翰·麥克法蘭(John MacFarlane)的哲學家的手。 堅持下去,因為美好開始。

待辦事項與待辦事項

我們可以期望pandoc通過不集中精力來提供對所有事物的平庸報導。 但不是。 它工作出色,功能驚人。

為簡單起見,請將任何源文件傳遞給pandoc (在Markdown或reStructuredText或pandoc支持的其他語言中) 並將其轉換為最終格式,例如-每個人都準備好了嗎?-

LaTex,純HTML,PDF,DocBook,OpenDocument,docx,rtf,man,純文本以及多達三種不同類型的HTML演示文稿; 我的名單很短,非常短。 這是說明其功能的圖:

如果還不夠的話,那就是Haskell庫(或書店,隨便叫什麼); 可以集成到其他程序的代碼中。 哈基爾 它是利用最多的工具之一,它是一個靜態頁面生成器,使用pandoc可以將無害的Markdown和某些LaTex轉換為純HTML。

這裡一個 網站清單 已將其用作博客樣式的個人網站。

完成它非常快。 即使具有所有這些優勢,它似乎也只會在盎格魯-撒克遜國家/地區擴展,並且這裡幾乎沒有任何可用信息,例如-此類展示很傷人。 可能是因為用戶指南是英文的。

缺點

當然必須有。 除了價差相對較小之外,大多數發行商均未完全支持它。

Vim具有語法突出顯示 Markdown和默認情況下沒有其他內容,因此我們錯過了有關pandoc的一些最酷的東西:它的擴展語法。

原始Markdown中從未提出過的東西,使我們的生活更加輕鬆,例如表格,引用,腳註,代碼中的HTML和LaTex,元數據和更高級的特性。

順便說一句,Emacs在這裡有一個優勢。 它具有Markdown模式,可為我們提供語法突出顯示功能和一些有用的命令,但是有一個 潘多克模式 成熟,其Vim同類產品仍無法與之抗衡。

如果您仍然有興趣將其放入Vim,請參見以下語法文件。 如前所述,對於emacs,您必須安裝markdown和pandoc模式。

開門見山

我在尋找text2tags包時發現了pandoc (另一個轉換器,但更受限制) en 緊縮邦 現在我知道它在 Debian 用名字穩定,猜怎麼著,pandoc。 一種 資質安裝 足以做到這一點。 但是我們使用的 ArchLinux的 我們必須首先遭受一些挫折。

那依賴地獄

我們考慮的第一件事是製作pacman -S pandoc。 好吧,不。 官方存儲庫中沒有軟件包,由於所需的大量依賴關係,AUR無法正常工作。 如果您已經對Haskell有所了解,那麼您現在會認為陰謀集團將解決它。 是的,但有保留。 為此,您必須運行以下命令:

sudo pacman -S ghc cabal安裝cabal更新cabal安裝pandoc

這應該可以,但是我不建議這樣做。 尤其是如果您想進入Haskell的世界,因為這將在將來給您帶來可怕的問題。

聽到對ArchLinux及其哲學的抱怨當然聽起來很奇怪,但是在我看來,從存儲庫中刪除haskell-platform軟件包完全是胡說八道,這提供了充分開發和使用的最後一個環境。 彼此兼容; 為什麼ghc和cabal-install得到了更新。

如果要使用cabal安裝其他軟件包,最好下載這些軟件包 ghc和cabal-install來自 拱退機.

我們用一個簡單的pacman -U安裝它們 包路徑 並且我們在更新系統時使pacman忽略它們,在文件/etc/pacman.conf;中。 內部部分 忽略包.

現在我們可以使用cabal安裝pandoc並使其正常工作,我們將此行放入.bashrc文件中:

導出路徑=〜/ .cabal / bin:$路徑

就是這樣。 牽強附會,但我們避免了問題。 如果您想從其他軟件包開始,而不是在本地安裝它們,則可以使用 赫森夫 創建隔離的環境並避免安裝Hakyll等麻煩的事情。

一旦我警告您,那太可怕了。 所有這些都是因為Haskell和Cabal尚未解決其他語言已經擺脫的依賴地獄,例如Ruby及其捆綁包和gems。 無論如何,我欠這個小解決方案 伊恩·羅斯(Ian Ross) Hakyll小組的成員。

耐心一點。 這是一個漫長的安裝,因為它會為我們編譯它。

使用和結論

您選擇一個終端並發送如下命令:

pandoc -o輸出文件.ext -i原始文件.md

Markdown(*。md,是我使用的擴展名)可以用任何其他格式替換,.ext可以用輸出中的任何其他可用格式替換。

對我來說,幾乎每天都這樣做,這對我有很大幫助,尤其是導出到OpenDocument。

生態系統令人難以置信。 MacFarlane自己在Haskell中開發了一個Wiki,Pandoc用它來轉換其頁面,但這是另一個故事。 順便說一句,這篇文章是由Pandoc自豪地撰寫的,就像我到目前為止撰寫的大多數文章一樣,


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   加迪 他說:

    我也使用Markdown。 Kate和Gedit可以安裝插件來突出顯示語法。 然後將其轉換為ODT,我選擇了MultiMarkdown,它是大多數人(怎麼說)“尊重文本”的一種語言,以便將其複製到具有段落樣式的文檔時更加舒適。 Pandoc沒有給我相同的結果,或者至少我不知道該怎麼做😛

    1.    他說:

      通過激活–strict選項,可以使Pandoc僅採用標準Markdown; 如果那是你的意思。 但是,它的主要優點是格式之間的通用性。
      推薦它,儘管我很少看到他們使用它,但是它並沒有傷害我。

  2.   Erunamo爵士 他說:

    我用它來從LaTeX到reStructuredText。 他做得很好(大部分時間是xD)

  3.   MSX 他說:

    有趣,感謝分享。