So, nach einem Programmiermarathon heute abend ist die Kommentarfunktion jetzt so, dass ich sie fertig nennen kann. Momentan auf dem www.japannerd.de Blog nebenan aktiv, werde ich sie demnächst auch hier einbauen. Ich hatte erst an eine lineare Folge von Kommentaren gedacht, aber selber wollte ich die Möglichkeit zum gezielten Antworten haben. Damit war die Verschachtelung ohnehin gegeben, also habe ich doch beschlossen, sie auch den Besuchern anzubieten.

Das Blog selbst hatte ich ja mit Jekyll aufgesetzt, es sind also statisch generierte HTML-Seiten. Javascript will ich vermeiden – ich surfe selber mit NoScript im Firefox und will das auch meinen Lesern nicht madig machen. Als Clientseitige Einbindung des Kommentarabschnittes wäre damit nur ein IFRAME geblieben, und der ist ja eher ein Anachronismus und vom Layout her ein ziemlicher Alptraum. Ich habe es daher so gebaut, dass die Freigabefunktion für die Kommentare ein Includefile ablegt, das dann beim Generieren mit Jekyll eingefügt wird.

Für den dynamischen Teil und auch meine Admin-Funktionen habe ich mich wegen vorheriger Erfahrung für PHP mit CodeIgniter entschieden. Sicher nicht die typische Kombi zu diesem Ruby-Konstrukt, aber dass Jekyll Ruby ist, merkt man in der Benutzung eigentlich nicht, da spielen eher kramdown und Liquid eine Rolle.

Im Gegensatz zu einem bestehenden Hobbyprojekt habe ich bei diesem Neuprojekt natürlich auf die aktuelle CodeIgniter-Version 3 aufgesetzt und auch einige Features näher kennengelernt, die mir ziemlich viel Handarbeit im HTML ersparen. Man kann CodeIgniter sehr einfach so aufsetzen, dass das index.php das einzige für den Webserver exponierte File ist, das ist der robusteste Schutz gegen Hacker, die ansonsten im restlichen application-Baum herumstochern könnten. Ich habe es einfach über ein alias.url in lighttpd als /ci in den Webbaum gemappt und dabei auch gleich das index.php verschattet.

Momentan ist der Übergang vom Blog zur Kommentarfunktion (wie auch der anderen Funktionalität für Benutzer, nämlich dem ebenfalls hausgemachten Mailinglisten-Subscribe) noch ein Stilbruch, CodeIgniter kam mit einem minimalen CSS im default-view, das ich zunächst nutze, eine Vereinheitlichgung mit dem CSS des Blogs ist geplant.