2023年政策修订增补工作正在进行中,欢迎参与!
模板: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:辅助模板}}
效果:
|