Pandoc ja tuntemattomat ihmeet

Viime kerralla mainitsin Haskellin artikkelissa XMonad. Se ei kuitenkaan ole ainoa merkittävä asia maailmassa, jonka esitän teille.

Varmasti kaikki jo tietävät Hinnanalennusja jos en esitä niitä. Se on kevyt merkintäkieli, jonka avulla voimme olla nopeampi ja tuottavampi kirjoittaessamme tekstiä. Tarpeeksi toistaiseksi.

No, Markdown ei ole yksin, ja siellä on useita kieliä suorittamaan sama tehtävä. Normaalisti kaikki ajattelevat ottavansa pelkän tekstin, jossa on joitain merkkejä, ja välittämällä sen muotoillakseen sen HTML: ksi, LaTexiksi ja muiksi. Kaikki hyvin siellä.

Tämä tuo esiin useita ongelmia. Ensinnäkin ja tärkeintä on, että joillakin toteutuksilla ei ole kaikki haluamamme ominaisuudet. Tai merkintäkieli, joka on jo toteuttanut tämän, emme pidä siitä.

Ja ennen kuin jäämme kapinaan, sinun on ajateltava ja ymmärrettävä, että on olemassa parempi ratkaisu. Jotain, joka muuttaa minkä tahansa merkintäkielen joksikin muuksi. Kuka tahansa.

Tässä Haskell tulee kuvaan. Ihminen, josta puhun, on olemassa, se on elossa, sillä on nimi, se toimii ja se on hämmästyttävää. Soittaa itselleen Pandoc ja se tuli Berkeleyn yliopiston filosofin John MacFarlanen käsistä. Pidä kiinni, koska hyvä alkaa.

Todos vasta todos

Voisimme odottaa pandocin tarjoavan keskinkertaisen kattavuuden kaikesta, keskittymättä. Mutta ei. Se on erinomaisesti toiminut ja sillä on hämmästyttävät toiminnot.

Yksinkertaisuuden vuoksi välität kaikki lähdetiedostot pandocille (joko Markdownissa, reStructuredTextissä tai muissa, joita pandoc tukee) ja muuntaa sen valmiiseen muotoon, kuten - ovatko kaikki valmiita? -

LaTex, tavallinen HTML, PDF, DocBook, OpenDocument, docx, rtf, man, pelkkä teksti ja enintään kolme erityyppistä HTML-esitystä; ja luetteloni on lyhyt, hyvin lyhyt. Tässä on kaavio, joka kuvaa sen tehoa:

Ja viimeisenä mutta ei vähäisimpänä, se on Haskell-kirjasto (tai kirjakauppa, kutsu sitä mitä haluat); jotka voidaan integroida muiden ohjelmien koodiin. hakyll Se on yksi eniten hyödynnetyistä, tämä on staattinen sivugeneraattori, joka pandocia käyttämällä voi muuntaa vaarattomasta Markdownista ja joistakin LaTexistä puhtaaksi HTML: ksi.

Tässä a sivustoluettelo jotka käyttävät sitä jo henkilökohtaisena sivustona blogin tyylillä.

Ja se on melko nopea, jotta se saadaan päätökseen. Ja vaikka näillä kaikilla eduilla näyttää siltä, ​​että se laajenee vain anglosaksisissa maissa, ja täällä on tuskin mitään tietoa, kuten - ja se satuttaa - tämän tyyppisiä esityksiä. Ehkä se johtuu siitä, että käyttäjän opas on englanniksi.

Miinukset

Tietysti täytyy olla. Sen suhteellisen lyhyen leviämisen lisäksi useimmat julkaisijat eivät tue sitä täysin.

Vimillä on syntaksikorostus ja Markdown ja vähän muuta oletusarvoisesti, joten unohdamme joitain pandocin hienoja asioita: sen laajennetun syntaksin.

Asiat, joita ei koskaan nostettu alkuperäisessä Markdownissa ja jotka helpottavat elämäämme, kuten taulukot, viittaukset, alaviitteet, HTML ja LaTex koodissa, metatiedot ja edistyneemmät ominaisuudet.

Emacs, muuten, tässä on etu. Siinä on Markdown-tila, joka antaa meille syntaksikorostuksen ja muutaman hyödyllisen komennon, mutta siinä on pandoc-tilassa täysimittainen, jonka Vim-vastaava ei vieläkään voi kilpailla sen kanssa.

Jos olet edelleen kiinnostunut saamaan sen Vimiin, tässä on syntaksitiedosto. Emacsiin on asennettava markdown- ja pandoc-tilat, kuten jo mainittiin.

Suoraan asiaan

