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

Module:东方Project

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

综述

本模块是为了统一控制全站东方条目(主要是官方作品和角色)所涉及的信息而创建的。其内容以THBWiki作为标准。

模块的调用方式为:

{{#invoke:东方Project|函数|参数1|参数2...}}

模块中的函数已封装成三个模板:Template:东方角色称号Template:东方音乐名Template:东方角色符卡。正常仅需调用这些模板即可。

数据储存在

本模块的主要功能就是查询信息,没有复杂的功能和逻辑。

称号

显示角色称号,部分角色称号包含HTML标签实现样式。

{{#invoke:东方Project|称号|博丽灵梦|红魔乡|zh}}

博丽神社的巫女小姐

{{#invoke:东方Project|称号|四季映姬|文花帖|zh}}

唠叨敬畏的话语

音乐

显示官方作品中的音乐名。

{{#invoke:东方Project|音乐|绯想天|12|jp}}

雲外蒼天

符卡

显示角色符卡名,部分符卡包含HTML标签实现样式。

{{#invoke:东方Project|符卡|八云紫|凭依华|5|zh}}

凭坐主役的忧郁」

此外还有基于模块封装好的模板{{东方角色符卡表}}。

  1. -- 模块:东方Project
  2. -- 模块:东方Project:称号
  3. -- 模块:东方Project:音乐
  4. -- 模块:东方Project:符卡
  5. local titleZh = mw.loadData("模块:东方Project:称号(中文)")
  6. local titleJp = mw.loadData("模块:东方Project:称号(日文)")
  7. local musicZh = mw.loadData("模块:东方Project:音乐(中文)")
  8. local musicJp = mw.loadData("模块:东方Project:音乐(日文)")
  9. local spellcardZh = mw.loadData("模块:东方Project:符卡(中文)")
  10. local spellcardJp = mw.loadData("模块:东方Project:符卡(日文)")
  11. local spellcardStage = mw.loadData("模块:东方Project:符卡(位置)")
  12. local p = {}
  13. local function getTitle(charName, workName, lang)
  14. local title
  15. if lang == "zh" then
  16. title = titleZh[charName][workName]
  17. elseif lang == "jp" then
  18. title = titleJp[charName][workName]
  19. else
  20. return "Invalid Input"
  21. end
  22. if title then
  23. return title
  24. else
  25. return "Title Not Found"
  26. end
  27. end
  28. local function getMusic(workName, order, lang)
  29. local music
  30. if lang == "zh" then
  31. music = musicZh[workName][order]
  32. elseif lang == "jp" then
  33. music = musicJp[workName][order]
  34. else
  35. return "Invalid Input"
  36. end
  37. if music then
  38. return music
  39. else
  40. return "Music Not Found"
  41. end
  42. end
  43. local function getSC(charName, workName, order, lang)
  44. local spellcard
  45. if lang == "zh" then
  46. spellcard = spellcardZh[charName][workName][order]
  47. elseif lang == "jp" then
  48. spellcard = spellcardJp[charName][workName][order]
  49. else
  50. return "Invalid Input"
  51. end
  52. if spellcard then
  53. return spellcard
  54. else
  55. return "Spell Card Not found"
  56. end
  57. end
  58. local function printSC(charName, workName)
  59. local tableprint = '<table class="wikitable"><tr><th>符卡原名</th><th>符卡译名</th><th>使用场合</th></tr>'
  60. local zh, jp, stage
  61. local num = spellcardZh[charName][workName]["n"]
  62. for i = 1,num do
  63. zh = spellcardZh[charName][workName][i]
  64. jp = spellcardJp[charName][workName][i]
  65. stage = spellcardStage[charName][workName][i]
  66. zh = '<td>' .. zh .. '</td>'
  67. jp = '<td>' .. '<span lang="ja">-{' .. jp .. '}-</span>' .. '</td>'
  68. stage = '<td>' .. stage .. '</td>'
  69. tableprint = tableprint .. '<tr>' .. jp .. zh .. stage .. '</tr>'
  70. end
  71. return tableprint
  72. end
  73. --称号
  74. --{{#invoke:东方Project|称号|角色|作品(含位置或顺次)|语言}}
  75. p["称号"] = function(frame)
  76. local charName = frame.args[1]
  77. local workName = frame.args[2]
  78. local lang = frame.args[3]
  79. return getTitle(charName, workName, lang)
  80. end
  81. --音乐
  82. --{{#invoke:东方Project|音乐|作品|顺次(字符串)|语言}}
  83. p["音乐"] = function(frame)
  84. local workName = frame.args[1]
  85. local order = frame.args[2]
  86. local lang = frame.args[3]
  87. return getMusic(workName, order, lang)
  88. end
  89. --符卡
  90. --{{#invoke:东方Project|符卡|角色|作品|顺次|语言}}
  91. p["符卡"] = function(frame)
  92. local charName = frame.args[1]
  93. local workName = frame.args[2]
  94. local order = tonumber(frame.args[3])
  95. local lang = frame.args[4]
  96. return getSC(charName, workName, order, lang)
  97. end
  98. --{{#invoke:东方Project|符卡表|角色|作品}}
  99. p["符卡表"] = function(frame)
  100. local charName = frame.args[1]
  101. local workName = frame.args[2]
  102. return printSC(charName, workName)
  103. end
  104. return p