Pandoc dan keajaiban yang tidak diketahui

Kali terakhir saya menyebut Haskell adalah dalam artikel mengenai XMonad. Namun, ini bukan satu-satunya perkara luar biasa di dunia yang saya sampaikan kepada anda.

Pasti semua orang sudah tahu Penurunan harga, dan jika saya tidak membentangkannya. Ia adalah bahasa penanda cahaya yang membolehkan kita menjadi lebih pantas dan produktif semasa menulis teks. Cukup buat masa ini.

Nah, Markdown tidak bersendirian dan terdapat banyak bahasa di luar sana untuk melakukan fungsi yang sama. Biasanya setiap orang mempunyai idea untuk mengambil teks biasa dengan beberapa tanda dan menyebarkannya untuk membentuknya sebagai HTML, LaTex dan lain-lain. Semua baik setakat ini.

Ini menimbulkan beberapa masalah. Pertama, dan yang paling penting, beberapa pelaksanaan tidak ada todas ciri-ciri yang kita mahukan. Atau bahasa markup yang sudah dilaksanakan ini tidak kita gemari.

Dan sebelum kita terperangkap dalam kehendak, anda harus berfikir dan menyedari bahawa ada jalan penyelesaian yang lebih baik. Sesuatu yang mengubah bahasa markup menjadi sesuatu yang lain. Sesiapa.

Di sinilah Haskell masuk ke dalam gambar. Keajaiban yang saya bicarakan ada, ia masih hidup, mempunyai nama, berfungsi dan sangat mengagumkan. Memanggil sendiri pandok dan ia datang dari tangan seorang ahli falsafah di University of Berkeley, John MacFarlane. Tunggu, kerana yang baik bermula.

Todos kontra todos

Kita boleh mengharapkan pandoc menawarkan liputan biasa-biasa saja dari semua perkara, dengan tidak menumpukan perhatian. Tetapi tidak. Ia berfungsi dengan baik dan mempunyai fungsi yang luar biasa.

Untuk mempermudahnya, anda meneruskan fail sumber ke pandoc (baik dalam Markdown atau dalam reStructuredText atau yang lain yang disokong oleh pandoc) dan menukarnya ke format yang sudah siap, seperti - adakah semua orang sudah bersedia? -

LaTex, HTML biasa, PDF, DocBook, OpenDocument, docx, rtf, man, teks biasa dan hingga tiga jenis persembahan HTML yang berbeza; dan senarai saya pendek, sangat pendek. Berikut adalah gambarajah yang menggambarkan kekuatannya:

Dan jika itu tidak mencukupi, itu adalah perpustakaan Haskell (atau kedai buku, namakan apa yang anda mahukan); yang boleh disatukan ke dalam kod program lain. hakyll Ini adalah salah satu yang paling dieksploitasi, ini adalah penjana halaman statik yang menggunakan pandoc dapat menukar dari Markdown yang tidak berbahaya dan beberapa LaTex ke HTML tulen.

Di sini a senarai laman web yang sudah menggunakannya sebagai laman web peribadi, dalam gaya blog.

Dan cukup pantas untuk menyelesaikannya. Dan walaupun dengan semua kelebihan ini, nampaknya hanya berkembang di negara-negara berbahasa Anglo-Saxon dan di sini hampir tidak ada maklumat yang tersedia, seperti -dan menyakitkan- persembahan jenis ini. Mungkin kerana panduan pengguna adalah dalam bahasa Inggeris.

Kekurangannya

Sudah tentu mesti ada. Selain penyebarannya yang agak pendek, kebanyakan penerbit tidak menyokongnya sepenuhnya.

Vim mempunyai penekanan sintaks perenggan Markdown dan sedikit lagi secara lalai, jadi kami terlepas beberapa perkara paling menarik mengenai pandoc: sintaksnya yang diperluas.

Perkara yang tidak pernah dibangkitkan dalam Markdown yang asal dan yang menjadikan hidup kita lebih mudah, seperti jadual, petikan, nota kaki, HTML dan LaTex dalam kod, metadata dan ciri yang lebih maju.

By the way, Emacs mempunyai kelebihan dalam hal ini. Ia mempunyai mod Markdown yang memberi kita sorotan sintaks dan beberapa perintah yang berguna, tetapi ada mod pandok penuh, yang setaraf Vimnya masih tidak dapat menandinginya.

Sekiranya anda masih berminat untuk memasukkannya ke dalam Vim, berikut adalah fail sintaks. Untuk emac anda harus memasang mod markdown dan pandoc, seperti yang telah disebutkan.

Langsung ke intinya

