Module:ListSubpages: Difference between revisions
Appearance
imported>Xena Fixed last issue |
imported>Xena Made it more versatile. Last edit! |
||
| Line 5: | Line 5: | ||
function p.list( frame ) | function p.list( frame ) | ||
local page = frame.args[1] or frame.args['page'] or | local page = frame.args[1] or frame.args['page'] or tostring(mw.title.getCurrentTitle()) | ||
if page == '' then page = | -- empty parameter check | ||
if page == '' then page = tostring(mw.title.getCurrentTitle()) end | |||
-- get parent page name | |||
page = mw.text.split(page, '/', true)[1] | |||
-- get subpages | |||
local allSubpages = frame:callParserFunction('SUBPAGES', { page, sep = "|" }) | local allSubpages = frame:callParserFunction('SUBPAGES', { page, sep = "|" }) | ||
allSubpages = mw.text.split(allSubpages, "|") | allSubpages = mw.text.split(allSubpages, "|") | ||
result = {} | local result = {} | ||
-- add main page | -- add main page | ||
| Line 25: | Line 29: | ||
end end | end end | ||
return table.concat(result) | |||
end | end | ||
Revision as of 09:05, 4 September 2022
Documentation for this module may be created at Module:ListSubpages/doc
local p = {} --p stands for package
function p.list( frame )
local page = frame.args[1] or frame.args['page'] or tostring(mw.title.getCurrentTitle())
-- empty parameter check
if page == '' then page = tostring(mw.title.getCurrentTitle()) end
-- get parent page name
page = mw.text.split(page, '/', true)[1]
-- get subpages
local allSubpages = frame:callParserFunction('SUBPAGES', { page, sep = "|" })
allSubpages = mw.text.split(allSubpages, "|")
local result = {}
-- add main page
result[#result+1] = [==[<div style="display:inline-block; position: relative; background-color: #d97308; width: 80px; color:white; text-align: center; padding:5px; border-radius: 5px; margin-right: 5px; ">[[]==]
result[#result+1] = page
result[#result+1] = [==[|<span style="color:white;">Main</span>]]</div>]==]
-- add subpages
if #allSubpages[1] > 0 then for i = 1, #allSubpages do
result[#result+1] = [==[<div style="display:inline-block; position: relative; background-color: #d97308; width: 80px; color:white; text-align: center; padding:5px; border-radius: 5px; margin-right: 5px; ">[[]==]
result[#result+1] = allSubpages[i]
result[#result+1] = [==[|<span style="color:white;">]==]
result[#result+1] = string.sub( allSubpages[i], #page+2 )
result[#result+1] = '</span>]]</div>'
end end
return table.concat(result)
end
return p