模板:Eval
跳至導覽
跳至搜尋
本模塊/模板提供了在幾乎任何地方解析幾乎所有的Wiki文本的可能。
使用
[[模塊:Eval]]與[[模板:Eval]]的使用格式基本一致,不過有部分參數按照編輯者的使用習慣進行了各自不同的優化。
下面格式中Eval指:
- 使用模塊時書寫
#invoke:Eval; - 使用模板時書寫
Eval。
展開模板
{{ Eval | template | 模板名稱 | 參數列表... }}
- 參數
- 模板名稱:要展開的模板的名稱,不需要添加
Template:命名空間前綴; - 參數列表:模板的所有參數。格式為:
参数名称 = Wiki文本或Wiki文本;- 參數名稱為數字(或者不顯示書寫
【参数名称】=)時,參數值可以書寫多個要展開的模板的參數文本,如【模板参数1】{{!}}【模板参数2】{{!}}…。
最終這些名稱為數字的參數會按照順序連接,成為要展開的模板的匿名參數列表; - 參數名稱不為數字時,將等同於書寫要展開的模板的同名參數。這些參數將會被連接在匿名參數列表之後。
解析Wiki文本
{{ Eval | wikitext | Wiki文本 }}
- 參數
- Wiki文本:任何Wiki文本都可以寫入;
- 使用
nowiki標籤套住希望保持原樣的Wiki文本,例如<nowiki>|</nowiki>和{{!}}是相同的,但不同於<nowiki>{{!}}</nowiki>。
- 使用
嵌入頁面
{{ Eval | page | 頁面的完整標題 }}
- 參數
- 頁面的完整標題:要嵌入的頁面的帶命名空間的標題。例如,本頁面的完整標題為
Template:Eval;- 需要注意的是,僅當這個頁面的內容模型為
wikitext(純文本)時,本模塊/模板才會工作。否則將不會嵌入內容模型為CSS、JSON、JavaScript、Scribunto(Lua)等的頁面。
- 需要注意的是,僅當這個頁面的內容模型為
nowiki標籤的轉義
在上述格式中,Wiki文本中的nowiki標籤都將被剝離,因此有必要規定一種格式用於不得不在Wiki文本中使用nowiki標籤的情況。
- 格式
$NOWIKI_S:轉義<nowiki>;$NOWIKI_E:轉義</nowiki>;$$:轉義$。生效範圍僅限於緊跟在$NOWIKI_S和$NOWIKI_E前方的連續的$構成的字符串,其他地方將不會進行轉義;- 優先進行
$$→$的轉義,若破壞了$NOWIKI_S和$NOWIKI_E的結構,那麼後兩者將會輸出NOWIKI_S和NOWIKI_E。$$$$NOWIKI_S→$$NOWIKI_S;$$$$$NOWIKI_E→$$</nowiki>。
示例
- 展開模板
{{#invoke:Eval|template|Ruby|<nowiki>1={{pgref|模块|Eval}}|2=<code>$NOWIKI_S{{pgref|模块|Eval}}$NOWIKI_E</code></nowiki>}}
{{Eval|template|Ruby|{<nowiki>{tl|Eval}</nowiki>}|<code>$NOWIKI_S<nowiki>{{tl|Eval}}$NOWIKI_E</nowiki></code>}}
{{Eval|template|Hide|标题=标题|内容=内容}}
效果:
- 解析Wiki文本
#{{#invoke:Eval|wikitext|<nowiki>{{</nowiki>tl<nowiki>|</nowiki>Eval<nowiki>}}</nowiki>}}
#{{#invoke:Eval|wikitext|<nowiki>{{</nowiki>tl{{!}}Eval<nowiki>}}</nowiki>}}
#{{Eval|wikitext|<nowiki>{{</nowiki>tl<nowiki>|</nowiki>Eval<nowiki>}}</nowiki>}}
#{{Eval|wikitext|<nowiki>{{</nowiki>tl{{!}}Eval<nowiki>}}</nowiki>}}
#{{Eval|wikitext|<nowiki>这里有一个Ruby→{{Ruby|下方文字|上方文字}}←。</nowiki>}}
效果:
- 嵌入頁面
{{Eval|page|Template:辅助模板}}
效果:
| ||||||||||||||||||||||