Zum Inhalt springen

Modul:SimpleLinkList

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. Februar 2022 um 22:14 Uhr durch Vollbracht (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation

Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus


--[=[ SimpleLinkList 2022-02-10
simple link list generators for navigation in simmilar pages
Param for all methods: lemmas, comma separated
* culled: links to lemmas, hyphen separated, current page culled
* highlighted: links to lemmas, hyphen separated, current page highlighted
* stacked: links to lemmas, line break separated, current page culled
* stackedHL: links to lemmas, line break separated, current page highlighted
]=]

p = {service = {}}

p.service.list = function(frame, delimiter, len, format)
	if frame.args[1] == nil then
		return frame:preprocess('[[Modul:SimpleLinkList]]')
	end
	local Param = mw.text.split(frame.args[1], ',')
	local result = ""
	local title = mw.title.getCurrentTitle()
	for _, v in ipairs(Param) do
		local elm = string.gsub(v, '^%s*(.-)%s*$', '%1')
		if elm ~= "" then
			if elm == title.fullText or elm == title.text then
				result = result .. string.format(format, elm)
			else
				result = result .. delimiter ..
				         frame:preprocess('[[' .. elm .. ']]')
			end
		end
	end
	return mw.ustring.sub(result, len)
end

p.culled = function(frame)
	return p.service.list(frame, ' - ', 4, '')
end

p.stacked = function(frame)
	return p.service.list(frame, '<br />', 7,'')
end

p.highlighted = function(frame)
	return p.service.list(frame, ' - ', 4,
	                      ' - <span class="highlight">%s</span>')
end

p.stackedHL = function(frame)
	return p.service.list(frame, '<br />', 7,
	                      '<br /><span class="highlight">%s</span>')
end

return p