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,
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 😛
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.
Koristio sam ga za prelazak s LaTeX-a na reStructuredText. Čini to vrlo dobro (većinu vremena xD)
Zanimljivo, hvala na dijeljenju.