打开/关闭搜索
搜索
打开/关闭菜单
1.5K
11.9K
92
33.2K
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
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
高级
特殊字符
帮助
标题
2级
3级
4级
5级
格式
插入
拉丁字母
扩展拉丁字母
国际音标
符号
希腊字母
希腊字母扩展
西里尔字母
阿拉伯字母
扩展阿拉伯字母
希伯来字母
孟加拉语字符集
泰米尔数字和符号
泰卢固语字符集
僧伽罗语字符集
梵文字符集
古吉拉特语字符集
泰语字符集
老挝语
高棉语字母
加拿大原住民音节文字
卢恩
Á
á
À
à
Â
â
Ä
ä
Ã
ã
Ǎ
ǎ
Ā
ā
Ă
ă
Ą
ą
Å
å
Ć
ć
Ĉ
ĉ
Ç
ç
Č
č
Ċ
ċ
Đ
đ
Ď
ď
É
é
È
è
Ê
ê
Ë
ë
Ě
ě
Ē
ē
Ĕ
ĕ
Ė
ė
Ę
ę
Ĝ
ĝ
Ģ
ģ
Ğ
ğ
Ġ
ġ
Ĥ
ĥ
Ħ
ħ
Í
í
Ì
ì
Î
î
Ï
ï
Ĩ
ĩ
Ǐ
ǐ
Ī
ī
Ĭ
ĭ
İ
ı
Į
į
Ĵ
ĵ
Ķ
ķ
Ĺ
ĺ
Ļ
ļ
Ľ
ľ
Ł
ł
Ń
ń
Ñ
ñ
Ņ
ņ
Ň
ň
Ó
ó
Ò
ò
Ô
ô
Ö
ö
Õ
õ
Ǒ
ǒ
Ō
ō
Ŏ
ŏ
Ǫ
ǫ
Ő
ő
Ŕ
ŕ
Ŗ
ŗ
Ř
ř
Ś
ś
Ŝ
ŝ
Ş
ş
Š
š
Ș
ș
Ț
ț
Ť
ť
Ú
ú
Ù
ù
Û
û
Ü
ü
Ũ
ũ
Ů
ů
Ǔ
ǔ
Ū
ū
ǖ
ǘ
ǚ
ǜ
Ŭ
ŭ
Ų
ų
Ű
ű
Ŵ
ŵ
Ý
ý
Ŷ
ŷ
Ÿ
ÿ
Ȳ
ȳ
Ź
ź
Ž
ž
Ż
ż
Æ
æ
Ǣ
ǣ
Ø
ø
Œ
œ
ß
Ð
ð
Þ
þ
Ə
ə
格式
链接
标题
列表
文件
参考
讨论
说明
输入内容
输出结果
斜体
''斜体文字''
斜体文字
粗体
'''粗体文字'''
粗体文字
粗斜体
'''''粗斜体文字'''''
粗斜体文字
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['类别'] _ = 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 else return '<nowiki>' .. missing_prefix .. '</nowiki>' .. 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
调试控制台
* 此模块的返回的值存于控制台变量“p”中,包括没有保存的变更。 * 在一行的前面加上“=”可以将其作为表达式来计算或使用print()显示。显示表格请使用mw.logObject()。 * 在模块代码中使用mw.log()和mw.logObject()来向控制台发送消息。
该页面使用的模板:
模块:TDN/doc
(
查看源代码
)
返回
模块:TDN
。