Module:Lilytest

local p = {} local t = require('Module:Arguments') --

function p.urltest(frame) --	local was = frame.args.seite or frame:getParent.args.seite or 'Lua' -- Seitentitel local ns = frame.args.ns or frame:getParent.args.ns or ''           -- Namensraum local namesp = trim(ns) or 'Artikel' local seite = mw.title.new(was, ns) local myserver = mw.site.server local mypath  = mw.site.scriptPath local myuri = mw.uri.fullUrl( seite.text ) local myurl = myuri.protocol .. myuri.host .. myuri.path .. ' tostring ' .. tostring(myuri) local myns = seite.namespace if myns == 0 then return 'im Artkelnamensraum' else return 'nicht im AR ' .. myns .. ' *** ' .. ns	end if 1 then return '\nserver: ' .. myserver .. '\nPfad: ' .. mypath .. '\nfullurl: ' .. myurl end local _ = seite.id if _ == 0 then return 'Seite ' .. was .. ' existiert nicht im Namensraum ' .. namesp end namesp = seite.nsText local fulln = seite.prefixedText --return 'Die Seite ' .. fulln .. ' hat die ID ' .. _ end

function p.dpl(frame) -- https://www.mediawiki.org/wiki/Extension:DynamicPageList_(Wikimedia) -- wertet die Erweiterung  aus -- 	local a = frame.args             -- direkt per #invoke: übergeben if empty(a) then a = frame:getParent.args or { } end local ns = mw.title.getCurrentTitle.namespace --if ns ~= 0 then return '' end -- nur im Artikelnamensraum local taga = ' ' -- das Tag wird ausgewertet local tagb = ' ' -- muss anders erfolgen, da andere Logik -- Parameter, die mit c beginnen: category -- Patameter, die mit n beginnen: notcategory -- alle anderen Parameter wie gewohnt local parm, fletter, ausgabe, tag = , , , 

for k, v in pairs(a) do                        -- alle Parameter werden gesammelt und in die tagparms Tabelle übergeben parm = trim(v) fletter = parm:sub(1,1):lower  -- Anfangsbuchstaben ausgabe = ausgabe .. ' index: ' .. k .. ' inhalt: ' .. fletter   -- für Testzwecke if fletter == 'c' then    -- Kategorie tag = tag .. '\ncategory = ' .. parm elseif fletter == 'n' then -- Not Kategorie tag = tag .. '\nnotcategory = ' .. parm else -- anderer Parameter tag = tag .. '\n' .. k .. ' = ' .. parm end end

--ausgabe = 'Parameterliste: ' .. table.concat(tagparms, ", ") return tag -- frame:extensionTag { name = tag, content = content, args = tagparms } end

function p.monat(frame) local a = frame.args             -- direkt per #invoke: übergeben local b = frame:getParent.args -- an die Vorlage übergebene Parameter local myname = mw.title.getCurrentTitle.text:lower local moname = { 'Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' } local monat = '' local jahr = string.match(myname, ('%d%d%d%d')) if jahr == '' then return 'kein Jahr gefunden in ' .. myname end -- kein Jahr gefunden for i = 1, 12 do		monat = moname[i] if string.find(myname, monat:lower) then --break return '' end end return '' end

function p.nsliste(frame) --	--erzeugt eine Tabelle mit Seitennummer und Namen in einem Namensraum --sehr teuer in der Ausführung, daher werden nur 100 Listeneinträge --inzwischen habe ich die Zahl der zulässigen Aufrufe in der LocalSettings.php auf 20000 erhöht, also praktisch unlimitiert --Parameter: ab/abwo, Zahl ab der gestartet wird local a = frame.args             -- direkt per #invoke: übergeben if empty(a) then a = mw.getCurrentFrame.args end -- an die Vorlage übergebene Parameter

local _ = '' local seite, sname, ns, nstitel local abwo  = tonumber(a.ab or a.abwo) or 1 local bishin = tonumber(a.bis or a.bishin) or 100 local myns  = string.lower(trim(a.ns) or '') local __ = '\nmyns: ' .. myns for i = abwo, bishin do		seite = mw.title.new(i) if seite then nstitel = string.lower(seite.nsText) ns     = tostring(seite.namespace) if myns == nstitel or myns == ns then _ = _ .. ' ' .. i .. ' ' .. seite.text .. '  \n' end --__ = __ .. '\nns: ' .. ns .. ' nstitel: ' .. nstitel end end _ = ' '	return _ --.. __ end

function p.nrliste(frame) --	--erzeugt eine Tabelle mit Seitennummer und Namen --sehr teuer in der Ausführung, daher werden nur 100 Listeneinträge --inzwischen habe ich die Zahl der zulässigen Aufrufe in der LocalSettings.php auf 20000 erhöht, also praktisch unlimitiert --Parameter: ab/abwo, Zahl ab der gestartet wird local a = frame.args             -- direkt per #invoke: übergeben if empty(a) then a = mw.getCurrentFrame.args end -- an die Vorlage übergebene Parameter

local _ = '' local seite, sname, ns, nstitel local abwo = tonumber(a.ab or a.abwo) or 1

for i = abwo, abwo + 98 do		seite = mw.title.new(i) if seite then nstitel=seite.nsText if nstitel == '' then nstitel = 'Artikel' end _ = _ .. ' ' .. i .. ' ' .. seite.text .. '  ' .. nstitel .. ' \n' end end _ = ' '	return _ end

function p.getid(frame) --	local was = frame.args.seite or frame:getParent.args.seite or 'Lua' -- Seitentitel local ns = frame.args.ns or frame:getParent.args.ns or ''           -- Namensraum local namesp = trim(ns) or 'Artikel' local seite = mw.title.new(was, ns) local _ = seite.id if _ == 0 then return 'Seite ' .. was .. ' existiert nicht im Namensraum ' .. namesp end namesp = seite.nsText local fulln = seite.prefixedText return 'Die Seite ' .. fulln .. ' hat die ID ' .. _ end -- function p.html(frame) local mylink = mw.html.create( 'a' ) mylink :attr( 'id', 'testdiv' ) :attr( 'href', 'https://publictestwiki.com') :attr('target', '_blank') :wikitext( 'Link Testtext' ) return tostring( mylink ) end

function p.htmlx(frame) local mylink = mw.html.create( 'a' ) mylink :attr( 'id', 'testdiv' ) :attr( 'href', 'https://publictestwiki.com') :attr('target', '_blank') :wikitext( 'Link Testtext' ) return mylink end

function p.simple(frame) return 'Link Testtext' end

function empty (self) -- es gibt keine eingebaute Funktion, um zu überprüfen, ob eine Tabelle leer ist -- diese Funktion liefert true, wenn die Tabelle leer ist -- hilfreich bei frame.args oder frame:parent.args etc.   for _, _ in pairs(self) do        return false end return true end

function trim(s) -- entfernt Weißraum an den beiden Enden des Strings -- wenn kein String als Parameter übergeben wird, wird die Eingabe unverändert zurück gegeben if type(s) ~= 'string' then return s end -- falls kein string return (s:gsub("^%s*(.-)%s*$", "%1")) end

return p