Modul:Link utilities
| 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 Link utilities/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
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
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:
- LinkISBN • LinkPhone • LinkSkype • LinkMail
- Modul benötigt das Modul Link utilities – Wartungskategorie, in der nochmals alle Module gelistet sind, die von diesem Modul abhängig sind.
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;
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.- Die obige Dokumentation wurde aus der Seite Modul:Link utilities/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
-- 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