2012-02-28 58 views
0

这看起来像是一个几乎不可能的问题,但我想知道MediaWiki Templates是如何工作的。我目前正在尝试从头创建一个ASP.NET wiki,希望能够创建类似于模板的东西。模板的内容如何使用{{TemplateName}}等标签和参数例如{{TemplateName|text=Hello}}传递到其他页面。MediaWiki模板如何工作?

+0

在渲染页面时,MediaWiki会将模板标记替换为相应的内容。如果你想知道这些齿轮如何转动,[MediaWiki的源代码](http://www.mediawiki.org/wiki/Download)可供阅读。 – 2012-02-28 18:46:04

+0

“它们如何被跨越”这个问题有点含糊。 – Bergi 2012-02-28 19:00:44

+1

“transcluded”我的意思是如何将特定模板的内容包含在另一个页面中,如[here](http://en.wikipedia.org/wiki/Wikipedia:Transclusion) – chris05 2012-02-28 19:27:46

回答

1

在解析过程中,第一步是“预处理”。模板语法(模板包含,参数替换,解析器函数)被解析成类似dom的树,并链接到括号和预处理器标签。然后,这个dom被扩大了,即,包含被替换。然后,解析纯文本文件,如链接和表格以及粗体/斜体语法和魔术字等。

您可能想看看http://www.mediawiki.org/wiki/Manual:Parser.php#Description以及链接到那里的PHP源代码。 http://musialek.org/?p=94也有详细的解释。