Viikon VALO #218

Pandoc

Pandoc on komentorivityökalu tekstipohjaisten tiedostojen muuntamiseen muodosta toiseen.

 Pandoc on todellinen monitoimityökalu, kun on tarve muuntaa yhdellä merkintäkielellä kirjoitettua tekstimateriaalia toiseen merkintäkieleen. Pandoc osaa lukea monessa muodossa kirjoitettuja tiedostoja ja tallentaa luetun tekstin vielä useammalla muotoilukielellä. Pandocilla on helppoa vaikka automatisoida useiden tiedostojen muuntaminen muodosta toiseen. Toki tällaisia muunnoksia tehdessä Pandocin tuottamia tiedostoja voi joutua vielä muokkaamaan ja viimeistelemään käsin, mutta suurin osa rutiinityöstä hoituu Pandocilla.

Kieliä ja tiedostomuotoja, joita Pandoc osaa lukea, ovat muun muassa: HTML, Markdown, LaTeX, MediaWiki ja textile. Pandocin tuottamia kieliä ja tiedostomuotoja on jo mainittujen lisäksi muun muassa Microsoftin Word-ohjelman DOCX-tiedostomuoto, OpenOffice- ja LibreOffice-ohjelmistojen käyttämä ODT, sähkökirjojen tiedostomuoto EPUB sekä PDF-tiedostot. Pandoc osaa tuottaa myös muutamien HTML- ja LaTeX-pohjaisten esitystiedostojen mukaista tekstiä. Näitä ovat esimerkiksi Slidy, reveal.js, Slidous, S5 ja DZSlides sekä Beamer. Tarkempi luettelo tuetuista muodoista löytyy ohjelman kotisivuilta tai sen mukana tulevasta dokumentaatiosta.

Markdown-kielestä Pandoc osaa useampia variaatiota ja laajennuksia, mukaan lukien GitHubin laajennettu syntaksi. Näiden ansiosta Markdownilla kirjoitetut tekstit voivat sisältää muun muassa taulukoita, alaviitteitä, koodilohkoja, automaattisia sisällysluetteloita, upotettua LaTeX-tyylistä matematiikkaa sekä HTML-koodin sisään kirjoitettua Markdown-syntaksia. Markdown-tekstiä HTML-tiedostoksi käännettäessä on mahdollista valita käytettäväksi vaikka ohjelmakoodin syntaksin korostus väreillä.

Pandoc on toteutettu siten, että kukin ohjelmaan sisään luettu tiedosto käännetään ohjelman sisäiseen muotoon, josta puolestaan muodostetaan halutun kohdekielen mukainen tuloste. Näin ohjelmasta on saatu modulaarinen ja uuden tuetun kielen lisääminen on joustavaa. Ohjelma tukee myös esimerkiksi LaTeX-muotoisten matemaattisten kaavojen esittämistä HTML-muodossa useammallakin tavalla, mukaan lukien MathJax ja MathML.

Pandocin käytön aloittaminen on varsin helppoa. Yksinkertaisimmillaan Pandoc tunnistaa syötetiedostossa käytetyn muodon ja tallentaa -o -valitsimella määrätyn tulostiedoston päätteensä mukaisessa muodossa. Esimerkiksi:

pandoc -o testi.pdf testi.html

Syöte- ja tulostiedostojen muodon voi kuitenkin kertoa Pandocille käyttäen -f -valitsinta (from) ja -t -valitsinta (to). (Vaihtoehtoisesti -r (read) ja -w (write)).

pandoc -f markdown -t html -o index.html index.md

Pandocista löytyy lisäksi suuri määrä muita valitsimia, joilla sen toimintaa voi muokata haluamakseen. Esimerkiksi --template=TIEDOSTO -valitsimella voi valita haluamansa dokumenttipohjan luotavan tiedoston malliksi. Muita esimerkkejä valitsimista ovat sisällysluettelon generointi, rivinumeroiden ja syntaksikorostuksen lisääminen ohjelmakoodiin ja matematiikkapaketin valinta HTML-tulostukseen.

Kotisivu
http://johnmacfarlane.net/pandoc/
Lähdekoodi
https://github.com/jgm/pandoc
Lisenssi
GNU GPL
Toimii seuraavilla alustoilla
Linux, Windows, Mac OS X, FreeBSD, NetBSD, OpenBSD
Asennus
Ohjelma on ladattavissa sen kotisivuilta. Linux-järjestelmiin se on yleensä asennettavissa paketinhallinnan kautta.

Teksti: Pesasa
Kuvakaappaukset: Pesasa