https://wiki.gm4.co/index.php?title=Module:Lua_banner&feed=atom&action=history
Module:Lua banner - Revision history
2024-03-29T11:22:44Z
Revision history for this page on the wiki
MediaWiki 1.41.0
https://wiki.gm4.co/index.php?title=Module:Lua_banner&diff=120&oldid=prev
TransportLayer: 1 revision imported: Wikipedia Infobox
2018-10-24T09:45:04Z
<p>1 revision imported: Wikipedia Infobox</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 09:45, 24 October 2018</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>
TransportLayer
https://wiki.gm4.co/index.php?title=Module:Lua_banner&diff=119&oldid=prev
wikipedia>Ahecht: Detect if on module page
2018-06-24T00:47:01Z
<p>Detect if on module page</p>
<p><b>New page</b></p><div>-- This module implements the {{lua}} template.<br />
local yesno = require('Module:Yesno')<br />
local mList = require('Module:List')<br />
local mTableTools = require('Module:TableTools')<br />
local mMessageBox = require('Module:Message box')<br />
<br />
local p = {}<br />
<br />
function p.main(frame)<br />
local origArgs = frame:getParent().args<br />
local args = {}<br />
for k, v in pairs(origArgs) do<br />
v = v:match('^%s*(.-)%s*$')<br />
if v ~= '' then<br />
args[k] = v<br />
end<br />
end<br />
return p._main(args)<br />
end<br />
<br />
function p._main(args)<br />
local modules = mTableTools.compressSparseArray(args)<br />
local box = p.renderBox(modules)<br />
local trackingCategories = p.renderTrackingCategories(args, modules)<br />
return box .. trackingCategories<br />
end<br />
<br />
function p.renderBox(modules)<br />
local boxArgs = {}<br />
if #modules < 1 then<br />
boxArgs.text = '<strong class="error">Error: no modules specified</strong>'<br />
else<br />
local moduleLinks = {}<br />
for i, module in ipairs(modules) do<br />
moduleLinks[i] = string.format('[[:%s]]', module)<br />
end<br />
local moduleList = mList.makeList('bulleted', moduleLinks)<br />
boxArgs.text = 'This ' .. <br />
(mw.title.getCurrentTitle():inNamespaces(828,829) and 'module' or 'template') ..<br />
' uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList<br />
end<br />
boxArgs.type = 'notice'<br />
boxArgs.small = true<br />
boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=|link=]]'<br />
return mMessageBox.main('mbox', boxArgs)<br />
end<br />
<br />
function p.renderTrackingCategories(args, modules, titleObj)<br />
if yesno(args.nocat) then<br />
return ''<br />
end<br />
<br />
local cats = {}<br />
<br />
-- Error category<br />
if #modules < 1 then<br />
cats[#cats + 1] = 'Lua templates with errors'<br />
end<br />
<br />
-- Lua templates category<br />
titleObj = titleObj or mw.title.getCurrentTitle()<br />
local subpageBlacklist = {<br />
doc = true,<br />
sandbox = true,<br />
sandbox2 = true,<br />
testcases = true<br />
}<br />
if titleObj.namespace == 10 <br />
and not subpageBlacklist[titleObj.subpageText]<br />
then<br />
local category = args.category<br />
if not category then<br />
local categories = {<br />
['Module:String'] = 'Lua String-based templates',<br />
['Module:Math'] = 'Templates based on the Math Lua module',<br />
['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',<br />
['Module:Citation'] = 'Lua-based citation templates'<br />
}<br />
categories['Module:Citation/CS1'] = categories['Module:Citation']<br />
category = modules[1] and categories[modules[1]]<br />
category = category or 'Lua-based templates'<br />
end<br />
cats[#cats + 1] = category<br />
local protLevels = {<br />
autoconfirmed = 1,<br />
extendedconfirmed = 2,<br />
templateeditor = 3,<br />
sysop = 4<br />
}<br />
local currentProt = titleObj.protectionLevels["edit"][1]<br />
if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end<br />
for i, module in ipairs(modules) do<br />
local moduleProt = mw.title.new(module).protectionLevels["edit"][1]<br />
if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end<br />
if moduleProt < currentProt then<br />
cats[#cats + 1] = "Templates using under-protected Lua modules"<br />
break<br />
end<br />
end<br />
end<br />
<br />
for i, cat in ipairs(cats) do<br />
cats[i] = string.format('[[Category:%s]]', cat)<br />
end<br />
return table.concat(cats)<br />
end<br />
<br />
return p</div>
wikipedia>Ahecht