Zum Inhalt springen

Modul:Text/test

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. Oktober 2015 um 13:12 Uhr durch PerfektesChaos (Diskussion | Beiträge) (2015-10-08). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus


--[=[ 2015-10-08
Module:Text test
]=]



local Handler   = { }
local Text      = { }
local QuoteLang = false
local QuoteType = false



local function fault( a )
    -- Formatiere Fehler mit class=error
    -- Parameter:
    --     a  -- string mit Text
    return string.format( "<span class=\"error\">%s</span>", a )
end -- fault()



Handler.quoteTable = function ( args, frame )
    local r     = Text.test( "quote" )
    local strip = [==[
|-
| {{#language:%%s|%s}} || <code>{{#invoke:Text|quoteUnquoted|1|%%s|1}}</code> || <code>{{#invoke:Text|quoteUnquoted|2|%%s|2}}</code> || <code>%%s</code>
]==]
    local s, v1, v2
    QuoteLang = r.QuoteLang
    QuoteType = r.QuoteType
    r         = [==[
{| class="wikitable sortable"
|-
! lang !! 1 !! 2 !! code
]==]
    local slang
    if not frame then
        frame = mw.getCurrentFrame()
    end
    slang = frame:preprocess( "{{int:lang}}" )
    strip = string.format( strip, slang )
    for k, v in pairs( QuoteLang ) do
        if type( v ) == "string" then
            s = string.format( strip, k, k, k, v )
            r = r .. frame:preprocess( s )
        else
            r = r .. "\n|-\n!" .. k
        end
    end
    r = r .. [==[
|}

{| class="wikitable sortable"
! code !!colspan="3"| 1 !!colspan="3"| 2
]==]
    for k, v in pairs( QuoteType ) do
        if type( v ) == "table" then
            v1 = v[ 1 ]
            v2 = v[ 2 ]
            if type( v1 ) == "table" then
                s = string.format( "%s1%s||%d||%d",
                                   mw.ustring.char( v1[ 1 ] ),
                                   mw.ustring.char( v1[ 2 ] ),
                                   v1[ 1 ],
                                   v1[ 2 ] )
            else
                s = "???"
            end
            s = s .. "||"
            if type( v2 ) == "table" then
                s = string.format( "%s%s2%s||%d||%d",
                                   s,
                                   mw.ustring.char( v2[ 1 ] ),
                                   mw.ustring.char( v2[ 2 ] ),
                                   v2[ 1 ],
                                   v2[ 2 ] )
            else
                s = s .. "???"
            end
        else
            s = "??????????"
        end
        r = string.format( "%s\n|-\n|<code>%s</code>||%s", r, k, s )
    end
    r = r .. "\n|}"
    return r
end -- Handler.quoteTable()



-- Export
local p = { }

function p.test( frame )
    local lucky, r
    lucky, Text = pcall( require, "Module:Text" )
    if type( Text ) == "table" then
        local suite
        if type( frame ) == "string" then
            suite = frame
        else
            suite = frame.args[ 1 ]
        end
        Text = Text.Text()
        if type( Handler[ suite ] ) == "function" then
            r = Handler[ suite ]( frame.args, frame )
        else
            r = fault( "Unkown Handler: " .. suite )
        end
    else
        r = fault( Text )
    end
    return r
end -- p.test()

return p