Semantic MediaWiki模板报错:Title属性值含无效字符问题排查
解决Semantic MediaWiki模板的Title属性报错问题
问题原因
报错显示Title属性值混入了换行和italianTitle = {{{italianTitle}}}文本,根源是模板里#subobject块的#if逻辑写反了:
- 原本应该仅当传入italianTitle时才输出对应的属性行,但当前代码是没传入时才输出该行
- 加上模板里的多余换行,导致空参数的属性行被错误拼接到Title属性的值中,触发无效内容报错
修复方案
修正#if逻辑,只在存在italianTitle时生成对应的属性行,同时清理可能导致内容拼接的多余空白:
<includeonly>[{{{url}}} {{#if:{{{italianTitle|}}}|{{{italianTitle}}}|{{{title}}}}}] - {{{tags}}} {{#subobject: |url = {{{url}}} |title = {{{title}}} {{#if:{{{italianTitle|}}}| |italianTitle = {{{italianTitle}}} }} |tags={{{tags}}}|+sep=,}}</includeonly> <noinclude> {{man}} == Esempi:== {{SemanticLink|url=https://www.instagram.com/p/CY_t7QhIWTD/|title=Lo psicologo di base rischia di essere inutile se non ci sono abbastanza fondi stanziati|tags=psicologia,governo,politica,lavoro}} {{SemanticLink|url=https://www.instagram.com/p/CY_t7QhIWTD/|title=english title|italianTitle=italian title|tags=psicologia,governo,politica,lavoro}} </noinclude>
验证说明
- 当不传入
italianTitle时,#subobject里不会生成多余的属性行,Title属性值保持纯净 - 当传入
italianTitle时,正常生成对应的语义属性,符合模板设计需求
内容的提问来源于stack exchange,提问作者Revious
相关产品推荐
相关产品推荐

