W tym artykule przyjrzymy się konwersji między Markdown [1] a DOCX - natywnym formatem dokumentu Microsoft Word, który jest używany od 2007 roku. Możecie się zastanawiać, dlaczego entuzjasta Markdown i Asciidoc (tak jak ja) zajmuje się tą sprawą. Cóż, współpraca z grupą innych autorów może prowadzić do sytuacji, podczas gdy jeden lub więcej uczestników żąda DOCX jako formatu wyjściowego. Nie zawiedź nikogo i dowiedz się, jakie istnieją ograniczenia i jak możemy spróbować uszczęśliwić wszystkich członków grupy.
Co to jest przecena?
Jak już wskazano w „Wprowadzeniu do Markdown” [2], intencją Markdown jest prosta konwersja tekstu do HTML. Ideą przyświecającą temu było sprawienie, aby pisanie stron internetowych, dokumentacji, a zwłaszcza wpisów na blogu, było tak proste, jak pisanie e-maila. Na dzień dzisiejszy jest de facto synonimem klasy lekkich języków opisu znaczników, a cel można uznać za osiągnięty.
Markdown używa składni formatowania zwykłego tekstu. Przy podobnym podejściu do HTML wiele znaczników wskazuje nagłówki, listy, obrazy i odnośniki w tekście. Kilka linijek poniżej ilustruje podstawowy dokument, który zawiera dwa nagłówki (poziom 1. i 2.), a także dwa akapity i środowisko listy.
## Francja
Oto wybór miejsc:
* Paryż (_Ile de France_)
* Strasburg (_Alzacja_)
Dla prawidłowego planu wizyty około tygodnia.
Konwersja do DOCX
Aby przekonwertować dokument Markdown do DOCX, użyj narzędzia pandoc [3]. Pandoc jest biblioteką Haskella i określa się jako „uniwersalny konwerter dokumentów” lub „szwajcarski scyzoryk do konwersji dokumentów”. Jest dostępny dla różnych platform, takich jak Linux, Microsoft Windows, Mac OS X i BSD. Pandoc jest powszechnie dołączany jako pakiet dla dystrybucji Linuksa, takich jak Debian GNU/Linux, Ubuntu i CentOS.
Proste wezwanie do konwersji wygląda następująco:
$ pandoc -o test.test docx.mdPierwszy parametr '-o' odnosi się do pliku wyjściowego, po którym następuje nazwa pliku ('test.docx'). Rozszerzenie pliku pomaga pandoc w identyfikacji pożądanego formatu wyjściowego. Drugi parametr nazywa plik wejściowy - w naszym przypadku jest to po prostu „test”.lekarz.
Długa wersja polecenia pokazana powyżej zawiera dwa parametry '-f markdown' i '-t docx'. Pierwsza z nich jest skrótem terminu „smak” i opisuje format pliku wejściowego. Drugi robi to samo dla pliku wyjściowego i skraca "-to".
Pełne polecenie wygląda następująco:
$ pandoc -o test.docx -f przecena -t test docx.mdOtwarcie przekonwertowanego pliku za pomocą programu Microsoft Word daje następujący wynik:
Dla różnych elementów tekstowych Pandoc używa arkuszy stylów. Pozwala to później dostosować te elementy zgodnie z własnymi potrzebami w całym dokumencie. Nowsze wersje Pandoc oferują również odwrotnie – możesz przekonwertować plik DOCX na Markdown w następujący sposób:
$ pandoc -o test.test md.docxNastępnie wygenerowany plik ma następującą zawartość:
Polecane miejsca do odwiedzenia w Europie=============================================
Francja
------
Oto wybór miejsc:
- Paryż (*Ile de France*)
- Strasburg (*Alzacja*)
Dla prawidłowego planu wizyty około tygodnia.
Przydatne opcje wiersza poleceń
Lista opcji Pandoc jest dość długa. Poniższe pomogą Ci osiągnąć lepsze wyniki i znacznie ułatwią Ci życie:
* '-P' (długa wersja '-preserve-tabs'): Zachowaj tabulatory zamiast konwertować je na spacje. Jest to przydatne w przypadku bloków kodu z wciętymi liniami, które są częścią tekstu.
* '-S' (długa wersja '-smart'): twórz poprawne typograficznie dane wyjściowe.
Ta opcja koryguje cudzysłowy, łączniki/myślniki oraz wielokropki („…”). Dodatkowe, nierozdzielające spacje są dodawane po niektórych skrótach, takich jak „Mr.”.
* '-track-changes=value': określa, co robić z wstawieniami, usunięciami i komentarzami tworzonymi za pomocą funkcji „Śledź zmiany” programu Microsoft Word. Wartością może być akceptacja, odrzucenie lub wszystkie, aby uwzględnić lub usunąć zmiany wprowadzone w dokumencie. Wynikiem jest plik płaski.
Aby uzyskać więcej opcji, zapoznaj się z dokumentacją i stroną podręcznika Pandoc.
streszczenie
Konwersja między Markdown a DOCX nie jest już tajemnicą. Odbywa się to w kilku krokach i działa bardzo dobrze. Miłego hakowania 🙂
Linki i referencje
* [1] Przecena
* [2] Frank Hofmann: Wprowadzenie do przecen
* [3] Pandoc
Podziękowanie
Autorka dziękuje Annette Kalbow za pomoc w przygotowaniu artykułu.