docgenerator.rb: Dokumente nicht schreiben, sondern generieren lassenEnglish


[Kalender][Creole2doc]

Sie sind hier: RubyDocgenerator


Entstehung des Skriptes

Nachdem ich öfters das Problem hatte Dokumente aus Daten zu erzeugen habe ich einige Sachen ausprobiert. Template-basierte Textgenerierer sind häufig nur auf HTML/XML zentriert, ich benötige aber häufig LaTeX.

Skripte die TeX- oder HTML-Dateien erzeugen sind zwar schnell geschrieben, aber in der Regel sehr speziell. Ich suchte etwas, mit dem ich immer wiederkehrende Elemente einfach definieren konnte, ohne mich darum zu kümmern, welches Endformat ich wollte. Im Laufe der Zeit experimentierte ich mit einem Template-System für TeX-Dokumente. Aber irgendwann wurde die Templates so komplex, das mir eine Wartung äußerst schwer fiel.

Für die HTML-Erzeugung stieß ich schließlich auf tag.rb von moonwolf. Allerdings macht es keine Validierung auf erlaubte Tags. So erweiterte ich das Skript, eine Version habe ich im Ruby-Forum veröffentlicht.

Nachdem ich feststellte, das mein HTML-Generierer meine Produktivität in der HTML-Generierung stark verbesserte und sich gleichzeitig meine LaTeX-erzeugenden Skripte immer schlechter wurden, startete ich eine neue Version, die sowohl LaTeX als auch HTML erzeugen kann. Die Schnittstellen sind nicht optimal an HTML oder TeX angepasst, bilden aber einen Kompromiss mit dem ich gut leben konnte. Ich wollte nicht zwei ideale Tools, sondern ein Tool das seine Arbeit macht.

Features von docgenerator

docgenerator erlaubt es in Ruby Dokumente zu definieren, die als HTML oder LaTeX-Dateien gespeichert werden können.

Was docgenerator nicht kann

Auf docgenerator basierende Dokumente und Programme

Nachdem docgenerator lief, entwickelte ich weitere darauf basierende Programme.

Kalendererzeuger

In einem Urlaubs- und Müllkalender bot ich einen Jahresüberblick über Schulferien und Müllabfuhrtermine in Esslingen. Die Erzeugung des Kalenders wurd beschrieben. (Für potentielle Verwender: Inzwischen habe ich verbesserte (naja, zumindest andere) Eingabeformate realisiert).

Auf Stummfilm.info habe ich verschiedene Terminübersichten erzeugt, die Festivalkalender für Stummfilme basieren ebenfalls auf diesem Tool.

Präsentationgenerierer

Dazu gibt es auf dem Linuxtag 2005 eine Präsentation. Details siehe unter Vorträge erzeugen.

Warnung: Inzwischen habe ich die Eingabe erst auf eine Wiki-artige, später auf eine YAML-Schnittstelle geändert. Die Veröffentlichen des Codes steht noch aus.

Wiki2docgenerator

Inzwischen eines meiner am häufigsten genutzten Tools.

Ein Wikitext wird analysiert und in ein docgenerator-Element übersetzt. Anschließen kann es als HTML oder LaTeX-Dokument gespeichert werden.

Das ermöglicht es relativ schnell Texte zu schreiben, die dann in ein Zielformat gespeichert werden können. Durch eine flexible Erweitung des Wiki-Codes sind eigene Makros definierbar.

Die Wikisyntax ist der Syntax von Wikimedia (Wikipedia) angepasst.

Für zukunftige Versionen ist geplant Creole zu unterstützen. Eine englische Vorschau hat es bereits.

Download

Das Programm steht inzwischen als Gem bei Rubyforge zur Verfügung:

Versionen:

Das Programm wird laufend von mir überarbeitet. Hauptänderungen der letzten Zeit: