headerimage

SneManden.com

Markdown og LaTeX med ST2-build

04. February 2013

Jeg har gået og døjet med hvordan man bedst laver noter til undervisningsforberedelse. Jeg har prøvet lidt af hvert, men havde ikke rigtig fundet mig til rette. Ville gerne have en måde at lave små lokale filer, som kunne vises smukt og bl.a. kunne indeholde matematiske formler. Og jeg har fundet den perfekte kombination!

LaTeX ligger naturligvis lige på tungen, når man tænker på matematiske formler. Men jeg følte ikke, at jeg ville skrive LaTeX kode håndtere PDF-filer blot til små noter. Så jeg søgte noget, som kunne kombineres med et rigtig fedt projekt: Markdown. Det er et lille sprog, som kan compileres til HTML.

Men hvordan kombineres dette med LaTeX? Jeg fandt et fedt javascript library: MathJax, som netop læser LaTeX kode. Så derfor var alt jeg behøvede blot et script, som kunne samle alle delene.

Python-scriptet kan du finde her: markdown.py. Det compiler markdown filen til HTML med markdown, som til Linux fås ved:

apt-get install markdown

Dernæst loader det en HTML-skabelonsfil, og indsætter den markdown-cimpilerede kode deri. Og vupti, så har man en lækker .htm fil!

Sådan ser min skabelons-fil ud: template.htm og det tilhørende stylesheet: style.css. Stylesheetet er med indspiration fra Markdown Preview.

Og så har jeg lavet et lille build system script, Så der er lækker build i Sublime Text 2:

{
    "cmd": ["python", "path/to/markdown/markdown.py", "$file"],
    "selector": "text.html.markdown"
}

Her skal path/to/markdown/ naturligvis erstattets med den absolutte sti til mappen indeholdende markdown.py, template.htm og style.css.

Så med dette setup er det bare at fyre op med markdown filer (.md) og så kører det! Eksempel: test.txt og resultatet kan ses her: test.htm. Normalt bruger jeg .md filer, men da dette på webserveren rent faktisk compileres til HTML, må her anvendes .txt for man kan se kildekoden!