For English read here: GaGaEn
GaGa ist ein leicht modifizierter Wiki-Markup-Parser. Demo nur noch auf http://linuxwiki.de/gaga/GaGa (unter dieser URL befindet sich das direkt mit dem GaGa-Parser laufende LinuxWiki - es wird dort automatisch jede Seite vom modifizierten Parser behandelt - ich bitte aber darum, solange diesbezüglich noch nichts beschlossen ist, auf normalen Wiki-Seiten auch nur normalen Wiki-Markup zu verwenden ).
Die Modifikation ist recht simpel:
jedes Wort auf einer Seite wird darauf gecheckt, ob es eine gleichnamige Seite dazu gibt (außer die Worte, die auf GaGaBlackList stehen)
- bei einem exakten Treffer ist der Link blau, z.B.: Samba
- bei einem case-insensitiven Treffer ist der Link violett: samba
- gibt es keine passende Seite,
wird normalerweise (action=show) kein Link generiert,
wenn man die Seite aber mit action=linkall aufruft (siehe oben rechts), dann wird trotzdem ein Link generiert (zum Neuanlegen von Seiten)
- wenn man einen (automatisch generierten) Link "betonen" will, kann man dies mit normalem Markup erreichen
Neues Markup __unterstrichen__: Samba
Samba, Samba, Samba, Samba
man kann mehrere Worte zusammenfassen, indem man sie mit Unterstrich (_) verbindet - die Anzeige ist dann mit Leerzeichen zwischen den Worten, das ganze wird aber wie ein Wort behandelt (und daher auch als Ganzes verlinkt - siehe (!), um dies zu sehen): GaGa_Link_mit_Leerzeichen
verhindern kann man Links wie gehabt mit !keinLink: !kein_Link
forcieren kann man Links mit ?blacklistedword: ?links
dies geht trotz Eintrag von "links" auf GaGaBlackList
oder wie gehabt mit ["free links"]: links
Unterseiten:
- absolute Unterseiten: GaGa/Verschieden und GaGa/verschieden sind verschiedene Seiten.
- relative Unterseite: /verschieden
- relative Unterseite mit Leerzeichen: /Unterseite_mit_Leerzeichen
Was das Ganze soll, sieht man übrigens erst, wenn man sich den Quelltext dieser Seite anschaut: die Seite enthält viele Links, im Quelltext ist aber fast nur normaler Text ohne Wikinamen und Markup sichtbar.
Der Overhead fällt bei Seiten wie dieser praktisch nicht auf, die Implementierung benutzt Pythons dict, d.h Hashing - und das ist sehr schnell.
Verbrochen hat das Ganze ThomasWaldmann (mit vielen Ideen von SimonKågedal, RonnyBuchmann, BastianBlank u.v.a.).
Testbereich
GNU/Linux ist ein Betriebssystem, das als FreieSoftware verfügbar ist. Durch XFree86 ist die grafische Oberfläche netzwerktransparent, mit GNOME und KDE stehen leistungsfähige und hübsche Oberflächen zur Verfügung.
Für Programmierer gibt es Compiler en masse, praktisch alle erdenklichen Programmiersprachen sind (meist ebenfalls als FreieSoftware) verfügbar. Z.B.: C, C++, Python, Perl, Bash, Pascal, Ada, LISP, Prolog, u.v.a.
GaGa ist toll (mit Blanks) und zum Anlegen: GaGa_ist_toll (mit Unterstrichen)
Bugs, Probleme, ToDo, Ideen, Diskussion
Wer über GaGa diskutieren will, kann dies hier oder per IRC machen, siehe IrcChat.
der action=linkall schalter sollte auch zurück funktionieren (wenn linkall schon aktiv ist)
dazu gibt es action=show (Icon ganz links)
- dass man über ein refresh icon auf eine "andere" seite gelangt ist nicht gerade logisch
die actions heißen "show" und "linkall" und machen genau das. Wenn Du ein besseres "show"-Icon hast, nur her damit!
Idee von Jens Ziemann: bei "Allerweltsworten" auf der Targetseite ein Meta-Tag, der die Verlinkung verhindert. Wurde allerdings vorerst durch GaGaBlackList gelöst, wenn auch nicht ganz so elegant, dafür aber einfacher und effizienter.
- string.lower() und Umlaute tut nicht
strip non-alpha chars to do insensitive link: web-browser = webbrowser = WebBrowser
- schlechte Idee, weil "-" als Word-Delimiter verwendet wird
Idee: die Worte nicht per dict-lookup identifizieren sondern per Präprozessor mit TRIEs - siehe GaGa2En.