Modul:Vorlage:VorlagendokumentationFlagIcon
Zur Navigation springen
Zur Suche springen
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | ||
Modul | Deutsch
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
--[=[
Support {{Vorlagendokumentation Land mit Flagge}}
* first2
* flat
* from
]=]
local Title = mw.title.getCurrentTitle()
local flat = function ( aaa, frame )
-- Linktitel aus FlagIcon auslesen
-- Precondition:
-- aaa -- Title object or 3 letter string; of Template:AAA
-- frame -- object; #invoke environment
-- Postcondition:
-- Return link title or not
local r, t
if type( aaa ) == "string" then
t = mw.title.makeTitle( 10, aaa )
if not t.protectionLevels.edit then
t = false
end
else
t = aaa
end
if t then
local s = frame:expandTemplate{ title = t }
if s:sub( -2 ) == "]]" or
s:sub( -9 ) == "]]</span>" then
local i
s = s:reverse( s )
i = s:find( "[[", 2, true )
if i then
s = s:sub( 3, i - 1 )
s = s:reverse( s )
i = s:find( "|", 1, true )
if i then
s = s:sub( i + 1 )
end
if s:sub( 1 ) == ":" then
s = s:sub( 2 )
end
i = s:find( "]]", 2, true )
if i then
s = s:sub( 1, i - 1 )
end
s = s:gsub( '["|{}<>]', "" )
if s ~= "" then
r = s
end
end
end
end
return r
end -- flat()
-- Export
local p = { }
p.first2 = function ( frame )
-- Staatsnamen (verlinkt) zu AA-FlagIcon ermitteln
-- Precondition:
-- frame -- object; #invoke environment
-- Postcondition:
-- Return wikilink or ""
local r
if Title.namespace == 10 then
local s = Title.text
if s:match( "^%u%u-" ) then
local seek = "Info ISO-3166-2:"
local t = mw.title.makeTitle( 10, seek .. s:sub( 1, 2 ) )
if t.protectionLevels.edit then
local params = { }
table.insert( params, "lemma" )
s = frame:expandTemplate{ title=t, args=params }
r = string.format( "[[%s]]", s )
end
end
end
return r or ""
end -- p.first2()
p.flag = function ( frame )
-- Beschreibung zu HDK bilden
-- Precondition:
-- frame -- object; #invoke environment
-- Postcondition:
-- Return text or ""
local r
if Title.namespace == 10 then
local sign, s = Title.text:match( "^(%u%u%u)-([HDKSL].*)$" )
if s then
local spec, sJahr = s:match( "^([HDKLS]+)-(.+)$" )
if sJahr then
sJahr = sJahr:match( "^[12]%d%d%d" )
else
spec = s:match( "^[HDKLS]+$" )
end
if spec then
local hdk = { "H", "D", "K" }
local texts = { H = "Handelsflagge",
D = "Dienstflagge",
K = "Kriegsflagge",
L = "/Land",
S = "/See" }
for i = 1, #hdk do
s = hdk[ i ]
if spec:match( s ) then
r = texts[ s ]
if s ~= "H" then
if spec:find( "L" .. s, 1, true ) then
r = r .. texts.L
elseif spec:find( "S" .. s, 1, true ) then
r = r .. texts.S
end
end
end
end -- for i
if r and sJahr then
r = string.format( "%s; ab %s", r, sJahr )
end
end
end
end
return r or ""
end -- p.flag()
p.flat = function ( frame )
-- Linktitel aus FlagIcon auslesen
-- Precondition:
-- frame -- object; #invoke environment
-- args.pre -- prefix (optional)
-- Postcondition:
-- Return link title or ""
local r
if Title.namespace == 10 then
r = flat( Title, frame )
if r and frame.args.pre then
r = frame.args.pre .. r
end
end
return r or ""
end -- p.flat()
p.from = function ( frame )
-- Ggf. Landesname und Jahreszahl zu AAA-9999-FlagIcon ermitteln
-- Precondition:
-- frame -- object; #invoke environment
-- Postcondition:
-- Return details or ""
local r
if Title.namespace == 10 then
local sA3, sNum = Title.text:match( "^(%u%u%u)-([12]%d%d%d)$" )
if sA3 then
local self = flat( Title, frame )
local short = flat( sA3, frame )
sNum = string.format( "ab %s", sNum )
if short and short ~= self then
r = string.format( "%s; %s", short, sNum )
end
r = r or sNum
end
end
return r or ""
end -- p.from()
return p