V tomto článku sa pozrieme na konverziu medzi Markdown [1] a DOCX - natívnym formátom dokumentu pre Microsoft Word, ktorý sa používa od roku 2007. Možno by vás zaujímalo, prečo sa nadšenec Markdownu a Asciidocu (ako ja) zaoberá týmto prípadom. Spolupráca so skupinou ďalších autorov môže viesť k situácii, zatiaľ čo jeden alebo viacerí účastníci požadujú DOCX ako výstupný formát. Nikoho nesklamte a zistite, aké obmedzenia existujú, a ako sa môžeme pokúsiť urobiť šťastnými všetkých členov skupiny.
Čo je to Markdown?
Ako už bolo zdôraznené v časti „Úvod do Markdown“ [2], zámerom Markdown je jednoduchá konverzia textu na HTML. Myšlienkou bolo, aby písanie webových stránok, dokumentácie a hlavne blogových záznamov bolo také ľahké ako písanie e-mailov. Od dnešného dňa je de facto synonymom pre triedu ľahkých jazykov popisu značiek a cieľ je možné považovať za dosiahnutý.
Markdown používa syntax formátovania obyčajného textu. Pri podobnom prístupe ako HTML množstvo značiek označuje nadpisy, zoznamy, obrázky a odkazy vo vašom texte. Niekoľko riadkov nižšie ilustruje základný dokument, ktorý obsahuje dva nadpisy (1. a 2. úroveň), ako aj dva odseky a prostredie zoznamu.
## Francúzsko
Toto je výber miest:
* Paríž (_Ile de France_)
* Štrasburg (_Alsace_)
Plán správnej návštevy je asi týždeň.
Konverzia na DOCX
Ak chcete svoj dokument Markdown previesť na DOCX, použite nástroj pandoc [3]. Pandoc je knižnica Haskell a označuje sa za „univerzálneho prevádzača dokumentov“ alebo „švajčiarsky armádny nôž na konverzie dokumentov“. Je k dispozícii pre rôzne platformy, ako sú Linux, Microsoft Windows, Mac OS X a BSD. Pandoc je bežne dodávaný ako balík pre distribúcie Linuxu ako Debian GNU / Linux, Ubuntu a CentOS.
Jednoduchá výzva na konverziu je nasledovná:
$ pandoc -o test.test docx.mdPrvý parameter '-o' sa vzťahuje na výstupný súbor, za ktorým nasleduje názov súboru ('test.docx '). Prípona súboru pomáha programu pandoc identifikovať požadovaný výstupný formát. Druhý parameter pomenuje vstupný súbor - v našom prípade je to jednoducho 'test.md '.
Dlhá verzia vyššie zobrazeného príkazu obsahuje dva parametre „-f markdown“ a „-t docx“. Prvý z nich skracuje termín „príchuť“ a popisuje formát vstupného súboru. Druhá robí to isté pre výstupný súbor a má skratku „-to“.
Celý príkaz je nasledovný:
$ pandoc -o test.docx -f markdown -t docx test.mdOtvorenie prevedeného súboru pomocou aplikácie Microsoft Word má za následok nasledujúci výstup:
Pre rôzne textové prvky používa Pandoc šablóny štýlov. To vám umožní neskôr upraviť tieto prvky podľa vašich potrieb v celom dokumente. Novšie verzie Pandocu ponúkajú aj opačnú cestu - súbor DOCX môžete previesť na Markdown nasledovne:
$ pandoc -o test.md test.docxPotom má vygenerovaný súbor nasledujúci obsah:
Odporúčané miesta na návštevu v Európe======================================
Francúzsko
------
Toto je výber miest:
- Paríž (* Ile de France *)
- Štrasburg (* Alsasko *)
Plán správnej návštevy je asi týždeň.
Užitočné možnosti príkazového riadku
Zoznam možností Pandoc je pomerne dlhý. Nasledujúce vám pomôžu dosiahnuť lepšie výsledky a uľahčia vám život:
* '-P' (dlhá verzia '-preserve-tabs'): Zachovať karty namiesto ich prevodu na medzery. To je užitočné pre bloky kódu s odsadenými riadkami, ktoré sú súčasťou vášho textu.
* '-S' (dlhá verzia '-smart'): Produkuje typograficky správny výstup.
Táto možnosť opravuje úvodzovky, pomlčky / pomlčky, ako aj elipsy („…“). Ďalšie nerozlomiteľné medzery sa pridávajú za určité skratky ako napríklad „Mr.“.
* '-track-changes = value': Určuje, čo robiť s vloženiami, odstráneniami a komentármi, ktoré sa vytvárajú pomocou funkcie „Sledovať zmeny“ programu Microsoft Word. Hodnota môže byť buď prijať, odmietnuť, alebo všetko, aby bolo možné zahrnúť alebo odstrániť zmeny vykonané v dokumente. Výsledkom je plochý súbor.
Ďalšie možnosti nájdete v dokumentácii a na manuálnej stránke programu Pandoc.
Zhrnutie
Konverzia medzi Markdown a DOCX už nie je záhadou. Robí sa to v priebehu niekoľkých krokov a funguje to veľmi dobre. Šťastné hackovanie 🙂
Odkazy a referencie
* [1] Zníženie ceny
* [2] Frank Hofmann: Introduction to Markdown
* [3] Pandoc
Poďakovanie
Autor by chcel poďakovať Annette Kalbowovej za pomoc pri príprave článku.