Skip to content

Instantly share code, notes, and snippets.

@aborruso
Last active October 7, 2019 17:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aborruso/d446de664b2dbef4a8c9aa6f315539b5 to your computer and use it in GitHub Desktop.
Save aborruso/d446de664b2dbef4a8c9aa6f315539b5 to your computer and use it in GitHub Desktop.
Da Markdown a LibreOffice Writer usando un template

Da Markdown a LibreOffice Writer usando un template

Opzione 1

Il tool da utilizzare è pandoc (che quindi nel caso è da installare). È a riga di comando, open source e disponibile per tutti i sistemi operativi.

Il comando è:

pandoc -o output.odt --reference-doc=myPandocTemplate.odt input.md

A partire da un file Markdown di input, e da un file odt che viene usato come modello per lo stile, viene generato un file di output (sempre odt) che tiene conto degli stili del modello (intestazioni, corpo testo, larghezza pagina, header, ecc.).

Il file template è un file odt a cui assegnare/modificare gli stili che si vogliono utilizzare: se ne crea uno nuovo, con F11 si apre il pannello degli stili, si modificano/aggiungono e si salva il file.

Nota bene 1: se si vuole che le immagini presenti del file Markdown si adattino alla larghezza della pagina del file odt, bisogna impostarla al 100% (ad esempio ![](./imgs/4116_1.png){ width=100% }).

Nota bene 2: è sempre bene avere installato una versione recente di pandoc.

Opzione 2

Nella modalità soprastante, è necessario "sporcare" un po' il file Markdown, aggiungendo il parametro sulla larghezza. Inoltre c'è da ricordarsi di farlo per ogni immagine.

pandoc consente la manipolazione dei documenti tramite il linguaggio Lua; una delle cose che consente di fare, è quella di applicare un filtro, che assegna a tutte le immagini di un documento sorgente un determinato valore di un attributo (come la larghezza).

Basta creare un file imgWidth.lua con all'interno

function Image(img)
  img.attributes.width="100%"
  return img
end

e lanciare il comando

pandoc -o output.odt --lua-filter=imgWidth.lua --reference-doc=myPandocTemplate.odt input.md

Verrà prodotto un file odt, con tutte le immagini che riempono in larghezza il 100% dello spazio disponibile (esclusi eventuali margini). L'altezza si modificherà in proporezione.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment