Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Load WikiProject Modules
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} local function standardicon(modulename) -- Take modulename as input, returns corresponding icon filename -- Returns default icon if no icon is defined -- Grow the library! Add default icons as needed by adding this line below: -- ['MODULENAME'] = 'FILE NAME.ext', local index = { ['default'] = 'Beta icon.svg', -- default if nothing matches ['About'] = 'Information Noun 176431.svg', ['About us'] = 'Information Noun 176431.svg', ['Alerts'] = 'Bell icon.svg', ['Article alerts'] = 'Bell icon.svg', ['Article Alerts'] = 'Bell icon.svg', ['Partners'] = 'Handshake noun.svg', ['Partnerships'] = 'Handshake noun.svg', ['Discussions'] = 'Speechbubbles icon.svg', ['Events'] = 'Simpleicons Business calendar-with-a-clock-time-tools.svg', -- Is this PD-shapes? ['External Links'] = 'Link icon.svg', ['External links'] = 'Link icon.svg', ['Links'] = 'Link icon.svg', ['Maps'] = 'MapPin.svg', ['Metrics'] = 'ArticleCheck.svg', ['News'] = 'Calendar icon 2.svg', ['Offline App'] = 'Offline logo.svg', ['Press'] = 'Cite newspaper.svg', ['Recent changes'] = 'Clock icon.svg', ['Recent Changes'] = 'Clock icon.svg', ['Recognized content'] = 'RibbonPrize.svg', ['Recognized Content'] = 'RibbonPrize.svg', ['Related Projects'] = 'Contributions icon.svg', -- Not for use for the update bot, special use case, that expands the page ['Related WikiProjects'] = 'Contributions icon.svg', ['Requests'] = 'Quotes icon.svg', ['Research'] = 'Microscope icon (black OCL).svg', ['Resources'] = 'Cite book.svg', ['Showcase'] = 'RibbonPrize.svg', ['Tasks'] = 'ListBullet.svg', ['Tools'] = 'Octicons-tools-minor.svg', ['Translations'] = 'Translation icon.svg', ['Watchlist'] = 'OpenEye icon.svg', ['Worklists'] = 'ListBullet.svg', } for t, fn in pairs(index) do if t == modulename then return fn end end return index['default'] end local function editlinktest(modulename) local no_edit_links = {'Discussions', 'Alerts', 'Showcase', 'Related WikiProjects'} -- no edit link for these standard modules for _, l in pairs(no_edit_links) do if l == modulename then return 'no' end end return 'yes' end function p.build(frame) local title = '' local intro = '' local image = '' local color = '#6af' -- default value local displaymode = 'normal' -- default value local modules = {} local id for key, value in pairs(frame:getParent().args) do -- iterate through arguments, pick out values if key == 'title' then title = value elseif key == 'intro' then intro = value elseif key == 'image' then image = value elseif key == 'color' then color = value elseif key == 'displaymode' then displaymode = value elseif string.find(key, 'module') ~= nil then -- matches module1, module2, etc. id = string.gsub(key, 'module', '') id = tonumber(id) modules[id] = value end end -- Rendering table of contents and body local toc_args = { width = 80, height = 55, ['font-size'] = '100%', ['margin'] = 0 } -- passed into Image Array module local body = "" -- Load a Table of Contents entry, transclude module, for each named module local counter = 0 local moduletitle local moduletitle_encoded for _, module in pairs(modules) do counter = counter + 1 toc_args['image' .. counter] = standardicon(module) toc_args['alt' .. counter] = module if displaymode == "womeninred" then if module == "Metrics" or module == "Showcase" or module == "About us" or module == "Press" or module == "Research" or module == "External links" then toc_args['link' .. counter] = "Wikipedia:WikiProject Women in Red/" .. module else toc_args['link' .. counter] = "#" .. module end else toc_args['link' .. counter] = "#" .. module end toc_args['caption' .. counter] = "[[" .. toc_args['link' .. counter] .. "|" .. module .. "]]" if module == "Related WikiProjects" then -- Load the appropriate subpage of [[Wikipedia:Related WikiProjects]] moduletitle = 'Related WikiProjects' .. '/' .. title moduletitle_encoded = string.gsub('Wikipedia:' .. moduletitle, ' ', '_') body = body .. "\n" .. frame:expandTemplate{ title = 'WPX header', args = { module, color = color, modulename = moduletitle_encoded, editlink = editlinktest(module) } } body = body .. "\n" .. frame:expandTemplate{ title = "Wikipedia:Related WikiProjects/" .. title, args = {color} } else if displaymode == "normal" or ( displaymode == "womeninred" and module ~= "Metrics" and module ~= "Showcase" and module ~= "About us" and module ~= "Press" and module ~= "Research" and module ~= "External links" ) then moduletitle = title .. '/' .. module moduletitle_encoded = string.gsub('Wikipedia:' .. moduletitle, ' ', '_') body = body .. "\n" .. frame:expandTemplate{ title = 'WPX header', args = { module, color = color, modulename = moduletitle_encoded, editlink = editlinktest(module) } } if mw.title.makeTitle('Wikipedia', moduletitle).exists == true then body = body .. "\n" .. frame:expandTemplate{ title = 'Wikipedia:' .. moduletitle, args = {color} } .. "\n<div style='clear:both;'></div>" else -- Is module in question a Standard Module? If so, load the template with corresponding editintro if mw.title.makeTitle('Template', 'WPX module/' .. module).exists == true then preload = '&preload=Template:WPX_module/' .. string.gsub(module, ' ', '_') editintro = '&editintro=Template:WPX_editintro/' .. string.gsub(module, ' ', '_') else preload = '' -- no preload editintro = '&editintro=Template:WPX_editintro/Generic' -- generic editintro end -- Create notice create_url = '//en.wikipedia.org/wiki/Wikipedia:' .. string.gsub(moduletitle, ' ', '_') .. '?action=edit' .. preload .. editintro create_button = frame:expandTemplate{ title = 'Template:Clickable button 2', args = {'Create Module', url = create_url, class = 'mw-ui-progressive' } } body = body .. '[[Wikipedia:' .. moduletitle .. ']] does not exist. ' .. create_button end end end end toc_args['perrow'] = counter -- sets length of image array to the number of icons local toc = "<div style='margin-bottom:4em;'>" .. require('Module:Image array')._imagearray(toc_args) .. "</div><div style='clear:both;'></div>" -- Adding header local header = "__NOTOC__\n<div style='display: flex; flex-flow: row wrap;'>" -- top container if displaymode == "womeninred" then header = header .. "<div style='flex: 1 0; border-top: solid .7em " .. color .. ";'>" -- intro else header = header .. "<div style='flex: 1 0; padding-bottom: 3em; border-top: solid .7em " .. color .. ";'>" -- intro end -- Adding project icon header = header .. "<div class='nomobile' style='float:left; margin-top: 1em; margin-right: 2em; margin-bottom: 1em; text-align: center;'>" header = header .. image .. "</div>" -- Adding project title header = header .. "<div style='font-size: 120%; padding: 0;'>" -- header header = header .. "<h1 style='font-weight: bold; border-bottom: none; margin:0; padding-top:0.5em;'>" .. title .. "</h1></div>" if displaymode == "womeninred" then header = header .. toc end -- Adding intro blurb header = header .. "<div style='margin-top: 1em; font-size: 110%;'>" header = header .. intro .. "</div>" -- Adding announcement section if mw.title.makeTitle('Wikipedia', title .. "/" .. "Announcements").exists == true then header = header .. frame:expandTemplate{ title = 'Wikipedia:' .. title .. "/" .. "Announcements", args = { } } end header = header .. "</div>" -- Adding member box header = header .. "<div style='flex: 0 1 20em;'>" header = header .. frame:expandTemplate{ title = 'WPX participants box', args = { } } header = header .. "</div>" -- Closing off header header = header .. "</div>" -- Assembling parts local contents if displaymode == "womeninred" then contents = header .. body else contents = header .. toc .. body end return contents end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Lua
(
edit
)
Template:Tl
(
edit
)
Module:Load WikiProject Modules/doc
(
edit
)