Modul:Spielwiese
Zur Navigation springen
Zur Suche springen
Prozedur proc aufrufen: {{#invoke:Spielwiese|proc}} · Modul einbinden: local t = require('Module:Spielwiese')
Unterseiten
Verwendung
- LSR/292 (Vorlageneinbindung) (← Links)
- Vorlage:Cats/st (Vorlageneinbindung) (← Links)
- Vorlage:Transclution/st1 (Vorlageneinbindung) (← Links)
- Vorlage:Transclution/st2 (Vorlageneinbindung) (← Links)
- Vorlage:Transclution/st3 (Vorlageneinbindung) (← Links)
- Vorlage:Transclution/st4 (Vorlageneinbindung) (← Links)
- About:Alle Seiten ab ID 1/500 (← Links)
- About:Alle Seiten ab ID 1/600 (← Links)
Aufruf: {{#invoke:Spielwiese|name}} Einbindung: require('Module:Spielwiese')
local p = {} -- p stands for package
local upros = require('Module:Upros')
local tab = mw.loadData('Module:LSR/tabelle')
local ta = require( "Modul:LSR/tabelle" )
function p.pagex(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local width = a.width or b.width or 'auto'
local height = a.height or b.height or '200px'
local text = a.text or b.text or 'Beschreibung fehlt'
local ws = a.ws or b.ws or 'pre-wrap'
local lsr = "LSR/"
local nrliste = 'Score:LSR'
local i, titel, url, clsr, zeile
local nummern = frame:preprocess('{{' .. nrliste .. '}}')
local alsr = mw.text.split(nummern, '[%c]' ) -- Tabelle der Snippets mit Titel und #
local _ = '{{TOV}}{{Bluetitle|1='
local ich = mw.title.getCurrentTitle()
local llnr = ich.subpageText
--if 1 then return llnr .. #alsr end
local lnr = llnr * 1
--if height ~= '' then height = 'auto' end
for i=1, #alsr do
zeile = mw.text.split(alsr[i], '[%*]' )
titel = trim(zeile[1])
clsr = trim(zeile[2])
if clsr == llnr then
_ = _ .. titel .. '}}\n{{Ref|1=http://lsr.di.unimi.it/LSR/Item?id=' .. llnr
_ = _ .. '|2=LSR Snippet Nr. ' .. llnr .. '|ref=}}\n'
_ = _ .. '{{Absatz}}\n{{Bildteil|1=LSR_pic_' .. llnr .. '.png|bildheight=' .. height .. '|height=' .. height .. '|overflow=none}}'
_ = _ .. '\n== Beschreibung =='
_ = _ .. '\n{{InfoBox|1=<div style="white-space: ' .. ws .. '">' .. text .. '\n</div>}}'
_ = _ .. '\n== Lilypond-Code =='
_ = _ .. '\n{{:{{PAGENAME}}/code}}'
_ = _ .. '\n== Unterseiten =='
_ = _ .. '\n<div style="column-count: 3; width: 1000px">\n{{:Special:PrefixIndex/:{{PAGENAME}}/}}\n</div>'
end
end
return _
end
function p.lsrx(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die aufrufende Vorlage übergebene Parameter
local nrliste = 'Score:LSR'
local nummern = frame:preprocess('{{' .. nrliste .. '}}')
local numtab = mw.text.split(nummern, '[%c]' ) -- in einzelne Zeilen zerlegen
local zeilen = #numtab -- Anzahl der Zeilen
local i, titel, url, clsr, zeile
local lsr = "LSR/"
local alles = ''
for i=1,zeilen do
zeile = mw.text.split(numtab[i], '[%*]' )
titel = trim(zeile[1])
clsr = trim(zeile[2])
url = trim(zeile[3] or titel)
if titel > ' ' then
local snip = lsr .. clsr
alles = alles .. '\n' .. '*[[' .. snip .. '\|' .. titel .. ']] · [http://lsr.di.unimi.it/LSR/Item?id=' ..
clsr .. ' LSR # ' .. clsr .. ']'
end
end
return alles
end
function p.xxx(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die aufrufende Vorlage übergebene Parameter
local alt = trim(a["alt"] or b["alt"] or '')
local neu = trim(a["neu"] or b["neu"] or '')
local n, a, url, titel = getlob(frame,neu,alt)
local _ = '[[' .. url.. '|GL ' .. n .. ': ' .. titel .. ' (alt: ' .. a .. ')]]'
return _ --.. url .. titel .. n .. a
end
function getlob(frame,pneu,palt)
local new = trim(pneu or '')
local old = trim(palt or '')
local nrliste = 'Score:Gotteslob'
local nummern = frame:preprocess('{{' .. nrliste .. '}}')
local numtab = mw.text.split(nummern, '[%c]' )
local zeilen = #numtab
local i, einlied, j, _, zeile
local alt, neu = '', ''
for i=1,zeilen do
zeile = mw.text.split(numtab[i], '[%*]' )
url = zeile[1]
neu = trim(zeile[2] or '')
alt = trim(zeile[3] or '---')
titel = zeile[4] or url
if new ~= '' and new ~= nil and new == neu then
return neu, alt, url, titel
end
if old ~= '' and old ~= nil and old == alt then
return neu, alt, url, titel
end
end
return
end
function p.vorlage(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die aufrufende Vorlage übergebene Parameter
local c= a['vorlage'] or b['vorlage'] or 'Lorem' -- Name der Vorlage
local i,v
local katz, _, ktabs = '', '', {}
for i,v in pairs(a) do -- direkt per #invoke: übergeben
if tostring(i):lower() ~= 'vorlage' and v > ' ' then
--ktabs [i] = trim(v)
--return 'frame.args: ' .. #a
katz = katz .. '|' .. i .. '=' .. trim(v)
end
end
for i,v in pairs(b) do -- an die aufrufende Vorlage übergebene Parameter
if tostring(i):lower() ~= 'vorlage' and v > ' ' then
--ktabs [i] = trim(v)
--return 'frame:getParent().args: ' .. #b
katz = katz .. '|' .. i .. '=' .. trim(v)
end
end
--_ = frame:expandTemplate{ title = c, args = ktabs }
katz = '{{' .. c .. katz .. '}}'
_ = katz
--_ = katz .. '<div></div>' .. frame:expandTemplate{ title = c, args = ktabs }
--_ = frame:expandTemplate{ title = c, args = ktabs }
return frame:preprocess(_)
end
function p.page(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local width = a.width or b.width or 'auto'
local text = a.text or b.text or 'Beschreibung fehlt'
local ws = a.ws or b.ws or 'pre-wrap'
local lsr = "LSR/"
local clsr, alsr = tab.clsr, tab.alsr -- zuweisen der Tabellenwerte mit Nummer und Titel des Snippets; Nr wäre eigentlich nicht nötig
local mytab = ta.alsr
return #mytab .. type(mytab)
end
function p.lsr(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local lsr = "LSR/"
local found, snip, alles, nicht, titel = '', '', '', '', ''
local nlsr = tab.nlsr
local tlsr = tab.tlsr
local clsr = tab.clsr
local nlsr, tlsr, clsr, alsr = tab.nlsr, tab.tlsr, tab.clsr, tab.alsr
for i=1, clsr do
local snip = lsr .. alsr[i][2]
alles = alles .. '\n' .. '*[[' .. snip .. '\|LSR Nr ' .. alsr[i][2] .. ': ' .. alsr[i][1] .. ']] · [http://lsr.di.unimi.it/LSR/Item?id=' ..
alsr[i][2] .. ' LSR # ' .. alsr[i][2] .. ']'
end
if 1 then return frame:preprocess(alles) end
for i=1,4 do
snip = lsr .. nlsr[i]
txt = tlsr[i]
nicht = 'LSR ' .. nlsr[i] .. txt .. ' gibts nicht'
if upros.gibts(snip)
then titel = '*[[' .. snip .. '\|LSR Nr ' .. nlsr[i] .. ': ' .. tlsr[i] .. ']]'
else titel = nicht end
alles = alles .. '\n' .. titel
end
return #nlsr .. nlsr[1] .. clsr --frame:preprocess(alles)
end
function p.rezept(frame)
-- kategorisiert in alle übergebenen Parameter
-- die Variable a enthält alle Parameter, die im #invoke: Statement stehen
-- die Variable b enthält die Parameter, die an die Vorlage übergeben werden, die das #invoke: Statement aufruft
-- z.B. die Vorlage {{Scheme}} ruft cats mit dem Parameter Scheme auf:
-- {{#invoke:Hili|cats|Scheme}} frame.args enthält i=1, v=Scheme
-- {{Scheme|Grobs}} frame:getParent().args i=1, v=Grobs
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local katz = ''
return '<a href="https://de.wikipedia.org">testlink</a>'
end
function p.hili(frame)
--local a = mw.getCurrentFrame():getParent().args -- kann nur über Vorlage aufgerufen werden, die Parameter der Vorlage werden durchgereicht
--if empty(a) then a = mw.getCurrentFrame().args end
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local mus = '(lambda (x) (+ x x))'
local _lang = a.lang or 'scheme'
for k, v in pairs(a) do
if string.lower(k) ~= "lang" then -- damit kann der Parameter beliebig benannt werden, nur lang wird ausgenommen
mus = v
break
end
end
local b = frame:extensionTag { name = 'syntaxhighlight', content = mus, args = { lang = _lang } }
return b
end
function p.hilio(frame)
local a = mw.getCurrentFrame():getParent().args -- kann nur über Vorlage aufgerufen werden, die Parameter der Vorlage werden durchgereicht
if empty(a) then a = mw.getCurrentFrame().args end
local mus = '(lambda (x) (+ x x))'
local _lang = a.lang or 'latex'
for k, v in pairs(a) do
if string.lower(k) ~= "lang" then -- damit kann der Parameter beliebig benannt werden, nur lang wird ausgenommen
mus = v
break
end
end
local b = frame:extensionTag { name = 'syntaxhighlight', content = mus, args = { lang = _lang } }
return '{{Only|1=' .. b .. '}}'
end
function mehr(u, v)
local u = u or 'u ist leer'
local v = v or 'v ist leer'
local a="a"
local b="b"
return u, v
end
function gibts(name, namespace)
local name = name
local space = namespace or ''
if space ~= '' then space = space .. ':' end
local titel = mw.title.new(space .. name)
if titel.exists then return titel end
return false
end
function empty (self)
for _, _ in pairs(self) do
return false
end
return true
end
function trim(s)
-- from PiL2 20.4
if s == nil then return '' end
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
function empty (self)
-- es gibt keine eingebaute Funktion, um zu überprüfen, ob eine Tabelle leer ist
-- diese Funktion liefert true, wenn die Tabelle leer ist
-- hilfreich bei frame.args oder frame:parent().args etc.
for _, _ in pairs(self) do
return false
end
return true
end
return p