Pandoc i nepoznata čuda

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

Sigurno svi već znaju Markdown, i ako ih ne predstavim. To je lagani označni jezik koji nam omogućava da budemo brži i produktivniji prilikom pisanja 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 oblikuju u HTML, LaTex i druge. Sve dobro tamo.

To dovodi do nekoliko problema. Prvo, i što je najvažnije, neke implementacije nemaju sve karakteristike koje želimo. Ili označni jezik koji je to već implementirao 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 ko.

Tu Haskell dolazi na scenu. Čudo o kojem pričam postoji, živo je, ima ime, djeluje i nevjerovatno je. Poziva se pandoc a potekao je iz ruke filozofa sa Univerziteta Berkeley, Johna MacFarlanea. Sačekajte, jer dobro počinje.

Svi protiv svih

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

Da bude jednostavnije, proslijedite bilo koju izvornu datoteku pandoc-u (bilo u Markdown-u ili u reStructuredText-u ili drugima koje pandoc podržava) i pretvara ga u gotov format, poput -Da li su svi spremni? -

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

A ako to nije bilo dovoljno, to je Haskell biblioteka (ili knjižara, 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.

Evo a popis lokacija koji je već koriste kao ličnu 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 jedva da postoje dostupne informacije, 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 para Markdown i malo toga po defaultu, tako da propuštamo neke od najboljih stvari o pandocu: njegovu proširenu sintaksu.

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

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

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

Pravo na stvar

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 stabilno s imenom, pogodi, pandoc. A aptitude install dovoljno za ovo. Ali one koje koristimo ArchLinux prvo moramo pretrpjeti nekoliko neuspjeha.

Taj pakao zavisnosti

Prvo o čemu razmišljamo je stvaranje pacman -S pandoca. Pa, ne. U službenim spremištima nema paketa i AUR ne radi, zbog velike količine zavisnosti koje su mu potrebne. Ako već znate nešto o Haskellu, sad ćete misliti da će to riješiti kabale. 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 ući u svijet Haskella, jer će vam ovo donijeti užasne probleme u budućnosti.

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

Ako želite instalirati druge pakete koristeći cabal, najbolje je preuzeti pakete drevni ghc i cabal-install iz Arch Rollback mašina.

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

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

izvoz PATH = ~ / .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, Hakyll-a.

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 iz Hakyll-ove grupe.

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

Upotreba 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 mnogo pomoglo, posebno za izvoz u OpenDocument.

A ekosistem je nevjerovatan. MacFarlane je sam razvio wiki u Haskell-u, koji Pandoc koristi za pretvaranje njegovih 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 komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   gadi rekao je

    Takođe 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 rekao je

      Aktiviranjem opcije –strict možete natjerati Pandoc da uzima samo standardni Markdown; ako na to mislite. 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 rekao je

    Koristio sam ga za prelazak iz LaTeX-a u reStructuredText. Čini to vrlo dobro (većinom xD)

  3.   MSX rekao je

    Zanimljivo, hvala na podjeli.