Modul:LSR
Zur Navigation springen
Zur Suche springen
Prozedur proc aufrufen: {{#invoke:LSR|proc}} · Modul einbinden: local t = require('Module:LSR')
Unterseiten
erzeugt eine Liste der Lilypond Code Snippets, die hier gespeichert werden
{{LSR}}
local p = {} -- p stands for package
local t = require('Module:Arguments')
local upros = require('Module:Upros')
--local tab = mw.loadData('Module:LSR/tabelle')
--local tab = require( "Modul:LSR/tabelle" ) -- damit funktioniert die Parameterübergabe korrekt
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 'normal'
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 ich = mw.title.getCurrentTitle()
local llnr = ich.subpageText
local _ = '\n<div class="blue-gradient fett weiss" style="display: inline-block; padding: 0.5em 1em 0.5em 1em">Code Snippet Nr. ' .. llnr ..
' nicht in der <span class="plainlinks">[{{fullurl:Score:LSR|action=edit}} <span class="weiss">Tabellenseite</span>]</span> vorhanden, bitte eintragen</div>\n'
for i=1, #alsr do
zeile = mw.text.split(alsr[i], '[%*]' )
titel = trim(zeile[1])
clsr = trim(zeile[2])
if clsr == llnr then
_ = '{{TOC}}{{Überschrift|1='
_ = _ .. titel .. '}}\n{{Ref|1=http://lsr.di.unimi.it/LSR/Item?id=' .. llnr
_ = _ .. '|2=LSR Snippet Nr. ' .. llnr .. '|ref=}}\n'
_ = _ .. '\n== Beschreibung =='
_ = _ .. '\n<div style="margin-bottom: 1em; white-space: ' .. ws .. '">' .. text .. '\n</div>'
_ = _ .. '\n<tabber>\nGrafische Ausgabe='
_ = _ .. '\n{{Bildteil|1=LSR_pic_' .. llnr .. '.png|bildheight=' .. height .. '|height=' .. height .. '|overflow=none}}'
_ = _ .. '\n|-|\nLilypond Code='
_ = _ .. '\n<div class="noprint noclick"><div style="display: inline-block">{{#tag:inputbox|'
_ = _ .. '\ntype=create'
_ = _ .. '\nbreak=no'
_ = _ .. '\nwidth={{{weit|20em}}}'
_ = _ .. '\nbuttonlabel={{{but|Score erstellen/bearbeiten}}}'
_ = _ .. '\ndefault={{{score|{{FULLPAGENAME}}/code}}}'
_ = _ .. '\npreload={{{pre|Template:LSR/subpage}}}}}</div></div>'
_ = _ .. '\n{{:{{PAGENAME}}/code}}'
_ = _ .. '\n|-|\nLilypond Code Oneclick='
_ = _ .. '\n<div class="oneclick">{{:{{PAGENAME}}/code}}</div>'
_ = _ .. '\n</tabber>'
_ = _ .. '\n==Unterseiten=='
_ = _ .. '\n<div style="column-count: 3; width: 1000px">\n{{:Special:PrefixIndex/:{{PAGENAME}}/}}\n</div> __NOEDITSECTION__'
end
end
return frame:preprocess(_)
end
function p.lsrtitel(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local lsr = "LSR/"
local nrliste = 'Score:LSR'
local i, url, clsr, zeile
local nummern = frame:preprocess('{{' .. nrliste .. '}}')
local alsr = mw.text.split(nummern, '[%c]' ) -- Tabelle der Snippets mit Titel und #
local _, titel = '', ''
local ich = mw.title.getCurrentTitle()
local llnr = ich.subpageText
for i=1, #alsr do
zeile = mw.text.split(alsr[i], '[%*]' )
titel = trim(zeile[1])
clsr = trim(zeile[2])
if clsr == llnr then break
end
end
_ = t.tidy(titel) or ich
return _
end
function p.szahl(frame)
-- ermittelt die Zahl der Snippets
-- {{#invoke:LSR|szahl}}
local nrliste = 'Score:LSR'
local nummern = frame:preprocess('{{' .. nrliste .. '}}')
local alsr = mw.text.split(nummern, '[%c]' ) -- Tabelle der Snippets mit Titel und #
return #alsr
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.page(frame)
-- alte Version mit Tabellenmodul, obsolet
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 alsr = tab.alsr -- Tabelle der Snippets mit Titel und #
local _ = '{{TOV}}{{Bluetitle|1='
local ich = mw.title.getCurrentTitle()
local llnr = ich.subpageText
local lnr = llnr * 1
--if height ~= '' then height = 'auto' end
for i=1, #alsr do
if alsr[i][2] == lnr then
_ = _ .. alsr[i][1] .. '}}\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 frame:preprocess(_)
end
function p.lsr(frame)
-- alte Version mit Tabellenmodul, obsolet
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local lsr = "LSR/"
local alles = ''
local clsr, alsr = tab.clsr, tab.alsr -- zuweisen der Tabellenwerte mit Nummer und Titel des Snippets; Nr wäre eigentlich nicht nötig
for i=1, clsr do
local snip = lsr .. alsr[i][2]
alles = alles .. '\n' .. '*[[' .. snip .. '\|' .. alsr[i][1] .. ']] · [http://lsr.di.unimi.it/LSR/Item?id=' ..
alsr[i][2] .. ' LSR # ' .. alsr[i][2] .. ']'
end
return frame:preprocess(alles)
end
function p.expand(frame)
-- 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
-- {{#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 n = a[1] or b[1] or '271'
local _ = ''
local lsr = "LSR/" .. n
_ = frame:preprocess('{{:' .. lsr .. '}}')
_ = '{{:' .. lsr .. '}}'
return _
end
function p.muster(frame)
-- 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
-- {{#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 = '+++' .. upros.trim(' a b c ') .. '+++'
return katz
end
function p.bild(frame)
local a = frame.args -- direkt per #invoke: übergeben
local b = frame:getParent().args -- an die Vorlage übergebene Parameter
local height = a.height or b.height or ''
local ich = mw.title.getCurrentTitle()
local llnr = ich.subpageText
local alsr = tab.alsr
local lnr = llnr * 1
local _ = llnr .. '*' .. lnr .. '*' .. #alsr .. '*' .. alsr[6][2]
--if 1 then return llnr .. '*' .. lnr .. '*' .. #alsr .. '*' .. alsr[6][2] end
for i=1, #alsr do
if alsr[i][2] == llnr then --or alsr[i][2] == llnr then
_ = '{{Bildteil|1=LSR_pic_' .. llnr .. '.png|bildheight=' .. height .. '|height=' .. height .. '|overflow=none}}'
end
end
return '<pre>' .. _ .. '</pre>\n' .. frame:preprocess(_)
end
function trim(s)
if s == nil then return '' end
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
return p