Im Laufe der Zeit wurden Teile des Wikis umgeschrieben oder erweitert. Hier führe ich ab und zu die Änderungen auf oder sammle Artikel, die ich über das Wiki geschrieben habe (zum Beispiel aufgrund von Fragen anderer Nutzer).
08.04.2010 | Upload-Formular als Plugin-Page |
01.04.2010 | Plugin-Pages |
20.01.2010 | Vereinheitlichung der Bilder-Flags / Neues Link-Format in Cache-Files |
19.01.2010 | Implementation Links |
xx.01.2010 | Link-Parameter, Suchmaschinen-Indizierung, Media-Download |
xx.07.2009 | Referenzen |
xx.06.2009 | Erweiterte Suche |
26.05.2007 | Vorlagen |
26.05.2007 | Seiten-Cache |
26.05.2007 | Suchindex |
01.05.2007 | Passwortschutz für Medien-Dateien |
23.11.2006 | Seite verschieben |
11.09.2006 | Update Index |
11.09.2006 | Seiten-Cache löschen |
23.07.2006 | Seiten umbenennen |
23.07.2006 | Löschen und Wiederherstellen |
04.04.2006 | Versionsverwaltung |
Das Wiki wurde geschwindigkeits-optimiert in vielerlei Hinsicht.
Im Wiki wurden diverse Funktionen in eigene Klassen ausgelagert:
Modul | Klassen | Objekte | Files | Bemerkungen |
---|---|---|---|---|
Html | CHtml, CHtmlIO | Html, HtmlIO | html.inc, htmlio.inc | |
Seq | CParser, CSerializer | vbslib.inc | siehe seq.inc | |
Diff | CDiff | Diff | diff.inc | aus cvs.inc extrahiert |
Pattern | CReplacer | vbslib.inc | plus diverse Pattern-Funktionen (siehe auch pattern.inc) | |
FS | CFileSystem, CFileSystemDirectories | FS, FSDir | vbslib.inc | siehe auch fs.inc und fsdir.inc |
Code | CCoder | Coder | code.inc | |
Wiki | CUploadForm, CLocalUpload | wikiengine.inc | Emulation von ASP-Upload mit CLocalUpload |
Sämtliche HTML-Ausgabefunktionen wurden in eine Klasse CHtml ausgelagert. Das Wiki verwendet kein Response.Write mehr für die Ausgabe, sondern verwendet nur noch entsprechende Funktionen des HTML-Moduls. Dadurch kann per Switch Html.Xhtml = true/false zwischen HTML und XHTML Code umgeschaltet werden. Auch die HTML-Versionen und viele weitere Header-Einstellungen lassen sich so sehr einfach vornehmen, ohne dass der Wiki-Code davon tangiert wird. Das HTML-Modul garantiert für XSS-Sicher Eingabefelder und ermöglicht das Erzeugen von Validem HTML/XHTML-Code.
Alle HTML-Eingabefelder werden über das Objekt HtmlIO abgewickelt.
Das Wiki macht intensiven Gebrauch von Regulären Ausdrücken. Dazu gibt es VBScript das Objekt RegExp. Je nachdem, wie man diese Objekte handhabt (Wiederverwendung vs. neues Objekt pro Ausdruck) kann bis zu einem Faktor 20 Rechenzeit gespart/verschleudert werden. Das ganze Wiki wurde nach diesen Erkenntnissen umprogrammiert und optimiert, dass wo immer möglich RegExp-Objekte wiederverwendet wurden. Die Pattern-Funktionen wurden in ein eigenes Modul pattern.inc ausgelagert.
alte Funktion | neue Funktion |
---|---|
removeHtmlString | EncHtmlTags |
UrlEncode | EncodeUrl |
htmlString | EncodeHtml |
jsString | MaskJsStr |
IdEncode | EncodeHtmlId |
FilenameEncode | EncodeFilename |
TrimRef | TrimSpaces |
MaskSpecialLinkChars | MaskSpecChars |
EncodeHtmlX | EncHtmlKeepSpaces |