Jump to content

Module:ListSubpages: Difference between revisions

From Monster Girl Encyclopedia
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 mw.text.split(tostring(mw.title.getCurrentTitle()), '/', true)[1]
     local page = frame.args[1] or frame.args['page'] or tostring(mw.title.getCurrentTitle())
     if page == '' then page = mw.text.split(tostring(mw.title.getCurrentTitle()), '/', true)[1] end
    -- 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)
  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