Modul:Note
Dokumentation für das Modul Note[Ansicht] [Bearbeiten] [Versionsgeschichte] [ ]
Dieses Modul wird auf vielen Seiten benutzt, und Änderungen werden projektweit sofort wahrgenommen. Bitte teste Änderungen vorher im /Sandkasten oder in deinem Benutzernamensraum. Die getestete Änderung sollte dann in einem einzigen Edit auf dieser Seite eingefügt werden. Bitte diskutiere Änderungen zuerst auf der Diskussionsseite bevor du sie implementierst. |
Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf Note/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
Verwendung
Das Modul wird direkt von der Vorlage {{Anmerkung}} aufgerufen. Parameterbeschreibung siehe dort.
Versionsbezeichnung auf Wikidata: 2021-08-29
Benötigte weitere Module
Hinweise
- Die obige Dokumentation wurde aus der Seite Modul:Note/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
-- adding a type to a reference
-- module import
local ni = require( 'Module:Note/i18n' )
-- module variable
local nt = {
-- administration
moduleInterface = {
suite = 'Note',
serial = '2021-08-29',
item = 108306205
}
}
-- check if arg is set: not nil or empty
local function isSet( arg )
return arg and arg ~= '';
end
local errorMsgs = {}
-- add error message to errorMsgs table
local function addErrorMsg( msg )
table.insert( errorMsgs, msg )
end
-- get errorMsgs table as string
local function getErrorMsgs()
local result = table.concat( errorMsgs, ' ' )
if result ~= '' then
result = result .. ' '
end
return result
end
-- check for possible arguments against list table
local function checkArgs( frameArgs, list )
local complete = {}
local args = {}
for key, value in pairs( list ) do
if type( value ) == 'table' then
for _, value2 in ipairs( value ) do
complete[ value2 ] = key
end
elseif value ~= '' then
complete[ value ] = key
else
complete[ key ] = key
end
end
local unknownArgs = false
local duplicateArgs = false
for key, value in pairs( frameArgs ) do
if complete[ key ] then
if args[ key ] then
duplicateArgs = true
end
-- frameArgs[ key ] cannot be nil
args[ complete[ key ] ] = mw.text.trim( frameArgs[ key ] )
else
unknownArgs = true
end
end
if unknownArgs then
addErrorMsg( ni.maintenance.unknownArgs )
end
if duplicateArgs then
addErrorMsg( ni.maintenance.duplicateArgs )
end
return args
end
local function checkType( aType )
if not isSet( aType ) then
return nil
end
if ni.types[ aType ] then
return aType
end
for key, value in pairs( ni.types ) do
if type( value ) == 'table' then
for _, value2 in ipairs( value ) do
if aType == value2 then
return key
end
end
elseif value ~= '' and aType == value then
return key
end
end
addErrorMsg( ni.maintenance.unknownType )
return nil
end
function nt.note( frame )
local args = checkArgs( frame:getParent().args, ni.args )
args.type = checkType( args.type ) or ni.defaultType
if not isSet( args.text ) then
args.text = ni.maintenance.missingText
end
return tostring( mw.html.create( 'cite' )
:attr( 'class', ni.citeClass .. ' ' .. args.type )
:wikitext( args.text )
) .. getErrorMsgs()
end
return nt