置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:Sandbox/あめろ/1

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [创建] [刷新]
local scm = require 'Module:Sandbox/あめろ'

local UrlWithPlaceholder = scm.String{pattern='^https?://.-%%s'}
local NonEmptyString = scm.String{min_len=1}

local SitesSchema = scm.Table{
	[scm.Number{int=true}] = scm.Table{
		name = NonEmptyString,
		icon = scm.Table{
			file = NonEmptyString,
			size = NonEmptyString / nil,
		},
		url = HttpUrl
			/ scm.Function
			/ scm.Table{validator=function(t)
				local Item = scm.Table{NonEmptyString, HttpUrl}
				local LastItem = scm.Table{NonEmptyString / nil, HttpUrl}
				for i = 1, #t - 1 do
					if not Item:test(t[i]) then
						return false
					end
				end
				return LastItem:test(t[#t])
			end},
	}
}

local p = {}
function p.validate_data_sites()
	local sites = require('Module:IconLink/data').sites
	SitesSchema:assert(sites)
	return '格式正确'
end

return p