WaBis

walter.bislins.ch

Wiki-Log

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).

Neu seit September 2009

Optimierungen

Das Wiki wurde geschwindigkeits-optimiert in vielerlei Hinsicht.

  • Optimierungen beim Kompilieren von Wiki-Text (Header, Listen, Tabellen), weniger Schleifen, Elemente werden nur kompiliert, falls wirklich im Text vorhanden.
  • Viele Funktionen wurden in Klassen ausgelagert.
  • Wo immer möglich wurden die neuen Klassen CStream und CDynArray verwendet, um dynamische Arrays und Strings aufzubauen.
  • RegExp-Objekte werden global bzw. Objektweise behalten und wiederverwendet.
  • CSS- und Javascipt-Files werden zusammengefasst in möglichst wenige Dateien
  • Javascript werden komprimiert
  • File-IO wurde in Modul FS ausgelagert und ist optimiert für sehr viele IO's per internem Caching.
  • Links und Header werden mit der Funktion PlainText() von unnötigem Ballast befreit und normalisiert.
  • Unnötige interne Umwandlungen in verschiedene Formate wegoptimiert
  • Liste von verwaisten Links und verwaisten Seiten wird über den Wiki-Index erstellt, was sehr viel schneller geht, als sämtliche Seiten zu scannen.

Neue Funktionen

  • Formular-Makros zum erstellen von Seiten mit Formularen (Textfelder, Radio-/Checkboxen, Optionslisten usw.)
  • Im Edit-Mode neue Funktion "Fix" = Speichern und weiter editieren Ctrl-S. Praktisch um in einem anderen Fenster die Seite als Vorschau zu betrachten.
  • Die Seiten-Version wird beim Editieren angezeigt. Wenn eine alte Version editiert oder angezeigt wird, wird die Version auch im Titel angezeigt und kann mit CSS farblich hervorgehoben werden (CSS normal = "op", CSS highlight = "opr")
  • Button "Löschen incl. Media" entfernt. Medien werden immer mit der entsprechenden Info-Seite gelöscht.
  • Neuer Button "W" im Wiki-Toolbar zum Aufrufen der erweiterten Wiki-Funktionen.
  • Die letzten besuchten Seiten können im Hauptmenu angezeigt werden, falls kein Menu definiert ist.
  • Die ptr-Makros wurden so erweitert, dass sie auch mit beliebigen HTML-Elementen verwendet werden können, nicht nur mit Bildern.
  • Erweiterte Wiki-Funktionen können als normale Seiten (mit WScript) im Wiki "Wiki" angelegt werden. Diese Seiten können von jedem Wiki aus lokal ausgeführt werden, indem "@wiki" ins Suchfeld eingegeben wird.
  • Seiten können mit #PASSWORD mit einem Passwort versehen werden, sodass nur User die Seite einsehen können, die das Passwort kennen oder die im Wiki eingelogt sind.
  • Erweiterte Suche wird neu bei einigen Wiki-Funktionen angeboten
  • Clone-Seiten können beliebig benannt und umbenannt werden, müssen nicht denselben Namen wie das Original haben.
  • Upload funktioniert nun auch lokal ohne ASP-Upload Komponente.
  • (Media-Links können über mehrere Zeilen erstreckt werden) nicht getestet!
  • Fehler in Makros werden angezeigt
  • Plugin-Mechanismus für Makros implementiert: function AppliMacro_XXX(args)
  • Fehlerhandling in Makros verbessert
  • Makros können VBScript Variablen, Subroutinen und Funktionen aufrufen
  • Neu: Referenzen
  • Trick: mit 
 kann ein Zeilenumbruch im Bild-Text (Tooltip) eingefügt werden (funktioniert nicht auf allen Browsern)
  • Suchwörter werden verschiedenfarbig eingefärbt
  • WIKI_DEBUG: erleichtert die Fehlersuche im Wiki und in JavaScripts

Kosmetik

  • Navigations-Felder verbessert für die Wiki-Funktion Diff
  • In Seitennamen und Links können nun auch Spezialzeichen (z.B. griechische Buchstaben) verwendet werden.
  • Einrückungen werden bei der Diff-Darstellung beibehalten
  • Clone-Seiten werden nicht mehr automatisch gelöscht, sondern behalten die letzte Version.
  • Tooltip bei Bildern neu für alle Browser.
  • Tooltip von Links und Bildern verbessert.
  • Im Edit-Mode wird die aktuelle Seite auch in der Liste der zuletzt besuchten Seiten aufgeführt, damit der Seitenname per Klick in die Seite aufgenommen werden kann, falls benötigt.
  • Meta-Robots = INDEX, FOLLOW → Verbesserung des Google-Pagerank

Fehlerkorrekturen

  • Abfangen von Makro-Rekursionen funktioniert jetzt (keine Hänger mehr)
  • Mehrere gleichnamige Header führen nicht mehr zu HTML-Fehler, jeder Header bekommt einen eindeutigen Anker.
  • CutString() berücksichtigt Sonderzeichen nur noch als je 1 Zeichen, HTML-Zeichennamen werden nicht mehr durchtrennt.
  • Beim Verschieben von Seiten in ein anderes Wiki werden die Rechte im Zielwiki überprüft und das Verschieben verhindert, wenn der User nicht die nötigen Rechte hat.
  • Korrekte Verarbeitung von verschachtelten Fett/Kursiv Anweisungen im Wiki-Text

Valides HTML

  • Bis auf Media-Player, für welche es noch keine verbreitet funktionierende Standards gibt, generiert das Wiki nun validen HTML-Code und kann neu auch per Schalter Html.XHtml auf XHTML umgestellt werden (falls nötig).

Neue Module

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

Html-Modul

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.

Pattern Funktionen

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.

Funktionen ersetzt

alte Funktion neue Funktion
removeHtmlString EncHtmlTags
UrlEncode EncodeUrl
htmlString EncodeHtml
jsString MaskJsStr
IdEncode EncodeHtmlId
FilenameEncode EncodeFilename
TrimRef TrimSpaces
MaskSpecialLinkChars MaskSpecChars
EncodeHtmlX EncHtmlKeepSpaces

Makros

  • Neu: Makro: Wiki, Makro: WikiUrl
  • Makro ptr erweitert für beliebige HTML-Elemente
  • Makro style durch <style>-Tag ersetzt, Styles werden gesammelt im HTML-Head platziert

Neu seit Juli 2007

  • (Juli 2008) Direkt-Makros eingebaut (z.B. für Signaturen, Datum usw. → {{$date}})
  • (April 2008) Wiki-Editor neu programmiert mit vielen praktischen Funktionen und neuer Editor-Toolbar
  • (April 2008) Tabellen im verbreiteten Text-Exportformat können vom Wiki im Editor direkt in Wiki-Tabellen konvertiert werden
  • (April 2008) Javascript können neu mit <jscript> eingebunden werden
  • (April 2008) interne Umstrukturierung für saubere Verarbeitung von Wiki-Scripts und maskierten Zeichen (siehe Beispiel Probierseite)
  • (April 2008) Wiki-Tags dürfen verschachtelt sein (Beispiel <html>, <comment> usw.)
  • (April 2008) Upload von Bildern: Bilder können resized werden; Vorschaubild kann automatisch generiert werden
  • (April 2008) Mehrstufiges Clipboard: Mit dem neuen Wiki-Befehl #CLIPBOARD können beliebige Texte beim Besuch einer Seite ins interne Clipboard des Wikis kopiert werden. Diese Texte werden im Edit-Mode aufgelistet und können per Klick eingefügt werden. Dies wird beim Upload von Dateien ausgiebig genutzt. So können heraufgeladene Dateien einfach per Klick in eine Seite eingebunden werden. Bei Bildern können die gewünschten Einstellungen (Bilder-Flags) gleich im Upload-Formular eingestellt werden - inklusive Vorschaubildchen mit Zoom-Funktion!
  • (April 2008) Zuletzt besuchte Seiten werden im Edit-Mode aufgelistet und können per Klick ins Dokument eingefügt werden

Neu seit Januar 2007

  • Neuer Flash Video-Player eingebaut
  • Neu: MP3 Player für Wiki
  • Wiki-Clone-Files eingeaut
  • Inter-Wiki Links speziell markieren
  • Debug-Möglichkeiten erweitert
  • Verzeichnisabfragen beschleunigt (FsDirInfoCollencionClass)
  • Download von Wiki-Siten/Media von sicherem Verzeichnis
  • DataGet-Funktionen mit Default-Wert
  • Beschränkung der Medien-Filenamen (keine Umlaute usw.) aufgehoben
  • QuickSort mit IgnoreCase versehen
  • Universeller Quiqsort eingebaut
  • Neuer Flash Video-Player eingebaut
  • Neuer MP3 Player
  • Neue Sortierung bei Titelsuche
  • Ctrl-X: Admin-Mode / Edit-Mode
  • Erweiterte Zugriffsrechte Verwaltung (creator, owner usw. pro Seite)
  • Mehr Stufen bei Wiki-Script Ausführrechten
  • Versions-Anzeige kann deaktiviert werden
  • Titelsuche kann deaktiviert werden
  • Namen im Menu kann Kurz/Lang eingestellt werden (MENU_LONG_NAMES)
  • Wscript in Sandbox on/off
  • FileInfos und MetaDaten werden gespeichert
  • Caching/Indexing erweitert: Alle Abfragen über Index-Files
  • Nur noch Änderungsdatum der Seite ist relevant, nicht das File-Datum
  • Auflistung der Änderungen zeigt immer ganze Tage plus neu Uhrzeit
  • Gelöschte Seiten werden bei Neu-Erstellen nicht wieder hergestellt, alter Inhalt geht verloren!
  • Neues Makro: sel rb
  • Makros login/logout neu
  • Neue Makros: DirFrom, SubDirFrom
  • Makro MainDir: automatische Root-Findung durch Level-Beschränkung mit #Level
  • Neues Makro: MainMenu → DirPage + MainDir Neues Makro: ListPages
  • Neues Makro: private → Nur noch eine Version der APhS-News muss erstellt werden
  • Neu: Admin-Funktionen (update, clearcaches, metadata)
  • DirName Makro für Verzeichnisse
  • Redirects werden angezeigt bei Auflistungen
  • Suchfunktionen neu implementiert (universeller)
  • Suchfunktion: zuerst Titel, dann Volltext anbieten
  • Rename / Redirects neu
  • Vorlagen
  • Letzte Änderungen überarbeitet
  • Appli-Interface vereinfacht, div. Funktionen eingeführt
  • In den Makros local links können Wiki-Links mit allen Features verwendet werden
  • Neue Funktion DebugOut
  • Verschachtelte Makros
  • Neu: ///
  • Titelsuche sucht neu auch in Headern der Stufe ==
Weitere Infos zur Seite
Erzeugt Mittwoch, 20. Januar 2010
von wabis
Zum Seitenanfang
Geändert Sonntag, 6. Dezember 2015
von wabis