软替换引用(Softsubst)是常规或“硬”替换引用的替代,其不会真的将对应模板替换引用,但会引导编者进行替换引用。常规替换引用软替换引用的关联或差异就好比常规重定向软重定向间的差异,同为因技术限制等原因无法达成效果但提供了提示供编者或读者达成目标。

概要

编辑

本模板是设计能使一些不能被提换引用的模板提供一个替换引用的方案。其效果与直接使用模板接近,但预览时会显示一个提示框告知编者替换引用后的结果源代码。

softsubst与safesubst类似,条目储存编辑在无法替换引用的情况下会有与普通使用模板相同的行为。此外,此用法不同于{{#tag:nowiki}}{{#tag:pre}},通过这些扩展标签虽然也能有类似效果,但在扩展标签之下的源代码不能用,softsubst则有提示文字题是编者应该检查校正;而{{#tag:source}}产生带代码偶尔会有多余的换行符,而此模板没有此问题。

另外一个类似的工具为Special:展开模板,然而其无法测试位于页面局部的特殊环境状态(如{{变数}}或特殊的多层参数传递甚至是特殊环境测试需求),而本模板可以克服此问题。

使用方法

编辑

若一个模板是无法替换引用的模板,如{{ilh}},想尝试替换引用如下代码:

{{ilh|測試的內容|context for test|lang={{lan|zh-hant=英語|zh-hans=英语}} |lang-code=en}}
→“测试的内容英语context for test

直接替换引用会变为:

{{subst:ilh|測試的內容|context for test|lang={{lan|zh-hant=英語|zh-hans=英语}} |lang-code=en}}
→“Lua错误:bad argument #1 to 'fetchLanguageName' (string expected, got nil)。”(效果异常)

使用Softsubst则为:

{{softsubst|ilh|測試的內容|context for test|lang={{lan|zh-hant=英語|zh-hans=英语}} |lang-code=en}}
→“测试的内容英语context for test”(非预览模式下模板行为接近一般模板)

使用Softsubst在预览模式下会出现以下提示:

<span class="ilh-all " data-orig-title="测试的内容" data-lang-code="en" data-lang-name="英语" data-foreign-title="context for test"><span class="ilh-page">[[:测试的内容|测试的内容]]</span><span class="noprint ilh-comment"><span class="ilh-lang">英语</span><span class="ilh-colon"></span><span class="ilh-link">-{[[:en:context for test|<span lang="en" dir="auto">context for test</span>]]}-</span></span></span>

这些源代码的渲染效果:

→“测试的内容英语context for test

参见

编辑