I denne artikkelen ser vi på konverteringen mellom Markdown [1] og Docx - det opprinnelige dokumentformatet til Microsoft Word som er i bruk siden 2007. Du lurer kanskje på hvorfor en entusiast av Markdown og Asciidoc (som meg) tar for seg denne saken. Vel, samarbeid med en gruppe andre forfattere kan føre til en situasjon, mens en eller flere deltakere ber om DOCX som utgangsformat. Ikke la noen ned, og finn ut hvilke begrensninger som eksisterer, i stedet, og hvordan vi kan prøve å gjøre alle gruppemedlemmer glade.
Hva er markdown?
Som allerede påpekt i "An Introduction in Markdown" [2], er intensjonen for markdown en enkel tekst til HTML -konvertering. Ideen bak var å lage skriving av websider, dokumentasjon og spesielt bloggoppføringer så enkelt som å skrive en e-post. Per i dag er det de facto-synonym for en klasse av lettmarkeringsbeskrivelsesspråk, og målet kan sees på som nådd.
Markdown bruker en syntaks for vanlig tekstformatering. Med en lignende tilnærming som HTML, indikerer en rekke markører overskrifter, lister, bilder og referanser i teksten din. De få linjene nedenfor illustrerer et grunnleggende dokument som inneholder to overskrifter (1. og 2. nivå) samt to avsnitt, og et listemiljø.
# Anbefalte steder å besøke i Europa
## Frankrike
Dette er et utvalg av steder:
* Paris (_ile de France_)
* Strasbourg (_alsace_)
For en skikkelig besøksplan omtrent en uke.
Konvertering til Docx
For å konvertere markedsdokumentet til DOCX, bruk verktøyet Pandoc [3]. Pandoc er et Haskell -bibliotek, og beskriver seg selv som "Universal Document Converter", eller "Swiss Army Knife for Document Conversions". Det er tilgjengelig for en rekke plattformer som Linux, Microsoft Windows, Mac OS X og BSD. Pandoc er ofte inkludert som en pakke for Linux -distribusjoner som Debian Gnu/Linux, Ubuntu og Centos.
En enkel samtale for en konvertering er som følger:
$ pandoc -o test.DOCX -test.MD
Den første parameteren '-o' refererer til utdatafilen, etterfulgt av navnet på filen ('Test.docx '). Filforlengelsen hjelper Pandoc med å identifisere ønsket utgangsformat. Den andre parameteren navngir inndatafilen - i vårt tilfelle er det ganske enkelt 'Test.MD '.
Den lange versjonen av kommandoen vist ovenfor inneholder de to parametrene '-f Markdown' og '-T Docx'. Den første forkorter begrepet 'smak', og beskriver formatet til inndatafilen. Den andre gjør det samme for utdatafilen, og forkortes '-to'.
Den fulle kommandoen er som følger:
$ pandoc -o test.DOCX -F Markdown -t Docx Test.MD
Åpne den konverterte filen ved hjelp av Microsoft Word resulterer i følgende utgang:
For de forskjellige tekstelementene bruker Pandoc stilark. Dette lar deg justere disse elementene senere i henhold til dine behov gjennom hele dokumentet. De nyere versjonene av Pandoc tilbyr også omvendt - du kan konvertere en Docx -fil til markdown som følger:
$ pandoc -o test.MD -test.Docx
Deretter har den genererte filen følgende innhold:
Anbefalte steder å besøke i EuropaNyttige kommandolinjealternativer
Listen over PANDOC -alternativer er ganske lang. Følgende hjelper deg med å gi bedre resultater, og gjøre livet ditt mye enklere:
* '-P' (lang versjon '-preserve-tabs'): bevare faner i stedet for å konvertere dem til mellomrom. Dette er nyttig for kodeblokker med innrykkede linjer som er en del av teksten din.
* '-S' (lang versjon '-Smart'): Produser typografisk korrekt utgang.
Dette alternativet korrigerer sitater, bindestrek/streker samt ellipser (“…”). Ytterligere, ikke-brytende rom blir lagt til etter visse forkortelser som “MR.”.
* '-Track-Changes = Value': Angir hva du skal gjøre med innsettinger, slettinger og kommentarer som er produsert ved hjelp av Microsoft Word “Sporendringer” -funksjonen. Verdien kan enten godta, avvise eller alt for å inkludere eller fjerne endringene som er gjort i dokumentet. Resultatet er en flat fil.
For flere alternativer se på dokumentasjonen, og den manuelle siden til Pandoc.
Sammendrag
Konverteringen mellom Markdown og Docx er ikke lenger et mysterium. Det gjøres innen noen få trinn, og fungerer veldig bra. Glad hacking 🙂
Lenker og referanser
* [1] Markdown
* [2] Frank Hofmann: Introduksjon til Markdown
* [3] Pandoc
Anerkjennelser
Forfatteren vil takke Annette Kalbow for hennes hjelp mens hun utarbeidet artikkelen.