Модуль:Песочница/Jack who built the house/CSS for Gadget-markadmins.js
Документация
p = {}
function p.main(frame)
local args
if frame then
args = frame.args
end
local font = args and args[1] or 'monospace'
local content = mw.title.new('MediaWiki:Gadget-markadmins.js'):getContent()
local userLists = mw.ustring.match(content, 'var userSet = {.-}')
local users = {}
local iterator = mw.ustring.gmatch(userLists, '\'(%w+)\'.-%[(.-)%][,\n]')
for flag, list in iterator do
local iterator2 = mw.ustring.gmatch(list, '\'(.-[^\\])\'')
for v2 in iterator2 do
if users[v2] then
table.insert(users[v2].flags, flag)
else
users[v2] = {flags = {flag}}
end
end
end
for k, v in pairs(users) do
v.flagsString = ' ('
for k2, v2 in pairs(v.flags) do
v.flagsString = v.flagsString .. v2 .. (k2 == #v.flags and '' or ',')
end
v.flagsString = v.flagsString .. ')'
end
local flagStrings = {}
for k, v in pairs(users) do
if flagStrings[v.flagsString] then
table.insert(flagStrings[v.flagsString], k)
else
flagStrings[v.flagsString] = {k}
end
end
local rules = ''
for k, v in pairs(flagStrings) do
for k2, v2 in pairs(v) do
rules = rules .. '.mw-userlink[title$=":' .. v2 .. '"]:after' .. (k2 == #v and v2 ~= 'Мастер теней' and '' or ',')
if v2 == 'Мастер теней' then
rules = rules .. 'a[title="Обсуждение участника:' .. v2 .. '"]:after' .. (k2 == #v and '' or ',')
end
end
rules = rules .. ' {content:"' .. k .. '"; font-family:' .. font .. (font ~= 'monospace' and ', monospace' or '') .. '; margin-left:-4px; color:#0645ad; visibility:hidden;}\n'
end
return rules
end
return p