Documentation for this module may be created at Module:Similar categories/doc
require("strict");
local tablesModule = require('Module:Tables')
local listModule = require('Module:List')
local cargo = mw.ext.cargo
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.similar_categories(frame)
local pagename = mw.title.getCurrentTitle().text
local class
if string.find(pagename, "[Rr]oller coasters") ~= nil then
class = "[Rr]oller coaster"
elseif string.find(pagename, "[Pp]owered coasters") ~= nil then
class = "[Pp]owered coaster"
elseif string.find(pagename, "[Aa]lpine coasters") ~= nil then
class = "[Aa]lpine coaster"
elseif string.find(pagename, "[Rr]ides") ~= nil then
class = "[Rr]ide"
elseif string.find(pagename, "[Ww]ater slides") ~= nil then
class = "[Ww]ater slide"
elseif string.find(pagename, "[Aa]musement parks") ~= nil then
class = "[Aa]musement park"
end
local cat_name
local output_list = {}
if class == nil then
error("No class detected in category title - this template can't do anything.")
else
cat_name = string.gsub(pagename, class, "alpine coaster")
output_list[1] = "[[:Category:" .. cat_name .. "|Alpine]] (" .. mw.site.stats.pagesInCategory( cat_name, "all" ) .. ")"
cat_name = string.gsub(pagename, class, "powered coaster")
output_list[2] = "[[:Category:" .. cat_name .. "|Powered]] (" .. mw.site.stats.pagesInCategory( cat_name, "all" ) .. ")"
cat_name = string.gsub(pagename, class, "roller coaster")
output_list[3] = "[[:Category:" .. cat_name .. "|Roller]] (" .. mw.site.stats.pagesInCategory( cat_name, "all" ) .. ")"
cat_name = string.gsub(pagename, class, "water slide")
output_list[4] = "[[:Category:" .. cat_name .. "|Water slide]] (" .. mw.site.stats.pagesInCategory( cat_name, "all" ) .. ")"
cat_name = string.gsub(pagename, class, "ride")
output_list[5] = "[[:Category:" .. cat_name .. "|Other attractions]] (" .. mw.site.stats.pagesInCategory( cat_name, "all" ) .. ")"
cat_name = string.gsub(pagename, class, "amusement park")
output_list[6] = "[[:Category:" .. cat_name .. "|Parks]] (" .. mw.site.stats.pagesInCategory( cat_name, "all" ) .. ")"
end
return listModule.horizontal(output_list)
end
return p