Vorlage:Alle module/doc

Zur Navigation springen Zur Suche springen
Bearbeiten · Raw · Versionen · Cache leeren · Messages · Seiteninformation · Vorlage bearbeiten · Seiteninformation Vorlage
Diese Seite ist die Dokumentations-Unterseite der Vorlage Alle module

Die Vorlage {{Alle module}} listet den Code aller Module auf.

Parameter

keine

Kopiervorlagen

{{Alle module}}
{{Alle module}}

Anwendung

{{Alle module}}
ergibt angewendet:

Hili

Gotteslob

local p = {} -- p stands for package
-- local tab = require( "Module:Gotteslob/tabelle" ) -- damit funktioniert die Parameterübergabe korrekt

function p.jahr(frame)
	local a = frame.args              -- direkt per #invoke: übergeben
	local b = frame:getParent().args  -- an die aufrufende Vorlage übergebene Parameter
	local sort = a.sort or b.sort or '2022'
	local myname = mw.title.getCurrentTitle().text
	mydatum = string.match(myname, ('%d%d%d%d')) -- extrahiert 4 hintereinander vorkommende Ziffern
	if mydatum~=nil and mydatum >= ' ' then
		return '[[Category:' .. mydatum .. '|' .. sort .. ']]'
	end
end

function p.nrlink(frame)
	-- erzeugt einen abgekürzten Link ohne Titel
	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 a[2] or b[2] or '')
	local neu = trim(a["neu"] or b["neu"] or a[1] or b[1] or '')
	local nr  = neu or alt or '---'
	local class = trim(a["class"] or b["class"] or a[3] or b[3] or 'error')
	if alt == '---' or neu == '---' then return '---' end
	local n, a, url, titel = getlob(frame,neu,alt)
	local _  = '[[' .. url.. '|' .. n .. '('  .. a .. ')]]'
	if url == '' then return '<span class="error">' .. nr .. '</span>' end
	return _ 
end

function p.golo(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 a[2] or b[2] or '')
	local neu = trim(a["neu"] or b["neu"] or a[1] or b[1] or '')
	local class = trim(a["class"] or b["class"] or a[3] or b[3] or 'error')
	local n, a, url, titel = getlob(frame,neu,alt)
	local _  = '[[' .. url.. '|GL ' .. n .. ': ' .. titel .. ' (alt: '  .. a .. ')]]'
	if url == '' then return '<span class="' .. class .. '">Lied ' .. neu .. alt .. ' nicht gefunden</span>' end
	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('[[:Vorlage:' .. nrliste .. ']]')
	local numtab  = mw.text.split(nummern, '[%c]' )
	local zeilen  = #numtab
	local i, einlied, j, _, zeile
	
	local alt, neu, url, titel = '', '', '', ''
	
	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.lob(frame)
	local a = frame.args              -- direkt per #invoke: übergeben
	local b = frame:getParent().args  -- an die Vorlage übergebene Parameter
	local nrliste = 'Score:Gotteslob'
	
	local nummern = frame:preprocess('[[:Vorlage:' .. nrliste .. ']]')
	local numtab  = mw.text.split(nummern, '[%c]' )
	local zeilen  = #numtab
	local i, einlied, j, _, zeile, dont
	
	_ = ''
	
	for i=1,zeilen do
		zeile = mw.text.split(numtab[i], '[%*]' )
		url = zeile[1]
		neu = zeile[2] or ''
		alt = zeile[3] or ''
		titel = zeile[4] or url
		dont  = zeile[5]
		if url > ' ' and zeile[5] ~= '-' then
			_ = _ .. '<tr><td>[[' .. url.. '|' .. titel .. ']]</td><td>' .. neu .. '</td><td>' .. alt .. '</td></tr>'
		end
	end
	
	_ = '<table class="wikitable sortable"><tr><th style="text-align: left;">Titel</th><th># neu</th><th># alt</th></tr>' .. _ .. '</table>'
	return _
end

