В тази статия ще разгледаме преобразуването между Markdown [1] и DOCX - основният формат на документа на Microsoft Word, който се използва от 2007 г. Може би се чудите защо ентусиаст на Markdown и Asciidoc (като мен) се занимава с този случай. Е, сътрудничеството с група други автори може да доведе до ситуация, докато един или повече участници искат DOCX като изходен формат. Не подвеждайте никого и вместо това разберете кои ограничения съществуват и как можем да се опитаме да направим всички членове на групата щастливи.
Какво е Markdown?
Както вече беше посочено в „Въведение в Markdown“ [2], намерението за Markdown е просто преобразуване на текст в HTML. Идеята зад нея беше да улесни писането на уеб страници, документация и най-вече записите в блога като писането на имейл. От днес това е де факто синоним за клас леки езици за описание на маркиране и целта може да се види като постигната.
Markdown използва синтаксис за форматиране на обикновен текст. С подобен подход като HTML редица маркери показват заглавия, списъци, изображения и препратки във вашия текст. Няколко реда по-долу илюстрират основен документ, който съдържа две заглавия (1-во и 2-ро ниво), както и два абзаца, и среда на списък.
## Франция
Това е селекция от места:
* Париж (_Ile de France_)
* Страсбург (_Alsace_)
За правилен план за посещение около седмица.
Преобразуване в DOCX
За да конвертирате документа си Markdown в DOCX, използвайте инструмента pandoc [3]. Pandoc е библиотека на Haskell и се описва като „универсален конвертор на документи“ или „швейцарски армейски нож за конвертиране на документи“. Предлага се за различни платформи като Linux, Microsoft Windows, Mac OS X и BSD. Pandoc обикновено се включва като пакет за дистрибуции на Linux като Debian GNU / Linux, Ubuntu и CentOS.
Просто извикване за преобразуване е както следва:
$ pandoc -o тест.docx тест.mdПървият параметър '-o' се отнася до изходния файл, последван от името на файла ('test.docx '). Разширението на файла помага на pandoc да идентифицира желания изходен формат. Вторият параметър назовава входния файл - в нашия случай това е просто 'test.md '.
Дългата версия на командата, показана по-горе, съдържа двата параметъра '-f markdown' и '-t docx'. Първият съкращава термина „аромат“ и описва формата на входния файл. Вторият прави същото за изходния файл и съкращава „-to“.
Пълната команда е както следва:
$ pandoc -o тест.docx -f markdown -t docx тест.mdОтварянето на преобразувания файл с помощта на Microsoft Word води до следния изход:
За различните текстови елементи Pandoc използва таблици със стилове. Това ви позволява да коригирате тези елементи по-късно според вашите нужди в целия документ. По-новите версии на Pandoc предлагат и обратното - можете да конвертирате DOCX файл в Markdown, както следва:
$ pandoc -o тест.md тест.docxСлед това генерираният файл има следното съдържание:
Препоръчителни места за посещение в Европа=======================================
Франция
------
Това е селекция от места:
- Париж (* Ил дьо Франс *)
- Страсбург (* Елзас *)
За правилен план за посещение около седмица.
Полезни опции за командния ред
Списъкът с опциите на Pandoc е доста дълъг. Следните ви помагат да постигнете по-добри резултати и много улесняват живота ви:
* '-P' (дълга версия '-preserve-tabs'): Запазете разделите, вместо да ги преобразувате в интервали. Това е полезно за кодови блокове с отстъпени редове, които са част от вашия текст.
* '-S' (дълга версия '-smart'): Извежда типографски правилен изход.
Тази опция коригира кавички, тирета / тирета, както и елипси (“...”). Допълнителни, неразбиващи се интервали се добавят след определени съкращения като „Mr.”.
* '-track-changes = value': Указва какво да се прави с вмъквания, изтривания и коментари, които се създават с помощта на функцията за проследяване на промените в Microsoft Word. Стойността може да бъде или приемете, отхвърлите или всички, за да включите или премахнете направените промени в документа. Резултатът е плосък файл.
За повече опции погледнете документацията и страницата с ръководството на Pandoc.
Обобщение
Преобразуването между Markdown и DOCX вече не е загадка. Извършва се в рамките на няколко стъпки и работи много добре. Честито хакване 🙂
Връзки и справки
* [1] Маркиране
* [2] Франк Хофман: Въведение в Markdown
* [3] Pandoc
Благодарности
Авторът би искал да благодари на Анет Калбоу за помощта при подготовката на статията.