Wiki2tex.awk: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
(kein Unterschied)
|
Version vom 30. August 2005, 21:12 Uhr
Ich habe zum Umwandeln der Dokumente in pdf ein kleines Skript zusammengehackt, das (sehr einfache) Wiki-Syntax in LaTeX umwandelt. Aufruf z.B. mit
awk -f wiki2awk.tex -v doc="Satzung" Satzung.wiki
Es erwartet noch zwei weitere Dateien im aktuellen Verzeichnis: 'header.tex' und 'footer.tex'. Der Inhalt der Variable 'doc' wird bei header.tex in die Überschrift eingesetzt. Es ist weit davon entfernt davon, perfekt zu sein, z.B. wusste ich nicht, wie man pdflatex dazu bringt, UTF-8 im Quelltext zu unterstützen. Vielleicht kann's ja jemand verbessern.
BEGIN { if (doc == "") { print "Art des Dokuments mit '-v doc=Name' angeben." exit } while (getline < "header.tex") { gsub("##DOC##", doc) print } enumerate=0 eenumerate=0 } /.*/ { gsub("ä","\"a") gsub("ü","\"u") gsub("ö","\"o") gsub("Ä","\"A") gsub("Ü","\"U") gsub("Ö","\"O") gsub("ß","\"s") gsub("§","\\textsection") gsub("€","EUR") } /===.*===/ { gsub("^===","") gsub("===space:*$","") gsub(".*","\\paragraph{&}") print print "\n" next } /==.*==/ { gsub("^==","") gsub("==space:*$","") gsub(".*","\\section*{&}") print print "\n" next } /^*\*space:+.*/ { if (eenumerate == 0) { print "\\begin{itemize}" eenumerate=1 } gsub("^*\*","") > 0 gsub(".*","\\item &") print next } /^*space:+.*/ { if (eenumerate == 1) { print "\\end{itemize}" eenumerate = 0 } if (enumerate == 0) { print "\\begin{itemize}" enumerate=1 } gsub("^*","") > 0 gsub(".*","\\item &") print next } /^space:*$/ { if (enumerate == 1) { print "\\end{itemize}" } if (eenumerate == 1) { print "\\end{itemize}" } print enumerate = 0 eenumerate = 0 next } // END { print "\n\n" while (getline < "footer.tex") { print } }