local p = {}
function p.power(frame)
local parent = frame:getParent()
if parent and parent:getTitle() == 'User:鬼影233/' then
frame = parent
end
local by = ({
["cascading style sheets"] = "CSS",
["m+"] = "MSP",
["ms+"] = "MSP",
css = "CSS",
gayhub = "GitHub",
gh = "GitHub",
github = "GitHub",
javascript = "JS",
js = "JS",
json = "JSON",
less = "less",
lua = "Lua",
mediawiki = "MediaWiki",
minerva = "Minerva",
minervaneue = "Minerva",
module = "Lua",
moeskin = "MoeSkin",
moeskinplus = "MSP",
ms = "MoeSkin",
msp = "MSP",
mw = "MediaWiki",
py = "Python",
python = "Python",
sass = "Sass",
scribunto = "Lua",
scss = "Sass",
ts = "TS",
typescript = "TS",
vector = "Vector",
wikitext = "Wikitext",
})[mw.ustring.lower(frame.args.by)] or frame.args.by or "???"
local bg = ({
CSS = "639",
GitHub = "25292E",
JS = "F1E05A",
JSON = "292929",
less = "1D365D",
Lua = "000080",
MediaWiki = "F8F9FA",
Minerva = "EAECF0",
MoeSkin = "25B449",
MSP = "FFF",
Python = "3572A5",
Sass = "C6538C",
TS = "3178C6",
Vector = "F6F6F6",
Wikitext = "F6F6F6",
})[by] or "000"
local darkOnLight = ({
JS = true,
MediaWiki = true,
Minerva = true,
MSP = true,
Vector = true,
Wikitext = true,
})[by]
return '<span class="plainlinks" style="float:' .. (frame.args.float or 'right') .. ';clear:both;">' ..
frame:preprocess((frame.args.at and ('[' .. frame.args.at .. ' ') or (frame.args["in"] and ('[[' .. frame.args["in"] .. '|') or '')) ..
'<code style="display:inline-block;width:5.5em;text-align:center;background-color:#' ..
bg ..
';border-radius:0;padding:.5em 1em;margin:.125em;box-shadow:inset 0 0 0 ' ..
(darkOnLight and 1.25 or 1) ..
'px currentColor,0 0 .125em #' ..
bg ..
';font-weight:' ..
(darkOnLight and 800 or 700) ..
';line-height:1;font-size:1rem;color:#' ..
(({
CSS = "EBEBEB",
JS = "2E2E2C",
MediaWiki = "000",
Minerva = "222",
MSP = "25B449",
Python = "FFD343",
Vector = "000",
Wikitext = "000",
})[by] or "FFF") ..
';">' .. by .. '</code>' .. (frame.args.at and ']' or (frame.args["in"] and ']]' or ''))) ..
'</span>'
end
return p