打开/关闭搜索
搜索
打开/关闭菜单
1.4K
10.6K
87
31.1K
Cookie☆Wiki
导航
首页
alt-z
最近更改
alt-r
随机页面
alt-x
帮助
沙盒
特殊页面
alt-q
上传文件
alt-u
常用
曲奇简介
用语列表
人物一览
曲奇团体
曲奇年表
本篇列表
榜单列表
专辑列表
创作
音MAD
曲奇静画
曲奇实况
曲奇素材
BB剧场
漫画
同人游戏
曲奇实况
与曲奇有交集的内容
淫梦
东方Project
漫画日本昔话
biim兄贵致敬
QVC福岛
哲♂学
创价
YouTuber
恒心教
VOCALOID
运营批判
友情链接
Cookie☆贴吧
真夏夜的银梦贴吧
中文音MAD维基
潮学维基
银饼视频搜索站
中文曲奇维基Fandom站[已弃用]
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
alt-o
查看“︁模块:TDN”︁的源代码
来自Cookie☆Wiki
查看
阅读
查看源代码
查看历史
associated-pages
模块
讨论
更多操作
←
模块:TDN
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} local kind_tdn_table = mw.loadData('Module:TDN/data') -- 例: { "人物" = { "TDN" = { "多田野", "多田野数人" }, "SZK兄贵" = "曲林静樹", … }, … } --! 根据 `类别=>TDN表记=>正常名称` 表, 返回转换为 `类别=>正常名称=>TDN表记` 形式的表. --! @param 1 可以为空, 字符串或值由字符串组成的表. 若非空, 则返回的表只包含此参数指定的类别. --! --! @feature 如果同一类别下同一名称有多个 TDN 表记, 则只会包含最靠后的那个 TDN 表记 function get_kind_rev_tdn_table(filtered_kinds) -- 返回值例: { "人物" = { "多田野" = "TDN", "多田野数人" = "TDN", "曲林静樹" = "SZK兄贵" } } if filtered_kinds == nil then filtered_kinds = kind_tdn_table elseif type(filtered_kinds) == 'string' then filtered_kinds = { [kind] = filtered_kinds } end local kind_rev_tdn_table = {} for kind, _ in pairs(filtered_kinds) do local tdn_table = kind_tdn_table[kind] local rev_table = {} for tdn, tadanos in pairs(tdn_table) do if string.sub(tdn, 1, 2) == '$!' then rev_table[tdn] = tadanos else if type(tadanos) == 'table' then for _, tadano in pairs(tadanos) do rev_table[tadano] = tdn end else rev_table[tadanos] = tdn end end end kind_rev_tdn_table[kind] = rev_table end return kind_rev_tdn_table end --! 将正常名称 TDN 化 --! @param 1 正常名称 --! @param kind 名称所属的类别 --! --! @feautre 如果同一类别下同一名称有多个 TDN 表记, 则只会返回最靠后的那个 TDN 表记 function p.tdnize() local frame = mw.getCurrentFrame() local name = frame.args[1] local kind = frame.args['kind'] or frame.args['类别'] local no_missing_prefix = require('Module:Yesno')(frame.args['no_missing_prefix'] or frame.args['无缺失前缀']) _ = name and kind or error('必须同时包含参数 "1" 与 "kind"') local kind_name_to_tdn_table = get_kind_rev_tdn_table() local name_to_tdn_table = kind_name_to_tdn_table[kind] local missing_prefix = name_to_tdn_table['$!缺失前缀'] or "" local tdn = name_to_tdn_table[name] if tdn ~= nil then return tdn elseif no_missing_prefix then return name else return mw.text.nowiki(missing_prefix .. name) end -- return name_to_tdn_table[name] or ((name_to_tdn_table['$!缺失前缀'] or "") .. name) end --! 将 TDN 表记正常化 --! @param 1 TDN 表记 --! @param kind 表记所属的类别 --! @param returns_all_result/返回全部结果 可选, 缺省为假. 如果为真, 则返回所有匹配的结果, 否则只返回查到的第一个结果 --! @param sep 可选, 缺省为 ','. 用于分割多个结果 --! --! @feature 大小写敏感 function p.detdnize() local frame = mw.getCurrentFrame() local tdn_notation = frame.args[1] local kind = frame.args['kind'] or frame.args['类别'] local all = require('Module:Yesno')(frame.args['returns_all_result'] or frame.args['返回全部结果'] or false) local sep = frame.args['sep'] or frame.args['分隔符'] or ',' _ = tdn_notation and kind or error('必须同时包含参数 "1" 与 "kind"') local result = kind_tdn_table[kind][tdn_notation] or error('未找到 TDN 表记对应的正常名称: ' .. tdn_notation) if type(result) == 'string' then return result elseif not all then return result[1] else return table.concat(result, sep) end end return p
该页面使用的模板:
模块:TDN/doc
(
查看源代码
)
返回
模块:TDN
。