neusprech - presto II
Das gute alte Presto hatte irgendwann ausgedient. War die Quelle entgegen der ursprünglichen Vermutung wesentlich über den Verdacht smelly Code erhaben, musste doch was neues her.
Da sich die Materie einer php-Lösung entzog, habe ichs mal mit AJAX versucht. Das macht die serverseitige Programmierung überschaubarer und es brauchte eh viel Javascript, insofern …
Features
- Contentpflege in markdown files wie gehabt
- brät entschieden schneller durch AJAX interface, macht den Kessel-Lauf in 1.4 parsecs!
- gutes feedback bei Datei-Interaktionen durch noticias
- Datei-Interface mit AJAXigkeit
- betreutes Schreiben durch eingebauten markdown-Preview
- separate Meta-Daten-Pflege, selbverständlich mit Vererbung
- pures JS, keine externen Abhängigkeiten: Kein jQuery, kein underscore.js, kein handlebar.js oder ähnlicher Schmutz an Bord: trotzdem templating ;)
hat einen schlimmen Hänger, der hoffentlich bald gefixt istFIXED: value, ooohhh!- das Fehlerhandling ist zurück
- Zusammenarbeit mit zodiac ist optional
- voll Mandanten-fähig
- überlegene Sicherheit durch
air gappingder Quelldateien (Anti-Cyber)
Zusammenarbeit:
Neusprech wurde erst richtig schön unter Zuhilfenahme folgender Projekte:
Javascript
- noticias.js benachrichtigt Systemmeldungen, zB save page feuert eine noticia
- classor.js klassiert (Verteilung/-erbung von HTML-Klassen)
- markdown.js ist verantwortlich für die livene Vorschau
- save.js speichert schon brauserseitig serverseitig
- dialog.js (mit Polyfill!) sorgt für die User-Befragung durch aufgerufene Dialoge
- kruemel.js kuemmert sich um die Kekse, die hier anfallen
PHP
- Pfad.php sorgt für die serverseitigen Dateisystem-Primitiven
- APfad.php abstrahiert für AJAX-Transfer, Annahme von FS-Anfragen, Beschubsen von zodiac
- Ini.php für die dynamische Konfiguration
und sonst
- unter 2.4 kSloc eigener Code
- möglichst wenig Insellösungen
- möglichst generischer Code
- 25kbytes alles zusammen, davon 20684 bytes JS (alles minifiziert + gzipped) (Je kleiner der Scheiß ist, desto schneller übertragen wir es an die User)