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

Module:Sandbox/BearBin/VNG

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

本模板用于生成使用{{supu}}显示的Template:萌百视觉小说研究会,用户数据存放于Module:Sandbox/BearBin/VNG/data

源代码改自Module:UserGroup

  1. {{#invoke:nav|box
  2. |name = 萌百视觉小说研究会
  3. |title = {{coloredlink|#FFFFFF|Template:萌百视觉小说研究会|萌娘百科视觉小说研究会}}
  4. |titlestyle = background:#B399FF;color:#FFFFFF
  5. |groupstyle = background:#B399FF;color:#FFFFFF
  6. |state = {{#ifeq:{{{1}}}|collapsed|mw-collapsed|mw-uncollapsed}}
  7. |group1 = 萌百维护人员
  8. |list1={{#invoke:Sandbox/BearBin/VNG|maintainer}}
  9. |group2 = 优编与荣维
  10. |list2={{#invoke:Sandbox/BearBin/VNG|autoreviewers}}
  11. |group3 = 自动确认用户
  12. |list3={{#invoke:Sandbox/BearBin/VNG|autoconfirmed}}
  13. }}
  1. --[[来自Module:UserGroup的低水平复制(悲
  2. ]]
  3. local luaq = require("Module:Luaq") -- 加载查询模块。
  4. local module = {}
  5. local data = mw.text.jsonDecode(mw.title.new("Module:Sandbox/BearBin/VNG/data"):getContent())
  6. local order = {
  7. "maintainer", -- 萌百维护人员
  8. "autoreviewers", -- 优编和荣维
  9. "autoconfirmed" -- 自动确认用户
  10. }
  11. function table.indexof(t, item)
  12. for i, v in ipairs(t) do
  13. if v == item then return i end
  14. end
  15. return 0
  16. end
  17. local getGroups = function(filter)
  18. return luaq.iasQuery(mw.text.split(filter, "%s+"))
  19. :select(function(_, name) return alias[name] or name end)
  20. :distinct()
  21. :orderBy(function(aname) return table.indexof(order, aname) end)
  22. :where(function(_, aname) return data[aname] ~= nil end)
  23. :select(function(_, aname) return data[aname] end)
  24. :query()
  25. end
  26. local UserGroupInfo = function(group, frame)
  27. local parent = frame:getParent()
  28. if parent and parent:getTitle() == "Template:UserGroup" then
  29. frame = parent
  30. end
  31. local list = {}
  32. for key, val in ipairs(group) do
  33. if mw.text.trim(val) ~= "" then
  34. table.insert(list, frame:expandTemplate{ title = "supu", args = { val } })
  35. end
  36. end
  37. return table.concat(list, " • ")
  38. end
  39. for gname, g in pairs(data) do
  40. module[gname] = function(frame)
  41. return UserGroupInfo(g, frame)
  42. end
  43. end
  44. return module