Pandoc a neznáme divy

Naposledy som Haskell spomínal v článku o XMonad. Nie je to však jediná pozoruhodná vec na svete, ktorú vám predstavujem.

Určite to už každý vie Markdown, a ak ich nepredložím. Je to ľahký značkovací jazyk, ktorý nám umožňuje byť rýchlejší a produktívnejší pri písaní textu. Zatiaľ dosť.

Markdown nie je sám a existuje veľa jazykov, ktoré vykonávajú rovnakú funkciu. Za normálnych okolností každý ide s myšlienkou, že vezme obyčajný text s niektorými značkami a prenesie ho do podoby HTML, LaTex a ďalších. Všetko dobré až tam.

To prináša niekoľko problémov. Po prvé, a čo je najdôležitejšie, niektoré implementácie nemajú všetko funkcie, ktoré chceme. Alebo značkovací jazyk, ktorý to už implementoval, sa nám nepáči.

A skôr ako sa chytíme za rozmar, musíte si myslieť a uvedomiť si, že existuje lepšie riešenie. Niečo, čo premení akýkoľvek značkovací jazyk na niečo iné. Ktokoľvek.

Tu prichádza na scénu Haskell. Úžas, o ktorom hovorím, existuje, je živý, má meno, funguje a je úžasný. Hovorí si pandoc a vyšlo to z ruky filozofa z Berkeleyskej univerzity Johna MacFarlana. Vydržte, pretože dobré sa začína.

Všetci proti všetkým

Mohli by sme čakať, že pandoc ponúkne priemerné pokrytie všetkého tým, že sa nebude sústrediť. Ale nie. Je vynikajúco spracovaný a má úžasné funkcie.

Pre zjednodušenie odovzdáte akýkoľvek zdrojový súbor pandocu (buď v Markdowne alebo v reStructuredText alebo v iných, ktoré podporuje pandoc) a prevedie ho do hotového formátu, napríklad - sú všetci pripravení? -

LaTex, obyčajný HTML, PDF, DocBook, OpenDocument, docx, rtf, man, obyčajný text a až tri rôzne typy prezentácií HTML; a môj zoznam je krátky, veľmi krátky. Tu je diagram ilustrujúci jeho výkon:

A ak to nestačilo, je to knižnica Haskell (alebo kníhkupectvo, nazvite to ako chcete); ktoré je možné integrovať do kódu iných programov. hakyll Je to jeden z najvyužívanejších, je to statický generátor stránok, ktorý pomocou pandocu dokáže prevádzať z neškodného Markdownu a niektorých LaTexov do čistého HTML.

Tu a zoznam stránok ktorí ho už používajú ako osobnú stránku v štýle blogu.

A je to dosť rýchle, dokončiť to. Aj napriek všetkým týmto výhodám sa zdá, že sa rozširujú iba v anglosaských krajinách a tu nie sú k dispozícii takmer žiadne informácie, napríklad - a bolí to - prezentácie tohto typu. Možno je to tým, že používateľská príručka je v angličtine.

Proti

Samozrejme, že musí byť. Okrem relatívne krátkeho rozšírenia ho väčšina vydavateľov úplne nepodporuje.

Vim má zvýraznenie syntaxe pre Štandardne Markdown a ešte málo, takže nám unikajú niektoré z najlepších vecí na pandoc: rozšírená syntax.

Veci, ktoré v pôvodnom Markdowne nikdy nevznikli a ktoré nám uľahčujú život, ako sú tabuľky, citácie, poznámky pod čiarou, HTML a LaTex v kóde, metadáta a pokročilejšie charakteristiky.

Mimochodom, Emacs má v tomto výhodu. Má režim Markdown, ktorý nám poskytuje zvýraznenie syntaxe a niekoľko užitočných príkazov, ale existuje režim pandoc plnohodnotný, ktorého ekvivalent Vim mu stále nemôže konkurovať.

Ak stále máte záujem dostať sa do Vimu, tu je súbor so syntaxou. Pre emacs musíte nainštalovať režimy markdown a pandoc, ako už bolo spomenuté.

Priamo k veci

Pandoc som objavil pri hľadaní balíka text2tags (iný prevodník, ale obmedzenejší) en crunchbang a teraz viem, že je k dispozícii v debian stajňa s menom, hádajte čo, pandoc. A aptitude nainštalovať dosť na to. Ale tie, ktoré používame Arch Linux najskôr musíme utrpieť niekoľko neúspechov.

