Pandoc i nepoznata čuda

Posljednji put sam spomenuo Haskella u članku o XMonad. Međutim, nije jedina izvanredna stvar na svijetu koju predstavljam.

Sigurno svi već znaju Smanjenje, i ako ih ne predstavim. Lagani je označni jezik koji nam omogućuje da budemo brži i produktivniji pri pisanju teksta. Za sada dosta.

Pa, Markdown nije sam i postoji mnoštvo jezika koji obavljaju istu funkciju. Obično svi idu s idejom da uzmu običan tekst s nekim oznakama i proslijede ga tako da ga formiraju kao HTML, LaTex i druge. Sve dobro tamo.

To dovodi do nekoliko problema. Prvo i najvažnije je da neke implementacije nemaju sve značajke koje želimo. Ili označni jezik koji je to već primijenio i koji nam se ne sviđa.

I prije nego što se uhvatimo za hirove, morate razmisliti i shvatiti da postoji bolje rješenje. Nešto što bilo koji označni jezik pretvara u nešto drugo. Bilo tko.

Ovdje Haskell dolazi na scenu. Čudo o kojem govorim postoji, živo je, ima ime, djeluje i nevjerojatno je. Dozivajući sebe pandok a potekao je iz ruke filozofa sa Sveučilišta Berkeley, Johna MacFarlanea. Drži se, jer dobro započinje.

Svi protiv svih

Mogli bismo očekivati ​​da će pandoc ponuditi osrednje pokriće svega, ne koncentrirajući se. Ali ne. Izvrsno je obrađen i ima nevjerojatne funkcionalnosti.

Da bi bilo jednostavnije, bilo koju izvornu datoteku prosljeđujete pandocu (bilo u Markdown-u ili u reStructuredText-u ili drugima koje pandoc podržava) i pretvara ga u gotov format, poput-jesu li svi spremni? -

LaTex, obični HTML, PDF, DocBook, OpenDocument, docx, rtf, man, običan tekst i do tri različite vrste HTML prezentacija; a moj popis je kratak, vrlo kratak. Evo dijagrama koji prikazuje njegovu snagu:

A ako to nije bilo dovoljno, riječ je o Haskell knjižnici (ili knjižari, nazovite je kako želite); koji se mogu integrirati u kod drugih programa. hakyll To je jedan od onih koji ga najviše iskorištava, a to je statički generator stranica koji pomoću pandoca može pretvoriti iz bezopasnog Markdowna i nekih LaTexa u čisti HTML.

Ovdje a popis mjesta koji je već koriste kao osobnu stranicu, u stilu bloga.

I to je prilično brzo, da ga završite. Pa čak i uz sve ove prednosti, čini se da se širi samo u anglosaksonskim zemljama i ovdje gotovo da nema dostupnih informacija, poput - i šteti - prezentacijama ove vrste. Možda je to zato što je korisnički vodič na Njemačkom.

Protiv

Naravno da mora biti. Osim relativno kratkog širenja, većina izdavača to ne podržava u potpunosti.

Vim ima isticanje sintakse za Markdown i malo toga prema zadanim postavkama, tako da propuštamo neke od najboljih stvari o pandocu: njegovu proširenu sintaksu.

Stvari koje nikada nisu pokrenute u originalnom Markdownu i koje nam olakšavaju život, poput tablica, citata, fusnota, HTML-a i LaTex-a unutar koda, metapodataka i naprednijih karakteristika.

Inače, Emacs ovdje ima prednost. Ima način Markdown koji nam daje isticanje sintakse i nekoliko korisnih naredbi, ali postoji način pandoc punopravni, čiji se ekvivalent Vim još uvijek ne može natjecati s njim.

Ako ste još uvijek zainteresirani za ulazak u Vim, evo datoteke sintakse. Za emacs morate instalirati načine umanjivanja i pandoc, kao što je već spomenuto.

Ravno na bit

Otkrio sam pandoc kada sam tražio paket text2tags (još jedan pretvarač, ali ograničeniji) en crunchbang i sada znam da je dostupan u Debian staja s imenom, pogodi, pandoc. A aptitude instalirati dovoljno za ovo. Ali one koje koristimo ArchLinux prvo moramo pretrpjeti nekoliko neuspjeha.