Saya menemui pandoc ketika mencari pakej text2tags (penukar lain tetapi lebih terhad) en crunchbang dan sekarang saya tahu bahawa ia boleh didapati di Debian stabil dengan nama, teka apa, pandoc. A pemasangan kemampuan cukup untuk ini. Tetapi yang kita gunakan ArchLinux kita mesti mengalami beberapa kemunduran terlebih dahulu.

Pergantungan neraka itu

Perkara pertama yang kita fikirkan adalah membuat pandoc pacman -S. Tidak, tidak. Tidak ada pakej di repositori rasmi dan satu dari AUR tidak berfungsi, kerana banyaknya pergantungan yang diperlukannya. Sekiranya anda sudah mengetahui sesuatu mengenai Haskell, anda sekarang akan berfikir bahawa cabal akan menyelesaikannya. Dan ya, tetapi dengan tempahan. Untuk melakukan ini, anda perlu menjalankan perkara berikut:

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

Ini mesti berfungsi tetapi saya tidak mengesyorkannya. Terutama jika anda ingin memasuki dunia Haskell, kerana ini akan membawa anda masalah mengerikan di masa depan.

Tentunya aneh untuk mendengar keluhan tentang ArchLinux dan falsafahnya, tetapi bagi saya omong kosong sepenuhnya telah membuang pakej platform haskell dari repositori, yang menyediakan persekitaran terakhir yang cukup berkembang dan serasi antara satu sama lain; mengapa pemasangan ghc dan cabal dikemas kini.

Sekiranya anda ingin memasang pakej lain menggunakan cabal, lebih baik memuat turun pakej tersebut kuno pemasangan ghc dan cabal dari Mesin Roll Roll Arch.

Kami memasangnya dengan pacman -U sederhana jalan-pakej dan kami membuat pacman mengabaikan mereka semasa mengemas kini sistem, dalam fail /etc/pacman.conf; bahagian dalam AbaikanPkg.

Sekarang kita dapat menggunakan cabal untuk memasang pandoc dan agar berfungsi sebagaimana mestinya, kita meletakkan baris ini dalam fail .bashrc kami:

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

Dan itu sahaja. Sesuatu yang tidak masuk akal, tetapi kita mengelakkan masalah. Sekiranya anda ingin memulakan dengan pakej lain, dan bukannya memasangnya secara tempatan, anda boleh menggunakannya hsenv untuk membuat persekitaran yang terpencil dan mengelakkan kepayahan pemasangan, misalnya, Hakyll.

Dan setelah saya memberi amaran kepada anda bahawa ia mengerikan. Semua ini kerana Haskell dan Cabal belum menyelesaikan masalah kebergantungan yang telah disingkirkan oleh bahasa lain, seperti Ruby dengan Bundle dan permata. Bagaimanapun, penyelesaian kecil ini adalah kerana ian ross kumpulan Hakyll.

Bersabarlah. Ini pemasangan lama, kerana menyusunnya untuk kita.

Penggunaan dan kesimpulan

Anda mengambil terminal dan menghantar pesanan seperti ini:

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

Di mana Markdown (* .md, adalah pelanjutan yang saya gunakan) dapat diganti dengan format lain dan .ext dengan yang lain yang terdapat dalam output.

Bagi saya, praktikal melakukan ini setiap hari banyak membantu saya, terutamanya untuk mengeksport ke OpenDocument.

Dan ekosistemnya sangat luar biasa. MacFarlane sendiri telah mengembangkan wiki di Haskell, yang digunakan Pandoc untuk menukar halamannya, tetapi itu untuk cerita lain. Ngomong-ngomong, entri ini ditulis dengan bangga dengan Pandoc, seperti kebanyakan yang saya tulis setakat ini,


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   gadi kata

    Saya juga menggunakan Markdown. Kate dan Gedit boleh memasang plugin untuk menonjolkan sintaks. Kemudian untuk mengubahnya menjadi ODT saya memilih MultiMarkdown, yang paling utama, bagaimana mengatakannya, "menghormati teks" sehingga ketika menyalinnya ke dokumen dengan gaya perenggan, ia lebih selesa. Pandoc tidak memberi saya hasil yang sama, atau sekurang-kurangnya saya tidak tahu bagaimana melakukannya 😛

    1.    anti kata

      Anda boleh membuat Pandoc hanya menggunakan Markdown standard, dengan mengaktifkan pilihan – ketat; jika itu yang anda maksudkan. Walau bagaimanapun, kelebihan utamanya adalah fleksibiliti antara format.
      Mengesyorkannya, dengan sedikit yang saya lihat bahawa mereka menggunakannya, itu tidak menyakitkan saya.

  2.   erunamoJAZZ kata

    Saya telah menggunakannya untuk pergi dari LaTeX ke reStructuredText. Dia melakukannya dengan sangat baik (kebanyakan masa xD)

  3.   MSX kata

    Menarik, terima kasih kerana berkongsi.