2012-02-28 107 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也有詳細的解釋。