To závislosť, peklo

Prvá vec, o ktorej premýšľame, je vytvorenie pacmana -S pandoc. No nie. V oficiálnych úložiskách nie je žiadny balík a AUR nefunguje kvôli obrovskému množstvu závislostí, ktoré vyžaduje. Ak už niečo o Haskellovi viete, teraz si budete myslieť, že to vyrieši kabala. A áno, ale s výhradami. Musíte urobiť nasledovné:

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

Toto by malo fungovať, ale neodporúčam to. Najmä ak chcete vstúpiť do sveta Haskellu, pretože to vám v budúcnosti prinesie desivé problémy.

Určite to znie čudne, keď počujem sťažnosť na ArchLinux a jeho filozofiu, ale zdá sa mi úplným nezmyslom odstrániť balíček haskell-platform z repozitárov, ktorý poskytoval posledné prostredie dostatočne vyvinuté a navzájom kompatibilné; prečo sa aktualizovali ghc a cabal-install.

Ak chcete inštalovať ďalšie balíčky pomocou kabalu, je najlepšie si balíky stiahnuť starý ghc a cabal-install z Arch Rollback Machine.

Inštalujeme ich pomocou jednoduchého pacmana -U cesta paketu a nastavíme, aby ich pacman ignoroval pri aktualizácii systému, v súbore /etc/pacman.conf; vnútorná časť Ignorovať kg.

Teraz sme schopní použiť kabal na inštaláciu pandocu a na to, aby fungoval tak, ako má, vložíme tento riadok do nášho súboru .bashrc:

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

A to je všetko. Niečo priťahované, ale vyhneme sa problémom. Ak chcete začať s inými balíkmi, môžete ich namiesto lokálnej inštalácie použiť hsenv vytvoriť izolované prostredia a vyhnúť sa bolestiam hlavy pri inštalácii, napríklad Hakyll.

A raz ťa varujem, že je to hrozné. To všetko preto, lebo Haskell a Cabal ešte nevyriešili peklo závislostí, ktorého sa už iné jazyky zbavili, napríklad Ruby so svojim Bundle a drahokamami. Každopádne za toto malé riešenie vďačím ian Ross skupiny Hakyll.

Buď trpezlivý. Je to dlhá inštalácia, pretože sa to pre nás kompiluje.

Použitie a závery

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

pandoc -o output-file.ext -i original-file.md

Kde Markdown (* .md, je rozšírenie, ktoré používam) je možné nahradiť akýmkoľvek iným formátom a .ext akýmkoľvek iným dostupným vo výstupe.

Pre mňa to, že to robím prakticky každý deň, mi veľmi pomohlo, hlavne exportovať do OpenDocumentu.

A ekosystém je neuveriteľný. Samotný MacFarlane vyvinul v Haskelli wiki, pomocou ktorej Pandoc prevádza svoje stránky, ale to je už na iný príbeh. Mimochodom, tento príspevok bol hrdo napísaný s Pandocom, rovnako ako väčšina z tých, ktoré som doteraz napísal,


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   gadi dijo

    Používam aj Markdown. Kate a Gedit môžu mať nainštalovaný doplnok na zvýraznenie syntaxe. Potom, aby som ho previedol na ODT, som sa rozhodol pre MultiMarkdown, je to ten, ktorý najviac, ako to povedať, „rešpektuje text“, takže pri jeho kopírovaní do dokumentu so štýlmi odsekov je to pohodlnejšie. Pandoc mi nepriniesol rovnaké výsledky, alebo som aspoň nevedel, ako na to 😛

    1.    proti dijo

      Môžete aktivovať voľbu –strict a presvedčiť Pandoc, aby bral iba štandardné Markdown; ak to máš na mysli. Jeho hlavnou výhodou je však univerzálnosť medzi formátmi.
      Odporučte to, s tým málom, čo som videl, že ho používajú, ma to nebolelo.

  2.   erunamoJAZZ dijo

    Použil som to na prechod z LaTeXu na reStructuredText. Robí to veľmi dobre (väčšinou xD)

  3.   MSX dijo

    Zaujímavé, ďakujeme za zdieľanie.