帮助:编辑帮助/调试Wikitext
在页面预览效果不符合预期时,又无法从编写的wikitext中找出问题,就需要使用特殊:展开模板页面调试wikitext。
最常见的问题是:
- 意外的换行(可能是模板头尾的空行、或非块级HTML元素引发)
- 额外的P标签(比如行首的非块级HTML标签会被识别成新段落)
- 解析不符合预期(比如if中的表格,竖线需要“转义”)
特殊:展开模板页面,能查看解析器的中间结果:
- XML解析树:语法识别结果,特殊情况下用来排查;
- 结果:完全展开后的wikitext,最常用,能解决大部分问题;
- HTML输出:最终结果,显示在页面的HTML,偶尔用于微调输出HTML细节。
展开模板页面说明
页面如图所示:
① 是“输入wikitext”文本框,用于输入需要调试的wikitext(图中已经输入了几行代码)。
② 是确定按钮,点击后,下方会显示所输入wikitext的解析结果。
页面上还有几个选项,能显示更多内容。此外,如需指定解析wikitext时使用的页面标题,可以在上方的“上下文标题”输入框中指定标题。
效果如下所示:
结果
在Wikitext中单个换行并不被视为新段落, 而会在同一行显示。 [[File:图标-灵芝.png|18px|link=[[灵芝]]|class=align-sub]] 链接: [[首页]]
预览
在Wikitext中单个换行并不被视为新段落, 而会在同一行显示。
链接: 首页
展开结果说明
- XML输出:wikitext中的模板、解析函数等等在双花括号中的内容都会被展开,解析。如果wikitext有语法错误,解析结果就会异常。
- 结果:完全展开后的wikitext,这是最常用的一栏,如{{i|灵芝}} 被解析并展开成为[[File:图标-灵芝.png|18px|link=[[灵芝]]|class=align-sub]]
- 原始HTML输出:wikitext解析成为的HTML。如果要微调最终生成的HTML,就需要据此调整结果框中的wikitext。
在实际使用,应该优先观察结果一栏,如果符合预期,则可以继续勾选“显示原始HTML”选项来排查HTML输出是否符合预期。如果不符合预期,则可以勾选“显示XML解析树”选项,来查看wiki解析器的识别结果,并据此调整wikitext。
勾选“显示XML解析树”和“显示原始HTML”选项时,显示效果如下:
XML输出
<root>在Wikitext中单个换行并不被视为新段落, 而会在同一行显示。 <template lineStart="1"><title>i</title><part><name index="1"/><value>灵芝</value></part></template> 链接: [[首页]]</root>
原始HTML输出
<div class="mw-parser-output"><p>在Wikitext中单个换行并不被视为新段落, 而会在同一行显示。 </p><p><a href="/wukong/灵芝" title="灵芝"><img alt="图标-灵芝.png" src="...图片网址..." decoding="async" width="18" height="18" class="align-sub" srcset="...图片网址..." data-file-width="89" data-file-height="89" /></a> </p><p>链接: <a href="/wukong/灵芝" title="首页">首页</a> </p></div>
其中{{i|灵芝}}的XML解析结果如下:
<template lineStart="1">
<title>i</title>
<part>
<name index="1"/>
<value>灵芝</value>
</part>
</template>
当解析结果明显不是此类XML结构,或者其参数与预期不符时,多半是编写的wikitext有问题,需要调整。
在结果一栏中,{{i|灵芝}}被展开为wikitext:[[File:图标-灵芝.png|18px|link=[[灵芝]]|class=align-sub]]
并进一步被解析成HTML,是解析器最终输出的网页代码:
<a href="/wukong/灵芝" title="灵芝"><img alt="图标-灵芝.png" src="...图片网址..." decoding="async" width="18" height="18" class="align-sub" srcset="...图片网址..." data-file-width="89" data-file-height="89" /></a>
更多细节请参阅tools wiki 展开模板文档