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

Anwendung

Der Modul stellt grundlegende Funktionen für die Module Modul:LinkPhone, Modul:LinkMail, Modul:LinkSkype und Modul:LinkISBN zur Verfügung.

Versionsbezeichnung auf Wikidata: 2023-12-09 Ok!

Verwendung in anderen Modulen

Dieses Modul ist notwendig für die Ausführung folgender Module. Bei Anpassungen sollte die Funktionstüchtigkeit der folgenden Module geprüft werden. Benutze dazu auch diese Tracking-Kategorie um Fehler zu finden, die sich dann auf Artikel auswirken:

Benötigte weitere Module

Dieses Modul benötigt folgende weitere Module: Link utilities/i18n

Funktionen

function lu.splitItems( s, delimiters, defaultDelimiter ) 
s: string;
delimiters: array;
defaultDelimiter: string;

Die Funktion spaltet die Zeichenkette s in ihre Einzelbestandteile auf und übergibt das Ergebnis in einem Array. Als Trenner dienen sowohl der defaultDelimiter (bei fehlender Angabe Komma) als auch die zusätzlichen Trenner delimiters. Trenner in Klammerausdrücken werden nicht berücksichtigt.

function lu.extractComment( s ) 
s: string;

Die Funktion trennt einen in Klammern formulierten Kommentar von der davor stehenden Zeichenkette. Es werden zwei Ergebnisse übergeben: die kommentarlose Zeichenkette und der Kommentar.

function lu.errorInfo( catPrefix, aCat, aClass ) 
catPrefix: string;
aCat: string;
aClass: string;
Die Funktion gibt die Fehlerausschrift aCat im Haupt- oder Modul-Namenraum aus und legt eine gleichnamige Wartungskategorie an. Die Zeichenkette mit der Fehlerausschrift wird von einem <span>-Tag mit der Klasse aClass umschlossen. Fehlt die Klassenangabe, so wird die Klasse error verwendet. Der Modulparameter demo legt fest, ob die Kategorie angelegt oder nur verlinkt werden soll.
Hinweise
-- module variable and administration local lu = { 	moduleInterface = { 		suite  = 'Link utilities', 		serial = '2023-12-09', 		item   = 65228027 	} }  -- module import local li = require( 'Module:Link utilities/i18n' ) -- require( 'strict' )  -- split separate items like numbers function lu.splitItems( s, delimiters, defaultDelimiter ) 	defaultDelimiter = defaultDelimiter or ','  	-- wrap delimiters with zero marks 	s = mw.ustring.gsub( s, defaultDelimiter, '\0%1\0' );  	-- substitude delimiters 	for i, delimiter in ipairs( delimiters ) do 		s = mw.ustring.gsub( s, delimiter, '\0%1\0' ); 		-- remove zero marks from inside parentheses () 		s =	mw.ustring.gsub( s, '%b'.. li.texts.parentheses, 			function( t ) return t:gsub( '%z', '' ) end ) 		-- replace delimeters by the default delimiter 		s = mw.ustring.gsub( s, '\0' .. delimiter .. '\0', '\0' .. defaultDelimiter .. '\0' ); 	end  	-- results to an array 	s = mw.text.split( s, '\0' .. defaultDelimiter .. '\0' ) 	for i = #s, 1, -1 do 		s[ i ] = mw.text.trim( s[ i ] ) 		if s[ i ] == '' then  			table.remove( s, i ) 		end 	end 	return s end  -- extract comment written in parentheses -- remove spaces between value like phone numbers and comment function lu.extractComment( s ) 	local comment = '' 	if s:find( '(', 1, true ) then 		local t = mw.ustring.gsub( s, '^.*(%b' .. li.texts.parentheses .. ')$', '%1' ) 		if t ~= s then 			comment = t 			s = mw.ustring.gsub( s, '[%s%c]*%b' .. li.texts.parentheses .. '$', '' ) 		end 	end 	return s, comment end  return lu