模块:CSS

来自SOKA CAFE
こばと留言 | 贡献2024年12月19日 (四) 13:23的版本 (创建页面,内容为“local p = {} local allowedNS = { [2] = true, -- User: [8] = true, -- MediaWiki: [10] = true -- Template: } function p.import_css(frame) local content = frame:getParent().args.content or frame.args.content if content ~= nil then return tostring(mw.html.create("span") :addClass("import-css") :attr("data-css", content) :attr("data-css-hash", mw.hash.hashValue("sha256", content))) end local title = frame:getParent().args[1] or frame.args[1] lo…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

此模块的文档可以在模块:CSS/doc创建

local p = {}
local allowedNS = {
	[2] = true, -- User:
	[8] = true, -- MediaWiki:
	[10] = true -- Template:
}

function p.import_css(frame)
	local content = frame:getParent().args.content or frame.args.content
	if content ~= nil then
		return tostring(mw.html.create("span")
			:addClass("import-css")
			:attr("data-css", content)
			:attr("data-css-hash", mw.hash.hashValue("sha256", content)))
	end
	
	local title = frame:getParent().args[1] or frame.args[1]
	local titleObj = mw.title.new(title or "")
	local errorMsg
	
	if title == nil then errorMsg = "错误:没有向<code>{{[[T:CSS|CSS]]}}</code>模板提供参数。"
	elseif titleObj == nil then errorMsg = "错误:提供给<code>{{[[T:CSS|CSS]]}}</code>模板的参数“" .. frame:extensionTag("nowiki", title) .. "”不是一个有效的页面名。"
	elseif not titleObj.exists then errorMsg = "错误:提供给<code>{{[[T:CSS|CSS]]}}</code>模板的参数“[[" .. title .. "]]”对应的页面不存在。"
	elseif not allowedNS[titleObj.namespace] then errorMsg = "错误:提供给<code>{{[[T:CSS|CSS]]}}</code>模板的页面名“[[" .. title .. "]]”不属于User、MediaWiki或Template中的任何一个命名空间。"
	elseif titleObj.contentModel ~= "css" then errorMsg = "错误:提供给<code>{{[[T:CSS|CSS]]}}</code>模板的参数“[[" .. title .. "]]”对应页面的[[mw:Content handlers/zh|内容模型]]不是CSS。" end
	
	if errorMsg ~= nil then return
		tostring(mw.html.create("strong"):addClass("error"):wikitext(errorMsg)) ..
		"[[分类:引入CSS出错的页面]]"
	else
		content = titleObj:getContent()
		return tostring(mw.html.create("span")
			:addClass("import-css")
			:attr("data-css", content)
			:attr("data-css-hash", mw.hash.hashValue("sha256", content)))
	end
end

return p

-- 代码复制于https://backrooms.fandom.com/zh/wiki/Module:CSS