Modul:Babel
Erscheinungsbild
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
local p = { }
p.fill = function ( frame )
-- Template filling
local t = mw.title.getCurrentTitle()
local r, scope
if t.namespace == 10 then
scope = "doc"
elseif t.namespace == 14 then
scope = "cat"
end
if scope then
local lucky, c = pcall( mw.loadJsonData, "Module:Babel.json" )
if type( c ) == "table" and
type( c[ scope ] ) == "table" then
local s = t.text
local slang, start
c = c[ scope ]
if type( c.sub ) == "string" then
start, slang = s:match( c.sub )
end
if not start and
type( c.slang ) == "string" then
start, slang = s:match( c.slang )
end
if start and
type( c.source ) == "string" then
local n = start:len() + slang:len()
local params, score
if s:len() > n then
s = s:sub( n + 1 )
if type( c.standard ) == "string" then
score = s:match( c.standard )
end
if not score and
type( c.superior ) == "string" then
score = s:match( c.superior )
end
end
params = { lang = slang,
level = score or "N" }
s = frame:expandTemplate{ title = c.source,
args = params }
if type( s ) == "string" then
r = s
end
end
end
end
return r or ""
end -- p.fill
return p