Projektbeschreibung
Github-Link: www.github.com/schlingel/oobe
oobe ist eine kleine Skriptsammlung mit der man lokal auf der Maschine reine HTML-Files für einen Blog generieren kann. Die Idee kam aus der Überlegung, das der Aufwand immer und immer wieder für jeden Aufruf das HTML per PHP (Wordpress) auf dem Server zu erzeugen absolut nicht zu der Häufigkeit steht in der ich Änderungen an meinen Artikeln vornehme.
Neben diesem Hauptgrund gab es aber noch eine Liste weiterer Gründe die mich motivierten:
[ul]
[li]Beiträge per Git verwalten.
[/li][li]Automatisch eine PDF-Version und eine Web-Version für den Artikel erzeugen.
[/li][li]Artikel und Design sollten vollkommen unabhängig sein.
[/li][li]Performance-Vorteile durch das Verwenden von blankem HTML.
[/li][/ul]
Da im Hintergrund LaTeX verwendet wird, und ich die Style-Beschreibung von tex4ht furchtbar finde, habe ich eine sehr einfache Template-Sprache entworfen. So sieht im Moment das Basis-Template für eine Website aus:
<!DOCTYPE HTML>
<html>
<header>
<title>%TITLE% - %DATE%</title>
</header>
<body>
%CONTENT%
</body>
</html>
Zusätzlich kann man mit %AUTHOR% den Autoren der im Tex-File festgelegt wird in die Seite einfügen.
Technisch handelt es sich hier um ein Ant-Skript das mit Shell-Skripten und selbst geschriebenen Ant-Tasks ergänzt wurde. Daher benötigt oobe Ant und Java 7. Im Moment ist sie nur auf Windows lauffähig da das Shell-Skript nur als Batch-Skript verfügbar ist. (Da ich aber auch Linux verwende wird sich das noch ändern.)
Neben dem Erzeugen von PDFs und per Template festlegbarer Websites wird auch eine ordentlichere File-Struktur von meiner Anwendung angegeben. Dazu wird das vom htlatex erzeugte HTML geparsed und Bilder werden umgebogen. Die generierte File-Struktur sieht so aus:
dist
|
+-css
+-img
+-pdf
Unter dist liegen dann die einzelnen HTML-Files.
Features
[ul]
[li]Generierung von frei gestaltbaren Websites aus Tex-Files.
[/li][li]PDF-Generierung
[/li][li]Upload zu Webspace per FTP
[/li][li]Frei konfigurierbar über Properties-File
[/li][/ul]
TODO-List
[ul]
[li]Per JS Kommentarfunktion nachrüsten. (Disquus, oder ähnliches wäre schon fertig.)
[/li][li]Handhabung beim Generieren von einzelnen Beiträgen erleichtern.
[/li][li]Aus den generierten Meta-Daten einen Blog-Role erstellen.
[/li][li]Tags-Funktion implementieren. (Einzelne Beiträge können getagged werden und auf einer Übersichtsseite kann dann anhand der Tags gesucht werden. Reines JS)
[/li][li]Indexseitengenerator programmieren der z.B. die letzten 10 Beiträge hernimmt und daraus eine nette Übersicht programmiert.
[/li][li] Bugfixes…
[/li][/ul]
Github-Projektstruktur
Das Projekt auf Github ist verschachtelt. Im Ordner engine findet man das oobe-Build-File. Alles darüber gehört zu dem in Java geschriebenen Ant-Task der in oobe verwendet wird. Bevor oobe lauffähig ist muss zum einen das config.properties-File angepasst werden und zum anderen das oobe.ant.jar gebaut werden. Dazu ruft man im oobe-Ordner ant prepare-oobe
auf.
Der Installationsprozess auf einem System mit Java 7 und Ant sieht so aus:
git clone https://github.com/schlingel/oobe.git
cd oobe
ant prepare-oobe
Um dann einen Artikel anzulegen und auf den Server zu laden geht man so vor:
cd engine
vim|emacs|nano|whatever config.properties
ant create-article -Darticle.name=mein.artikel
vim|emacs|nano|whatever dein/articles/dir/mein.artikel.tex
ant publish