Pandoc a neznámé divy

Naposledy jsem Haskell zmínil v článku o XMonad. Není to však jediná pozoruhodná věc na světě, kterou vám představuji.

Určitě to už každý ví Snížení ceny, a pokud je nepředložím. Jedná se o lehký značkovací jazyk, který nám umožňuje být rychlejší a produktivnější při psaní textu. Prozatím dost.

Markdown není sám a existuje spousta jazyků, které vykonávají stejnou funkci. Normálně každý jde s myšlenkou, že vezme prostý text s některými značkami a předá jej, aby jej vytvořil jako HTML, LaTex a další. Všechno dobře až tam.

To přináší několik problémů. Nejdůležitější a nejdůležitější je, že některé implementace nemají vše funkce, které chceme. Nebo značkovací jazyk, který to již implementoval, se nám nelíbí.

A než se chytíme rozmarů, musíte si myslet a uvědomit si, že existuje lepší řešení. Něco, co promění jakýkoli značkovací jazyk na něco jiného. Kdokoliv.

Tady přichází na scénu Haskell. Div, o kterém mluvím, existuje, je živý, má jméno, funguje a je úžasný. Říká si pandoc a přišlo to z ruky filozofa na univerzitě v Berkeley Johna MacFarlana. Vydrž, protože dobro začíná.

Všichni proti všem

Mohli bychom očekávat, že pandoc nabídne průměrné pokrytí všeho tím, že se nebude soustředit. Ale ne. Je skvěle zpracovaný a má úžasné funkce.

Abychom to zjednodušili, předáte jakýkoli zdrojový soubor pandocu (buď v Markdownu nebo v reStructuredText nebo v jiných, které pandoc podporuje) a převede jej do hotového formátu, jako -jsou všichni připraveni? -

LaTex, prostý HTML, PDF, DocBook, OpenDocument, docx, rtf, man, prostý text a až tři různé typy prezentací HTML; a můj seznam je krátký, velmi krátký. Zde je diagram ilustrující jeho sílu:

A v neposlední řadě je to knihovna Haskell (nebo knihkupectví, říkejte tomu, jak chcete); které lze integrovat do kódu jiných programů. hakyll Je to jeden z těch, kdo to nejvíce využívá, jedná se o statický generátor stránek, který při použití pandoc dokáže převést z neškodného Markdownu a některých LaTexů na čistý HTML.

Tady a seznam stránek kteří ji již používají jako osobní web ve stylu blogu.

A je to docela rychlé, dokončit to. A i přes všechny tyto výhody se zdá, že se rozšiřuje pouze v anglosaských zemích a zde nejsou k dispozici téměř žádné informace, například - a bolí to - prezentace tohoto typu. Možná je to tím, že uživatelská příručka je v angličtině.

Nevýhody

Samozřejmě musí být. Kromě relativně krátkého rozšíření jej většina vydavatelů plně nepodporuje.

Vim má zvýraznění syntaxe bod Markdown a nic jiného ve výchozím nastavení, takže nám chybí některé z nejlepších věcí o pandoc: jeho rozšířená syntaxe.

Věci, které v původním Markdownu nikdy nevznikly a které nám usnadňují život, jako jsou tabulky, citace, poznámky pod čarou, HTML a LaTex v kódu, metadata a pokročilejší vlastnosti.

Mimochodem, Emacs má v tom výhodu. Má režim Markdown, který nám dává zvýraznění syntaxe a několik užitečných příkazů, ale existuje režim pandoc plnohodnotný, jehož ekvivalent Vim mu stále nemůže konkurovat.

Pokud stále máte zájem dostat se do Vim, zde je soubor syntaxe. U emacs musíte nainstalovat režimy markdown a pandoc, jak již bylo zmíněno.

Přímo k věci

Objevil jsem pandoc při hledání balíčku text2tags (jiný převodník, ale omezenější) en crunchbang a teď vím, že je k dispozici v Debian stabilní se jménem, ​​hádej co, pandoc. A instalace aptitude dost na to. Ale ty, které používáme archlinux nejdříve musíme utrpět několik neúspěchů.

Ta závislost peklo

První věc, o které přemýšlíme, je vytvoření pacmana -S pandoc. No, ne. V oficiálních úložištích není žádný balíček a AUR nefunguje kvůli velkému množství závislostí, které vyžaduje. Pokud už víte něco o Haskellovi, budete si nyní myslet, že to kabala vyřeší. A ano, ale s výhradami. Chcete-li to provést, musíte spustit následující:

sudo pacman -S ghc cabal-install cabal update cabal install pandoc

To by mělo fungovat, ale nedoporučuji to. Zvláště pokud chcete vstoupit do světa Haskell, protože to vám v budoucnu přinese děsivé problémy.

Určitě to zní divně, když slyším stížnost na ArchLinux a jeho filozofii, ale zdá se mi naprostým nesmyslem odstranit balíček haskell-platform z úložišť, který poskytoval poslední prostředí dostatečně vyvinuté a vzájemně kompatibilní; proč byl aktualizován ghc a cabal-install.

Pokud chcete instalovat další balíčky pomocí kabalu, je nejlepší si tyto balíčky stáhnout starý ghc a cabal-install z Arch Rollback Machine.

Nainstalujeme je pomocí jednoduchého pacman -U cesta k balíčku a nastavíme, aby je pacman ignoroval při aktualizaci systému, v souboru /etc/pacman.conf; vnitřní část Ignorovat kg.

Nyní jsme schopni použít cabal k instalaci pandocu a aby fungoval tak, jak má, vložíme tento řádek do našeho souboru .bashrc:

export PATH = ~ / .cabal / bin: $ PATH

A to je vše. Něco přitažlivého, ale vyhýbáme se problémům. Pokud chcete začít s jinými balíčky, můžete je místo místní instalace použít hsenv vytvořit izolované prostředí a vyhnout se bolesti hlavy při instalaci, například Hakyll.

A jakmile vás varuji, že je to hrozné. To vše proto, že Haskell a Cabal dosud nevyřešili peklo závislostí, kterého se ostatní jazyky již zbavily, například Ruby s jeho Bundle a drahokamy. Toto malé řešení je každopádně způsobeno Ian Ross skupiny Hakyll.

Buď trpělivý. Je to dlouhá instalace, protože to pro nás sestavuje.

Použití a závěry

Vezmete si terminál a odešlete objednávku takto:

pandoc -o výstupní-soubor.ext -i původní-soubor.md

Kde Markdown (* .md, je rozšíření, které používám) lze nahradit jakýmkoli jiným formátem a .ext jakýmkoli jiným dostupným ve výstupu.

Praktické provádění toho každý den mi velmi pomohlo, zejména při exportu do OpenDocumentu.

A ekosystém je neuvěřitelný. MacFarlane sám vytvořil v Haskellu wiki, kterou Pandoc používá k převodu svých stránek, ale to je pro jiný příběh. Mimochodem, tento příspěvek byl hrdě napsán s Pandocem, stejně jako většina z těch, které jsem dosud napsal,


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   gadi řekl

    Také používám Markdown. Kate a Gedit mohou mít nainstalovaný plugin pro zvýraznění syntaxe. Pak jej převést na ODT jsem se rozhodl pro MultiMarkdown, to je ten, který nejvíce, jak to říct, "respektuje text", takže při jeho kopírování do dokumentu s odstavcovými styly je to pohodlnější. Pandoc mi nedal stejné výsledky, nebo alespoň jsem nevěděl, jak na to 😛

    1.    proti řekl

      Můžete přimět Pandoc, aby bral pouze standardní Markdown, aktivací volby –strict; pokud to máte na mysli. Jeho hlavní výhodou je však univerzálnost mezi formáty.
      Doporučte to, s trochou toho, co jsem viděl, že to používají, mi to neublížilo.

  2.   erunamoJAZZ řekl

    Použil jsem to k přechodu z LaTeXu na reStructuredText. Dělá to velmi dobře (většinou xD)

  3.   MSX řekl

    Zajímavé, děkujeme za sdílení.