Vorlage:Lua/scale
Zur Navigation springen
Zur Suche springen
function p.scale(frame)
local a = mw.getCurrentFrame():getParent().args -- bei Aufruf über Vorlage ist :getParent(). erforderlich
if empty(a) then a = mw.getCurrentFrame().args end -- entweder Direktaufruf oder über Vorlage, so bin ich für alles gerüstet
local pre = a.pre or a[1] or 'Lua/scale'
local suf = a.suf or a[2] or 'Dur'
local art = a.art or a.geschlecht or a[3] or 'dur'
local link = a.link or a[4] or '' -- Linkbeschriftung
local templ = a.template or a.templ or a.vorlage or a[5] or '' -- soll eine Vorlage angewendet oder nur ein Link erzeugt werden
local trenn = a.trenn or a.trennzeichen or a[6] or '·' -- das Trennzeichen kann umdefiniert werden
local leiter = {}
if art == 'dur' then leiter = qidur else leiter = qimol end
pre = trim(pre) .. ' '
suf = ' ' .. trim(suf)
trenn = ' ' .. trenn .. ' '
local page_name = pre .. leiter[1] .. suf
if link == '' then
linkp = page_name
else
link = link .. ' '
linkp = link .. leiter[1] .. suf
end
qilen = #leiter -- Zahl der Elemente im Quintenzirkel
local _ = ''
if templ ~= '' then
_ = frame:expandTemplate { title = templ, args = { page_name } }
for i=2,qilen do
page_name = pre .. leiter[i] .. suf
_ = _ .. trenn .. frame:expandTemplate { title = templ, args = { page_name } }
end
return _
end
-- es wurde keine Vorlage angegeben, nur Links erzeugen
_ = frame:preprocess( '[[' .. page_name .. '|' .. linkp .. ']]' )
for i=2,qilen do -- alle Tonleitern im Quintenzirkel abarbeiten
page_name = pre .. leiter[i] .. suf
if link == '' then
linkp = page_name
else
linkp = link .. leiter[i] .. suf
end
_ = _ .. trenn .. frame:preprocess( '[[' .. page_name .. '|' .. linkp .. ']]' )
end
return _
end
Alle Vorlagen mit Scribunto-Aufrufen: Alle module, Cats, Coco, Countdown, Dokumentation bearbeiten, DurTonleiter, Ensemble, Hili, Hilio, Klavierscore, Lenplus, Lilypond, LSR, Lua/cats, Lua/catx, Lua/eiffel, Lua/ensemble, Lua/hili, Lua/hilio, Lua/lenplus, Lua/lily, Lua/midi, Lua/pianoduet, Lua/rep, Lua/scale, Lua/score, Lua/staffgroup, Lua/svg, Lua/tag, Lua/vb, Midi, Mixi, PHP, Php, Pianoduet, Rep, Scale, Scheme, Score, SQL, Tag, Tonleiter, Vb, Vorlage