• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Module:Sandbox/鬼影233

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
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