Modul:Wiki: Unterschied zwischen den Versionen

2.020 Bytes hinzugefügt ,  Gestern um 21:34
+ p.getHiddenCategories()
(getArgs() ohne Lücken zurück zu lassen)
(+ p.getHiddenCategories())
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 16: Zeile 16:
local split = str.split2(pagename, "/")
local split = str.split2(pagename, "/")
return split[#split] -- letztes Element in der table nach letztem Slash
return split[#split] -- letztes Element in der table nach letztem Slash
end
function p.namespace()
local fullpagename = p.fullpagename()
local split = str.split2(fullpagename, ":")
if #split == 1 then
return ""
end
return split[1]
end
end


Zeile 24: Zeile 33:
-- fullpagename
-- fullpagename
pagesnames.fullpagename = tostring(mw.title.getCurrentTitle())
pagesnames.fullpagename = tostring(mw.title.getCurrentTitle())
-- namespace
local split = str.split2(pagesnames.fullpagename, ":")
if #split == 2 then
pagesnames.namespace = split[1]
else
pagesnames.namespace = ""
end
-- pagename
-- pagename
local split = str.split2(pagesnames.fullpagename, ":")
pagesnames.pagename = split[#split] -- letztes Element in der table nach Doppelpunkt
pagesnames.pagename = split[#split] -- letztes Element in der table nach Doppelpunkt
-- subpagename
-- subpagename
Zeile 33: Zeile 48:
if type(table) == "table" then
if type(table) == "table" then
table.fullpagename = pagesnames.fullpagename
table.fullpagename = pagesnames.fullpagename
table.namespace = pagesnames.namespace
table.pagename = pagesnames.pagename
table.pagename = pagesnames.pagename
table.subpagename = pagesnames.subpagename
table.subpagename = pagesnames.subpagename
Zeile 39: Zeile 55:
-- mw.logObject(pagesnames)
-- mw.logObject(pagesnames)
return pagesnames
return pagesnames
end
function p.namespace()
local fullpagename = p.fullpagename()
local split = str.split2(fullpagename, ":")
if #split == 1 then
return ""
end
return split[1]
end
end


Zeile 55: Zeile 62:


function p.getArgs(args, argslist)
function p.getArgs(args, argslist)
-- liefert entweder die in argslist angegebenen Agrumente zurück
-- oder ohne argslist werden alle Argumente rückgeliefert
-- dabei werden leere ("") Argumente entfernt und ein empty-Flag rückgeliefert
local result, empty = {}, true
local result, empty = {}, true
if argslist ~= nil then -- mit argslist
if type(argslist) == "table" then -- mit argslist
for _, a in ipairs(argslist) do
for _, a in ipairs(argslist) do
local v = args[a] or ""
local v = args[a] or ""
Zeile 152: Zeile 162:
-- mw.log("textLimit(\"" .. text .. "\", " .. limit .. ")=\"" .. text_limited .. "\"")
-- mw.log("textLimit(\"" .. text .. "\", " .. limit .. ")=\"" .. text_limited .. "\"")
return text_limited
return text_limited
end
function p.InsertFullpage(frame)
local page = frame:getParent().args[1] or ""
return insertPage(frame, page)
end
function p.InsertSubpage(frame)
local page = frame:getParent().args[1] or ""
if page ~= "" then
page = p.fullpagename() .. "/" .. page
return insertPage(frame, page)
end
end
function insertPage(frame, page)
local t = ""
if page ~= "" then
if p.pageExists(page) then
-- Abschnitt-Überschrift
local abschnittueberschrift = frame:getParent().args[2] or ""
abschnittueberschrift = tonumber(abschnittueberschrift) or ""
if abschnittueberschrift ~= "" then
abschnittueberschrift = string.rep("=", abschnittueberschrift)
t = t .. abschnittueberschrift ..
"[[" .. page .. "|" .. page .. "]]" ..
abschnittueberschrift .. "\n"
end
-- Seite einfügen
local template_page = page
if string.find(template_page, ":") == nil then
template_page = ":" .. template_page
end
t = t .. "{{" .. template_page .. "}}"
-- Bearbeiten-Link
if abschnittueberschrift == "" then
t = t .. "<div style=\"float:right\"><small>" ..
"<nowiki>[</nowiki>[[" .. page ..
"|Bearbeiten]]<nowiki>]</nowiki>" ..
"</small></div>"
end
else
t = t .. "<nowiki>[</nowiki>[[" .. page ..
"|" .. page .. " erstellen]]<nowiki>]</nowiki>"
end
t = frame:preprocess(t)
end
return t
end
function p.getHiddenCategories()
local query = mw.smw.ask{"[[HIDDENCAT::Ja]]", "?#-", mainlabel = "-"}
local hidden_categories = {}
for _, q in ipairs(query) do
hidden_categories[q[1]] = true -- Hybrid-Tabelle
table.insert(hidden_categories, q[1])
end
return hidden_categories
end
end


return p
return p