Pandoc sareng kaajaiban kanyahoan

Terakhir waktos kuring nyebatkeun Haskell aya dina tulisan ngeunaan XMonad. Nanging, sanés hiji-hijina hal anu luar biasa di dunya anu kuring nampilkeun ka anjeun.

Pasti sadayana parantos terang Markdown, sareng upami kuring henteu nampilkeun aranjeunna. Mangrupikeun basa markup enteng anu ngamungkinkeun urang janten langkung gancang sareng langkung produktif nalika nyerat téks. Cukup pikeun ayeuna.

Nya, Markdown henteu nyalira sareng aya seueur basa di luar sana pikeun ngalaksanakeun fungsi anu sami. Biasana sadaya jelema ngagaduhan ide pikeun nyandak téks polos sareng sababaraha tanda sareng ngalirkeun pikeun ngabentuk salaku HTML, LaTex sareng anu sanésna. Sadayana saé dugi ka ayeuna.

Ieu nyandak sababaraha masalah. Mimiti, sareng anu paling penting, sababaraha palaksanaan henteu ngagaduhan sadaya fitur anu urang hoyong. Atanapi basa markup anu parantos ngalaksanakeun ieu kami henteu resep.

Sareng sateuacan urang kajiret dina karep, anjeun kedah mikir sareng sadar yén aya jalan kaluarna anu langkung saé. Hal anu ngarobah basa markup naon waé pikeun anu sanés. Saha waé.

Ieu dimana Haskell aya dina gambar. Heran anu kuring carioskeun aya, éta hirup, éta ngagaduhan nami, tiasa dianggo sareng endah pisan. Nelepon sorangan pandoc sareng éta asalna tina tangan filsuf ti Universitas Berkeley, John MacFarlane. Tahan, sabab anu hadé dimimitian.

Sadayana ngalawan sadayana

Urang tiasa ngarepkeun pandoc pikeun nawiskeun liputan anu biasa tina sagala hal, ku henteu konsentrasi. Tapi henteu. Hal ieu digarap sacara hadé sareng ngagaduhan pungsionalitas anu endah.

Pikeun ngajantenkeun saderhana, anjeun ngalirkeun file sumber naon waé ka pandoc (naha dina Markdown atanapi dina reStrukturadoTéks atanapi anu sanés anu pandoc ngadukung) sareng ngarobih kana format réngsé, sapertos - naha sadayana parantos siap? -

LaTex, HTML biasa, PDF, DocBook, OpenDocument, docx, rtf, man, téks biasa sareng dugi ka tilu jinis presentasi HTML anu béda; sareng daptar abdi pondok, pondok pisan. Ieu diagram ngagambarkeun kakuatan na:

Sareng upami éta henteu cekap, éta perpustakaan Haskell (atanapi toko buku, sebut wae anu anjeun pikahoyong); anu tiasa diintegrasikeun kana kode program anu sanés. Hakyll Éta mangrupikeun salah sahiji anu paling dieksploitasi, ieu mangrupikeun halaman halaman statis anu ngagunakeun pandoc tiasa ngarobih tina Markdown anu henteu bahaya sareng sababaraha LaTex kana HTML murni.

Kieu a daptar situs anu parantos nganggo éta salaku situs pribadi, dina gaya blog.

Sareng éta lumayan gancang, pikeun ngarengsekeunana. Komo sareng sadaya kaunggulan ieu, sigana éta ngan ukur ngalegaan di nagara-nagara anu nganggo basa Anglo-Sakson sareng didieu ampir teu aya inpormasi anu sayogi, sapertos -na nyeri-presentasi sapertos kieu. Meureun éta kusabab pituduh pangguna dina basa Inggris.

Anu kontra

Tangtosna kedah aya. Kumisan ti sumebarna anu cukup pondok, kaseueuran penerbit henteu ngadukung lengkep.

Vim gaduh panyorot sintaksis keur Markdown sareng sakedik deui sacara standar, janten urang sono kana sababaraha hal anu paling hébat ngeunaan pandoc: sintaksis anu diperpanjang.

Hal-hal anu henteu pernah diangkat dina Markdown asli sareng anu ngajantenkeun kahirupan urang langkung gampang, sapertos tabel, cutatan, catetan kaki, HTML sareng LaTex dina kode, metadata sareng ciri anu langkung maju.

Ku jalan kitu, Emacs ngagaduhan kaunggulan dina ieu. Éta ngagaduhan modeu Markdown anu masihan kami panyorot sintaksis sareng sababaraha paréntah anu manpaat, tapi aya modél pandoc sapinuhna, anu Vim sarimbag na masih teu tiasa nandingan éta.

Upami anjeun masih resep resep kana Vim, ieu mangrupikeun file sintaksis. Pikeun emacs anjeun kedah masang modél markdown sareng pandoc, sapertos anu parantos didadarkeun.

Lempeng kana titik

Kuring mendakan pandoc nalika milarian paket text2tags (konverter lain tapi langkung terbatas) en crunchbang sareng ayeuna kuring terang yén éta sayogi di Debian stabil kalayan namina, tebak naon, pandoc. A aptitude install cekap kanggo ieu. Tapi anu urang anggo ArchLinux urang kedah sangsara sababaraha setbacks heula.

