模板:Softsubst
軟替換引用(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}}
- →「測試的內容」
直接替換引用會變為:
{{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}}
- →「測試的內容」(非預覽模式下模板行為接近一般模板)
使用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>
這些原始碼的渲染效果:
- →「測試的內容」
參見
- Special:展開模板
- {{subst:resubst}}:能使替換引用延遲執行的模板