Taj pakao ovisnosti

Prvo o čemu razmišljamo je izrada pacman -S pandoca. Pa ne. U službenim spremištima nema paketa, a AUR ne radi zbog velike količine ovisnosti koje zahtijeva. Ako već znate nešto o Haskellu, sad ćete misliti da će to riješiti kabala. I da, ali s rezervom. Da biste to učinili, morate pokrenuti sljedeće:

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

Ovo bi trebalo uspjeti, ali ne preporučujem. Pogotovo ako želite zaroniti u svijet Haskella, jer će vam ovo u budućnosti donijeti užasavajuće probleme.

Sigurno zvuči neobično čuti pritužbu na ArchLinux i njegovu filozofiju, ali čini mi se potpunom glupošću ukloniti paket haskell-platforme iz spremišta, što je posljednje okruženje pružalo dovoljno razvijeno i međusobno kompatibilni; zašto su se ažurirali ghc i cabal-install.

Ako želite instalirati druge pakete koristeći cabal, najbolje je preuzeti pakete stari ghc i cabal-install iz Arch povratni stroj.

Instaliramo ih jednostavnim pacman -U put paketa i tjeramo da ih pacman ignorira prilikom ažuriranja sustava, u datoteci /etc/pacman.conf; unutarnji dio ZanemariPkg.

Sada smo u mogućnosti koristiti cabal za instalaciju pandoca i da bi on radio kako treba, stavili smo ovaj redak u našu .bashrc datoteku:

izvozi PUT = ~ / .cabal / bin: $ PATH

I to je to. Nešto daleko, ali izbjegavamo probleme. Ako želite započeti s drugim paketima, umjesto da ih instalirate lokalno, možete koristiti hsenv stvoriti izolirana okruženja i izbjeći glavobolju instaliranja, na primjer, Hakylla.

I jednom vas upozoravam da je užasno. Sve to zato što Haskell i Cabal još nisu riješili pakao ovisnosti kojeg su se drugi jezici već riješili, poput Rubyja sa svojim paketom i draguljima. U svakom slučaju, ovo malo rješenje kojem dugujem ian ross Hakylove skupine.

Budi strpljiv. Duga je instalacija, jer je za nas sastavlja.

Uporaba i zaključci

Uzmete terminal i pošaljete narudžbu poput ove:

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

Gdje Markdown (* .md, proširenje koje ja koristim) može biti zamijenjen bilo kojim drugim formatom, a .ext bilo kojim drugim dostupnim u izlazu.

Meni je praktično svakodnevno bavljenje ovim puno pomoglo, posebno za izvoz u OpenDocument.

A ekosustav je nevjerojatan. MacFarlane je sam razvio wiki u Haskellu, koji Pandoc koristi za pretvaranje svojih stranica, ali to je za drugu priču. Inače, ovaj je post s ponosom napisan s Pandocom, kao i većina onih koje sam do sada napisao,


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   gadi dijo

    Također koristim Markdown. Kate i Gedit mogu instalirati dodatak za isticanje sintakse. Zatim se za njegovo pretvaranje u ODT odlučujem za MultiMarkdown, to je onaj koji većina, kako to reći, "poštuje tekst" tako da je prilikom kopiranja u dokument sa stilovima pasusa ugodnije. Pandoc mi nije dao iste rezultate ili barem nisam znao kako to učiniti 😛

    1.    anti dijo

      Možete natjerati Pandoca da uzme samo standardni Markdown aktiviranjem opcije –strict; ako na to misliš. Međutim, njegova glavna prednost je svestranost između formata.
      Preporučite, s malo onoga što sam vidio da ga koriste, nije me povrijedilo.

  2.   erunamoJAZZ dijo

    Koristio sam ga za prelazak s LaTeX-a na reStructuredText. Čini to vrlo dobro (većinu vremena xD)

  3.   MSX dijo

    Zanimljivo, hvala na dijeljenju.