匿名
未登录
创建账号
登录
Postal Wiki
搜索
查看“︁用户:Hehua/模板解析陷阱-Hid”︁的源代码
来自Postal Wiki
命名空间
用户页
讨论
更多
更多
页面操作
阅读
查看源代码
历史
用户贡献
←
用户:Hehua/模板解析陷阱-Hid
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
这是一条**模板解析陷阱**的记录,来自 2026-09-14 移植 `模板:Hid` 时踩到的坑,供日后写模板时避雷。 == 现象 == 在**表格单元格**里写下面这种"取参数、按关键字切换"的取值链时,模板会渲染出错误内容: <pre> <th>{{{标题|{{{標題|{{#ifeq:{{{1}}}|show|{{{2|}}}|{{{1|}}}}}}}}}}</th> </pre> 调用 `{{Hid|甲|乙}}` 本应显示"甲",实际渲染为 `<nowiki>{{模板:标题</nowiki>` —— 即多出一个左花括号,并把"标题"**当成模板名生成一个红链**。 == 已排除的可能 == * 不是 `{{#switch}}` / `{{#ifeq}}` 本身的问题(单独用都正常); * 不是 `{{{标题|{{{標題|…}}}}}` 两层默认值的问题(单独用正常); * 不是 `style="position:relative;"` 之类属性的问题; * 与参数是否为空无关(无参、匿名参、命名参都能复现)。 == 复现的最小结构 == <pre> <table class="x {{#ifeq:{{#switch:show|{{{show|}}}|{{{1|}}}=true|#default=false}}|true||mw-collapsed}}"> <tr><th>{{{标题|{{{標題|{{#ifeq:{{{1}}}|show|{{{2|}}}|{{{1|}}}}}}}}}}</th></tr> </table> </pre> 把同样的 `<th>` 放到表格**外面**则正常 —— 关键差异是"表格内 + 单元格里的取值链"这个组合。 == 规避写法(已验证可用)== 把单元格内的取值拆成"先判断有没有值,再决定怎么取",避免在空值上直接做 `#ifeq` 比较: <pre> <th>{{#if:{{{标题|{{{標題|}}}}}}|{{{标题|{{{標題|}}}}}}|{{#if:{{{1|}}}|{{#ifeq:{{{1}}}|show|{{{2|}}}|{{{1|}}}}}|}}}}</th> </pre> == 顺带提醒 == 下方清单里,`U3`–`U7` 因创建时连接中断**并未建成**,故不列入。 排查时创建的临时测试页需要人工删除(本账号的 bot 无 delete 权限)。本次涉及的测试页: * [[模板:TempTest1]] * [[模板:TempTest2]] * [[模板:TempTest3]] * [[模板:TempTest4]] * [[模板:TempTest5]] * [[模板:T_a]] * [[模板:T_b]] * [[模板:T_c]] * [[模板:T_d]] * [[模板:T e]] * [[模板:T f]] * [[模板:T g]] * [[模板:T h]] * [[模板:U1]] * [[模板:U2]] * 放置位置:用户子页(不属于条目内容) * 相关:`模板:Hid` 已于本次修复(改为上述规避写法) [[分类:模板文档]]
该页面使用的模板:
模板:Hid
(
查看源代码
)
返回
用户:Hehua/模板解析陷阱-Hid
。
导航
导航
首页
讨论版
最近更改
随机页面
深色模式
帮助
规章制度
编辑规范
格式指导
管理员公示板
人员任免方针
沙盒
链接
QQ群
Discord社区服务器
wiki工具
wiki工具
特殊页面
页面工具
页面工具
用户页面工具
日志
查看用户组
更多
链入页面
相关更改
页面信息
页面日志