Benutzer:J*/lib/wiki.js

aus Kamelopedia, der wüsten Enzyklopädie
Version vom 17. März 2009, 21:52 Uhr von J* (Diskussion | Beiträge) (Die Seite wurde neu angelegt.)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
wiki = {
    /*
     * getSource: fragt wiki nach Seitenquelltexten
     * Argumente und Rückgabewerte als Objekt:
     * objekt.wiki.title = Seitentitel (benötigtes Argument)
     * objekt.wiki.source = Seitenquelltext (Rückgabewert)
     * objekt.wiki.args = Seitenargumente
     */
    getSource: new Async([
        function ( args ) { 
            if (args == null)
                args = {};
            if (args.wiki == null)
                args.wiki = {};

            new Ajax.Request( wgServer+wgScript, {
                method:'get',
                parameters: 'action=raw&title='+escape(args.wiki.title)+'&'+args.wiki.args,
                onSuccess: function( transport ) { args.wiki.source = transport.responseText; wiki.getSource.continue(args) },
                onFailure: function() { args.wiki.source = null; wiki.getSource.continue( args ) }
            })
        },
        null
    ]),
    /*
     * getHTML: fragt wiki nach gerenderten Seiten
     * Argumente und Rückgabewerte als Objekt:
     * objekt.wiki.title = Seitentitel (benötigtes Argument)
     * objekt.wiki.HTML = SeitenHTML (Rückgabewert)
     * objekt.wiki.args = Seitenargumente
     */
    getHTML: new Async([
        function ( args ) { 
            if (args == null)
                args = {};
            if (args.wiki == null)
                args.wiki = {};

            new Ajax.Request( wgServer+wgScript, {
                method:'get',
                parameters: 'action=render&title='+escape(args.wiki.title)+'&'+args.wiki.args,
                onSuccess: function( transport ) { args.wiki.HTML = transport.responseText; args.wiki.transport = transport; wiki.getHTML.continue(args) },
                onFailure: function() { args.wiki.HTML = null; wiki.getHTML.continue( args ) }
            })
        },
        null
    ]),
    /*
     * parse: lässt Wiki beliebigen Wiki-Quelltext rendern
     * Argumente und Rückgabewerte als Objekt:
     * objekt.wiki.source = Quelltext (benötigtes Argument)
     * objekt.wiki.title = Seitentitel (für {{PAGENAME}} oder ähnliches)
     * objekt.wiki.HTML = SeitenHTML (Rückgabewert)
     */
    parse: new Async([
        function ( args ) { 
            if (args == null)
                args = {};
            if (args.wiki == null)
                args.wiki = {};

            filter1='<div id="wikilibajaxfilterdiv1"></div>';
            filter2='<div id="wikilibajaxfilterdiv2"></div>';

            new Ajax.Request( wgServer+wgScript, {
                method:'post',
                parameters: 'action=submit&wpPreview=true&live=true&title='+escape(args.wiki.title)+'&wpTextbox1='+escape(filter1+args.wiki.source+filter2),
                onSuccess: function( transport ) { args.wiki.HTML = transport.responseText.replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, "\"").replace(/&amp;/gi,"&").replace(new RegExp("^(.|\n)*"+filter1),"").replace(new RegExp(filter2+"(.|\n)*$"),""); wiki.parse.continue(args) },
                onFailure: function() { args.wiki.HTML = null; wiki.parse.continue( args ) }
            })
        },
        null
    ])
};