function p.lieder(frame)
	local a = frame.args              -- direkt per #invoke: übergeben
	local b = frame:getParent().args  -- an die Vorlage übergebene Parameter
	-- Liederliste ohne Links
	local nrliste = 'Score:Gottesloblieder'
	
	local nummern = frame:preprocess('[[:Vorlage:' .. nrliste .. ']]')
	local numtab  = mw.text.split(nummern, '[%c]' )
	local zeilen  = #numtab
	local i, einlied, j, _, zeile
	
	_ = ''
	
	for i=1,zeilen do
		zeile = mw.text.split(numtab[i], '[%*]' )
		url = zeile[1]
		neu = zeile[2] or ''
		alt = zeile[3] or ''
		titel = zeile[4] or url
		if url > ' ' then
			_ = _ .. '<tr><td>' .. titel .. '</td><td>' .. neu .. '</td><td>' .. alt .. '</td></tr>'
		end
	end
	
	_ = '<table class="wikitable sortable"><tr><th style="text-align: left;">Titel</th><th># neu</th><th># alt</th></tr>' .. _ .. '</table>'
	return _
end

function p.gololied(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 a[2] or b[2] or '')
	local neu = trim(a["neu"] or b["neu"] or a[1] or b[1] or '')
	local n, a, url, titel = getlied(frame,neu,alt)
	local _  = 'GL ' .. n .. ': ' .. titel .. ' (alt: '  .. a .. ')'
	if url == '' then return 'Lied ' .. neu .. alt .. ' nicht gefunden' end
	return _  --.. url .. titel .. n .. a
end

function getlied(frame,pneu,palt)
	local new = trim(pneu or '')
	local old = trim(palt or '')
	local nrliste = 'Score:Gottesloblieder'
	
	local nummern = frame:preprocess('[[:Vorlage:' .. nrliste .. ']]')
	local numtab  = mw.text.split(nummern, '[%c]' )
	local zeilen  = #numtab
	local i, einlied, j, _, zeile
	
	local alt, neu, url, titel = '', '', '', ''
	
	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.og(frame)
	-- Stücke ohne Gesangstext
	local a = frame.args              -- direkt per #invoke: übergeben
	local b = frame:getParent().args  -- an die Vorlage übergebene Parameter
	local nrliste = 'Score:Gottesdienst ohne Gesang'
	
	local nummern = frame:preprocess('[[:Vorlage:' .. nrliste .. ']]')
	local numtab  = mw.text.split(nummern, '[%c]' )
	local zeilen  = #numtab
	local i, einlied, j, _, zeile, orig
	
	_ = ''
	
	for i=1,zeilen do
		zeile = mw.text.split(numtab[i], '[%*]' )
		url = zeile[1]
		titel = zeile[2] or url
		orig = zeile[3] or ''
		if url > ' ' then
			_ = _ .. '<tr><td>[[' .. url.. '|nach: ' .. titel .. ']]</td><td>' .. orig .. '</td></tr>'
		end
	end
	
	_ = '<table class="wikitable sortable"><tr><th style="text-align: left;">Titel</th><th style="text-align: left;">Originallied</th></tr>' .. _ .. '</table>'
	return _
end

function p.page(frame)
	local a = frame.args              -- direkt per #invoke: übergeben
	local b = frame:getParent().args  -- an die Vorlage übergebene Parameter
	local lieder = tab.gotteslob
	local anzahl = #lieder
	local _, titel, url, alt, neu = '', '', '', 0, 0
	local i
	local zeile = { }
	
	for i = 1, anzahl do
		zeile = lieder[i]
		url = zeile[1]
		neu = zeile[2] or ''
		alt = zeile[3] or ''
		titel = zeile[4] or url
		_ = _ .. '<tr><td>[[' .. url.. '|' .. titel .. ']]</td><td>' .. neu .. '</td><td>' .. alt .. '</td></tr>'
	end
	
	_ = '<table class="wikitable sortable"><tr><th style="text-align: left;">Titel</th><th># neu</th><th># alt</th></tr>' .. _ .. '</table>'
	return _
end

function trim(s)
  -- from PiL2 20.4
  return (s:gsub("^%s*(.-)%s*$", "%1"))
end

return p

Pdf

LSR

Lilypond

Math

Code

<includeonly><onlyinclude>

== Hili == <!-- {{#tag:syntaxhighlight|{{Module:Hili}}|lang=lua}} --> == Gotteslob == {{#tag:syntaxhighlight|{{Module:Gotteslob}}|lang=lua}} == Pdf == <!-- {{#tag:syntaxhighlight|{{Module:Pdf}}|lang=lua}} --> == LSR == <!-- {{#tag:syntaxhighlight|{{Module:LSR}}|lang=lua}} --> == Lilypond == <!-- {{#tag:syntaxhighlight|{{Module:Lilypond}}|lang=lua}} --> == Math == <!-- {{#tag:syntaxhighlight|{{Module:Math}}|lang=lua}} -->

</onlyinclude></includeonly>{{Dokumentation}}