Module:Lilytest: Difference between revisions

3,207 bytes added ,  2 years ago
m
no edit summary
mNo edit summary
mNo edit summary
 
(26 intermediate revisions by the same user not shown)
Line 1:
local p = {}
local t = require('Module:Arguments')
--{{#invoke:Lilytest|xxx|...}}
 
function p.urltest(frame)
--{{#invoke:Lilytest|getid|seite=|ns=}}
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 <dynamicpagelist> </dynamicpagelist> aus
-- {{#invoke:Lilytest|dpl}}
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 = '<dynamicpagelist>' -- das Tag <dynamicpagelist> wird ausgewertet
local tagb = '</dynamicpagelist>' -- 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 .. '<br>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 '[[Category:' .. jahr .. '|-' .. string.format("%02d", i) .. ']]'
end
end
return ''
end
 
function p.nsliste(frame)
127

edits