Dokumentation für das Modul MarkerTypesList[Ansicht] [Bearbeiten] [Versionsgeschichte] [Aktualisieren]

Anwendung

Das Modul stellt eine Funktion für die Auflistung der Markertypen bereit.

Versionsbezeichnung auf Wikidata: 2023-04-29 Ok!

Benötigte weitere Module

Dieses Modul benötigt folgende weitere Module: Marker utilities/Types

Funktionsaufruf

Aufruf in Modulen

function ml.generateTableTypeList( frame )

liefert eine sortierbare Tabelle aller für die Vorlagen {{Marker}} und {{vCard}} einsetzbaren Typen. Die Tabelle zeigt die deutsche Übersetzung, die zugehörige Gruppe und die englische Typbezeichnung an.

Aufruf in Artikeln

{{#invoke:MarkerTypesList|generateTableTypeList}}
Hinweise
--[[
	Generates a list of marker types
]]--

-- Module variable and administration
local ml = {
	moduleInterface = {
		suite  = 'MarkerTypesList',
		serial = '2023-04-29',
		item   = 118040967
	}
}

-- Module import
local mt = require( 'Module:Marker utilities/Types' )

local types = {
	group = 'Gruppe',  -- type translations
	label = 'Beschriftung',
	type  = 'Typ'
}

-- Language-dependent sorting substitutes
local substitutes = {
	{ l = 'ä', as = 'a' },
	{ l = 'ö', as = 'o' },
	{ l = 'ü', as = 'u' },
	{ l = 'ß', as = 'ss' }
}

local function convertForSort( s )
	s = mw.ustring.lower( s )
	for i, obj in ipairs( substitutes ) do
		s = mw.ustring.gsub( s, obj.l, obj.as )
	end
	return s
end

-- generates a table with type documentation
function ml.generateTableTypeList( frame )
	local label
	local rows = {}
	for key, value in pairs( mt.types ) do
		label = value.label or value.alias or key
		if type( label ) == 'table' then
			label = label[ 1 ] or ''
		end
		table.insert( rows, ( '<tr><td>%s</td><td>%s</td><td>%s</td></tr>' ):format (
			label:gsub( '_', ' ' ), value.group, key:gsub( '_', ' ' ) ) )
	end
	table.sort( rows,
		function( a, b )
			return convertForSort( a ) < convertForSort( b )
		end
	)
	table.insert( rows, 1, '<table class="wikitable sortable multiline" cellspacing="0">\n'
		.. ( '<tr><th>%s</th><th>%s</th><th>%s</th></tr>' ):format (
			types.label, types.group, types.type )
		)
	table.insert( rows, '</table>' )
	return table.concat( rows, '\n' )
end

return ml