本站页面(多半)转载自萌娘百科的同名页面,依CC BY-NC-SA 3.0引入,贡献者可以在历史页查询。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
- 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
- 本镜像站和其他萌娘百科的镜像站无关,请注意分别。
Module:Sandbox/Chi ZJ2/模块:UmaList
跳到导航
跳到搜索
local data_module = require("Module:Sandbox/Chi ZJ2/模块:UmaList/data") nameList = data_module.data sortTags = {} -- sortTag,起到提示并分隔某种排序方式中的不同分类的作用 function templatePlate(text) -- 相当于{{Plate}},用于显示sortTag return "<span style=\"background:#E6F6E6;border-bottom:#C0ECC0 solid 2px;color:inherit\"> '''" .. text .. "''' </span>" end -- 【拼音排序】,sortTag为拼音首字母 local pinyinData = mw.loadData("Module:拼音/Data") function getPinyin(text) return pinyinData[mw.ustring.sub(text,1,1)] end function sortByPinyin(arr) table.sort(arr, function(name1, name2) --return name1[5] < name2[5] local i = 1 while( getPinyin(mw.ustring.sub(name1[1],i,i)) ~= nil and getPinyin(mw.ustring.sub(name2[1],i,i)) ~= nil ) do local a, b = string.sub(getPinyin(name1[1]),1,1), string.sub(getPinyin(name2[1]),1,1) if a ~= b then return a < b end i = i + 1 end end) sortTags = {} local nowFirst = "" -- 当前的拼音首字母 for i=1, #arr do if nowFirst ~= string.sub(getPinyin(arr[i][1]),1,1) then -- 发生变化则代表以某首字母开头的名字已列完,此时会添加一个sortTag nowFirst = string.sub(getPinyin(arr[i][1]),1,1) sortTags[i] = templatePlate(string.upper(nowFirst)) end end return arr end function output(type) local res = "<div class=\"Tab\"><div class=\"TabLabelText\">" .. type .. "</div><div class=\"TabContentText\">" for i=1, #nameList do -- 插入sortTag if sortTags[i] ~= nil then res = res .. sortTags[i] end -- 插入角色名 local link if nameList[i][2] == "" then link = nameList[i][1] else link = nameList[i][2] end res = res .. "[[" ..link .. "|" .. nameList[i][1] .. "]]" if i ~= #nameList then res = res .. " • " end end return res .. "</div></div>" end local f = {} local code = "<div class=\"umaList\"><div class=\"Tabs\" data-label-padding=\"0\" data-label-border-color=\"transparent\" data-label-color=\"transparent\" data-text-border-color=\"transparent\" data-text-padding=\"0\" data-label-background-color=\"transparent\" data-text-background-color=\"transparent\" data-auto-width=\"no\">" function f.main( frame ) code = code .. output("正常排序") nameList = sortByPinyin(nameList) code = code .. output("拼音排序") return code .. "</div></div>" end return f