Home
Random
Log in
Settings
About Mango's Lewd Diplomacy: Official Wiki
Disclaimers
Mango's Lewd Diplomacy: Official Wiki
Search
Editing
Module:Lua
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!
------------------------------------------------------------------------------ -- -- Module:Lua -- -- This module implements Template:Lua. ------------------------------------------------------------------------------ local mTableTools = require('Module:TableTools') local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') local p = {} function p.main(frame) local args = getArgs(frame, { wrappers = 'Template:Lua' }) return p._main(args) end function p._main(args) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules) local trackingCategories = p.renderTrackingCategories(args, modules) return box .. trackingCategories end --------------------------------------------- --function p.renderBox(modules) -- local html = mw.html.create('div') -- :addClass('c-sidebar') -- if #modules < 1 then -- html -- :tag('strong') -- :addClass('error') -- :wikitext('Error: no modules specified') -- else -- local title = mw.title.getCurrentTitle() -- if title.subpageText == 'doc' then -- title = title.basePageTitle -- end -- local header = html:tag('div') -- :cssText('text-align: center;') -- :tag('p') -- :wikitext('[[File:Lua programming language logo.svg|40px|alt=Lua logo|link=]]') -- :done() -- if title.contentModel == 'Scribunto' then -- html -- :tag('p') -- :wikitext('This module depends on the following other modules:') -- else -- html -- :tag('p') -- :wikitext('This template uses the following modules:') -- end -- -- local list = html:tag('ul') -- for _, module in ipairs(modules) do -- list -- :tag('li') -- :wikitext(string.format('[[:%s]]', module)) -- end -- end -- return tostring(html) --end --------------------------------------------- function p.renderBox(modules) local box = '<div style="width:344px; height:auto; float:right; clear:none; text-align:left" class="eu4box"><div class="heading">' local header local content = '' if #modules < 1 then header = "Error: no modules specified" else local title = mw.title.getCurrentTitle() if title.subpageText == 'doc' then title = title.basePageTitle end if title.contentModel == 'Scribunto' then header = "This module depends on the following other modules:" else header = "This template uses the following modules:" end for _, module in ipairs(modules) do content = content .. string.format('[[:%s]]<br>', module) end end box = box .. '<div style="padding: 3px 0px; text-align:left">' .. header .. '</div></div>' if #modules > 0 then box = box .. content end box = box .. '</div>' return box end function p.renderTrackingCategories(args, modules, title) if yesno(args.nocat) then return '' end local cats = {} local subpageBlacklist = { doc = true, sandbox = true, sandbox2 = true, testcases = true } title = title or mw.title.getCurrentTitle() if not subpageBlacklist[title.subpageText] then local protCatName if title.namespace == 10 then local category = args.category or 'Lua-based templates' cats[#cats + 1] = category protCatName = 'Templates using under-protected modules' elseif title.namespace == 828 then protCatName = 'Modules depending on under-protected modules' end if not args.noprotcat and protCatName then local protLevels = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } local currentProt if title.id ~= 0 then -- id is 0 (page does not exist) if am previewing before creating a template. currentProt = title.protectionLevels["edit"][1] end if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end for i, module in ipairs(modules) do local moduleProt = mw.title.new(module).protectionLevels["edit"][1] if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end if moduleProt < currentProt then cats[#cats + 1] = protCatName break end end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end return p
Summary:
Please note that all contributions to Mango's Lewd Diplomacy: Official Wiki are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) (see
Mango's Lewd Diplomacy Official Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, 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.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Lua/doc
(
edit
)