Löysin pandocin etsiessäni text2tags-pakettia (toinen muunnin, mutta rajoitetumpi) en crunchbang ja nyt tiedän, että se on saatavilla Debian vakaa nimellä, arvaa mitä, pandoc. A asenna aptitude riittää tähän. Mutta niitä, joita käytämme Arch Linux meidän täytyy ensin kärsiä parista takaiskuista.

Tuo helvetin riippuvuuksia

Ensimmäinen asia, jonka ajattelemme, on pacman-S-pandokin tekeminen. No ei. Virallisissa arkistoissa ei ole pakettia eikä AUR toimi, koska se vaatii suurta määrää riippuvuuksia. Jos tiedät jo jotain Haskellista, luulet nyt, että cabal ratkaisee sen. Ja kyllä, mutta varauksin. Tätä varten sinun on suoritettava seuraava:

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

Tämän pitäisi toimia, mutta en suosittele sitä. Varsinkin jos haluat kaivaa Haskellin maailmaan, koska se tuo sinulle kauhistuttavia ongelmia tulevaisuudessa.

Varmasti kuulostaa oudolta kuulla valituksen ArchLinuxista ja sen filosofiasta, mutta minusta näyttää olevan täysin hölynpölyä poistamalla haskell-platform -paketti arkistoista, mikä tarjosi viimeiselle ympäristölle riittävän kehittyneen ja yhteensopivia toistensa kanssa; miksi ghc ja cabal-install päivitettiin.

Jos haluat asentaa muita paketteja cabalin avulla, on parasta ladata paketit antiguos ghc ja cabal-install from Archin palautuskone.

Asennamme ne yksinkertaisella pacman -U: lla pakettipolku ja pakotamme Pacmanin jättämään ne huomiotta päivitettäessä järjestelmää tiedostossa /etc/pacman.conf; sisäosassa OhitaPkg.

Nyt voimme käyttää cabalia pandocin asentamiseen ja jotta se toimisi niin kuin pitäisi, lisäsimme tämän rivin .bashrc-tiedostoon:

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

Ja siinä se. Jotain kauheaa, mutta vältämme ongelmia. Jos haluat aloittaa muilla paketeilla, voit käyttää niitä sen sijaan, että asennat ne paikallisesti hsenv luoda eristettyjä ympäristöjä ja välttää esimerkiksi Hakyllin asentamisen aiheuttama päänsärky.

Ja kerran varoitan teitä siitä, että se on kamalaa. Kaikki tämä, koska Haskell ja Cabal eivät ole vielä ratkaisseet riippuvuushelvettiä, josta muut kielet ovat jo päässeet eroon, kuten Ruby sen kimppuineen ja helmineen. Joka tapauksessa olen velkaa tämän pienen ratkaisun ian ross Hakyllin ryhmästä.

Ole kärsivällinen. Se on pitkä asennus, koska se kokoaa sen meille.

Käyttö ja johtopäätökset

Otat päätelaitteen ja lähetät seuraavanlaisen tilauksen:

pandoc -o output-file.ext -i alkuperäinen- tiedosto.md

Jos Markdown (* .md, on käyttämäni laajennus), voidaan korvata millä tahansa muulla muodolla ja .ext muulla lähdössä käytettävissä olevalla.

Minulle, että teen tämän käytännössä joka päivä, se on auttanut minua paljon, erityisesti viennissä OpenDocumentiin.

Ja ekosysteemi on uskomatonta. MacFarlane itse on kehittänyt Waskin Haskellissa, jota Pandoc käyttää sivujensa muuntamiseen, mutta se on toinen tarina. Muuten, tämä viesti on kirjoitettu ylpeänä Pandocin kanssa, kuten useimmat tähän mennessä kirjoittamani viestit,


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   gadi dijo

    Käytän myös Markdownia. Kate ja Gedit voivat olla asentaneet laajennuksen korostamaan syntaksia. Sen jälkeen, kun haluat muuntaa sen ODT: ksi, valitsen MultiMarkdown, se on se, joka eniten, miten sanoa, "kunnioittaa tekstiä", joten kopioimalla se asiakirjaan kappaletyyleillä on mukavampaa. Pandoc ei ole antanut minulle samoja tuloksia, tai ainakaan en tiennyt miten se tehdään 😛

    1.    anti dijo

      Voit saada Pandocin ottamaan vain tavallisen Markdown-toiminnon aktivoimalla –strict -vaihtoehdon; jos tarkoitat sitä. Sen tärkein etu on kuitenkin tiedostomuotojen monipuolisuus.
      Suosittele sitä, sillä vähän kuin olen nähnyt, että he käyttävät sitä, se ei vahingoittanut minua.

  2.   erunamoJAZZ dijo

    Olen käyttänyt sitä siirtyäksesi LaTeX: stä reStructuredTextiin. Hän tekee sen erittäin hyvin (suurimman osan ajasta xD)

  3.   MSX dijo

    Mielenkiintoista, kiitos jakamisesta.