Éta kagumantungan

Hal anu mimiti urang pikirkeun nyaéta ngadamel pandoc-pacman pandoc. Nya, henteu. Teu aya pakét dina Repository resmi sareng anu ti AUR henteu jalan, kusabab jumlahna kagumantungan anu dibutuhkeun. Upami anjeun parantos terang ngeunaan Haskell, anjeun ayeuna bakal mikir yén cabal bakal méréskeunana. Sareng leres, tapi nganggo reservasi. Pikeun ngalakukeun ieu anjeun kedah ngajalankeun ieu:

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

Ieu kedahna jalan tapi kuring henteu nyarankeun éta. Utamana upami anjeun hoyong milarian dunya Haskell, sabab ieu bakal ngajantenkeun anjeun masalah pikareueuseun di pikahareupeun.

Pasti heran pisan upami ngadéngé keluhan ti ArchLinux sareng filosofi na, tapi sigana kuring téh omong kosong pikeun ngaleungitkeun paket haskell-platform ti repositories, anu nyayogikeun lingkungan terakhir anu cukup dikembangkeun sareng cocog sareng silih; naha ghc sareng cabal-install badé diénggalan.

Upami anjeun badé masangkeun bungkus sanés nganggo cabal, langkung saé unduh bungkusan na kolot ghc sareng cabal-install tina Mesin Rollback Arch.

Kami masang aranjeunna nganggo pacman -U saderhana pakét-jalur sareng urang ngajantenkeun pacman teu malire aranjeunna nalika ngamutahirkeun sistem, dina file /etc/pacman.conf; bagian jero Teu malirePkg.

Ayeuna urang tiasa nganggo cabal pikeun masang pandoc sareng supados tiasa dianggo sakumaha mistina, urang lebetkeun garis ieu dina file .bashrc kami:

ékspor PATH = ~ / .cabal / bin: $ PATH

Sareng éta waé. Sesuatu anu jauh, tapi urang ulah aya masalah. Upami anjeun badé mimitian ku paket sanés, tibatan masang éta sacara lokal, anjeun tiasa nganggo hsenv pikeun nyiptakeun lingkungan anu terasing sareng nyingkahan nyeri sirah masang, contona, Hakyll.

Sareng sakali kuring ngingetan yén éta pikareueuseun. Sadaya ieu kusabab Haskell sareng Cabal teu acan ngatasi sihiran katergantungan anu basa sanés parantos disingkirkeun, sapertos Ruby sareng Bundle sareng permata na. Pokokna, solusi sakedik ieu kuring kedah mayar Ian Ross tina grup Hakyll.

Kedah sabar. Éta masang panjang, sabab éta nyusun kanggo urang.

Anggo sareng kasimpulan

Anjeun nyandak terminal sareng ngirim pesen sapertos kieu:

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

Dimana Markdown (* .md, mangrupikeun penyuluhan anu kuring anggo) tiasa digentos ku format anu sanés sareng. Téks ku anu sanés anu aya dina output.

Pikeun kuring, yén kuring ngalakukeun ieu sacara praktis unggal dinten, éta parantos ngabantosan kuring pisan, utamina pikeun ngekspor ka OpenDocument.

Sareng ékosistemna luar biasa. MacFarlane nyalira parantos ngembangkeun wiki di Haskell, anu Pandoc anggo pikeun ngarobih halamanna, tapi éta pikeun carita anu sanés. Ku jalan kitu, tulisan ieu bangga ditulis sareng Pandoc, sapertos kaseueuran anu kuring kantos nyerat dugi ka ayeuna,


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

4 koméntar, tinggalkeun anjeun

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

  1.   Gadi cenahna

    Kuring ogé nganggo Markdown. Kate sareng Gedit tiasa gaduh plugin anu dipasang pikeun nyorot sintaksis. Teras pikeun ngarobih kana ODT kuring milih MultiMarkdown, éta mangrupikeun anu paling, kumaha nyebatkeunana, "ngahargaan téks" sahingga nalika nyalin kana dokumén kalayan gaya alinea langkung raoseun. Pandoc henteu masihan kuring hasil anu sami, atanapi sahenteuna kuring henteu terang kumaha ngalakukeunana 😛

    1.    anti cenahna

      Anjeun tiasa ngajantenkeun Pandoc ngan nganggo Markdown standar, ku ngaktifkeun pilihan –batesan; lamun éta naon anu anjeun hartosna. Nanging, kaunggulan utamina nyaéta fleksibilitas antara format.
      Nyarankeun éta, ku sakedik anu kuring ningali yén aranjeunna nganggo, éta henteu menyakiti kuring.

  2.   ErunamoJAZZ cenahna

    Kuring parantos nganggona pikeun angkat ti LaTeX ka reStruktururedText. Anjeunna ngalaksanakeunana pisan (seuseueurna waktos xD)

  3.   msx cenahna

    Anu matak, hatur nuhun pikeun ngabagi.