模板:Namespace detect/sandbox
這是Template:Namespace detect(差異)的沙盒。 |
此模板沙盒被引用於許多頁面。 為了避免造成大規模的影響,所有對此模板沙盒的編輯應先於沙盒、測試樣例或您的沙盒上測試。 測試後無誤的版本可以一次性地加入此模板沙盒中,但是修改前請務必於討論頁發起討論。 模板引用數量會自動更新。 |
這是{{Namespace detect}}元模板,它可以幫助其他模板檢測出它們被嵌入的頁面命名空間,並針對不同命名空間顯示通過參數指定的文本。
大致用法如下所示:
{{namespace detect | 參數名 = 模板被包含在該參數對應的命名空間時所顯示的文本 }}
本模板支持的參數如下所示:
- main:主/條目命名空間。
- talk:討論命名空間,包括但不限於「Talk:」「User_talk:」「Wikipedia_talk:」開頭的頁面。
- pseudo:偽命名空間。
- mos, lta:分別對應「MOS:」和「LTA:」開頭的頁面。
- user, wikipedia, file, mediawiki, template, help, category, portal, wikiproject:分別對應用戶命名空間、計劃命名空間(維基百科命名空間)、文件命名空間、MediaWiki命名空間、模板命名空間、幫助命名空間、分類命名空間、主題命名空間和維基專題命名空間。
- other = 如果對應的命名空間參數沒有值,則使用此參數。
為了向下兼容,本模板仍能理解file命名空間的舊名稱image,但其現已棄用。
注意:由於此模板容易出現人為錯誤(如參數名拼寫錯誤),所以對於大部分使用情況,最好使用更簡單的命名空間檢測模板,見下列的參見部分。
用法
{{namespace detect | main = 條目 | talk = 討論頁 | other = 其他頁面 }}
如果本模板用於主(條目)頁面上,將返回:
- 條目
如果本模板用於非條目和討論命名空間的其他頁面上,將返回:
- 其他頁面
上面的示例中,該模板對於所有命名空間都會返回文本。但如果不使用other參數或者留空,那麼它將不會返回任何文本,如下所示:
{{namespace detect | file = 文件 | category = 分類頁面 | other = }}
這個例子中,在除文件和分類命名空間以外的任何頁面上, 這些代碼都將不返回任何文本。
通過將參數留空,可以在特定命名空間的頁面上不呈現任何內容,如下所示:
{{namespace detect | main = | other = 其他頁面 }}
上面的代碼在主空間(條目)頁上將不會呈現任何內容,但是在其他頁面上將返回如下內容:
- 其他頁面
演示空間
該模板提供了demospace參數以供演示用。該參數的值可以是該模板可以理解的任何一個頁面命名空間參數(包括other)。一旦使用該參數,模板便會認為它被包含在該參數指定的命名空間中並呈現相應的文本,如下所示:
{{namespace detect | main = 條目 | other = 其他頁面 | demospace = main }}
無論以上代碼被包含在什麼命名空間中,都將呈現如下文本:
- 條目
您可以在自己的模板中將demospace參數傳遞給本模板,如下所示:
{{namespace detect | main = 條目 | other = 其他頁面 | demospace = {{{demospace|}}} }}
如果demospace參數為空,本模板會忽略該參數。
參數
所有參數列表:
{{namespace detect | main = ... | other = | demospace = {{{demospace|}}} / main / talk / user / wikipedia / file / mediawiki / template / help / category / portal / other }}
Note: Empty values to the "main" ... "portal" parameters do have special meaning.
技術細節
Namespace "Image" was renamed to "File" on 11 December 2008. This template was updated to understand both names well before that, thus it still works fine. For backwards compatibility it still understands "image" both as a parameter name, such as "image = File page text", and as a value "demospace = image".
If you intend to feed tables as content to the numbered parameters of this template, then you need to know this:
Templates do have a problem to handle parameter data that contains pipes "|
", unless the pipe is inside another template {{name|param1}}
or inside a piped link [[帮助:模板|help]]
. Thus templates can not handle wikitables as input unless you escape them by using the {{!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use "HTML wikimarkup" for the table code, which is more robust.
For more technical details such as about "copying to other projects" and "CSS based namespace detection" see {{main talk other}} and its talk page.
參見
便於偵測命名空間的模板群:
- {{main other}} – 用於條目模板。
- {{talk other}} – 用於討論頁模板。
- {{user other}} – 用於用戶頁模板。
- {{wikipedia other}} – 用以偵測"Wikipedia:"計劃頁面。
- {{file other}} – 用於檔案(圖像)模板
- {{template other}} – 用以偵測模板頁。
- {{help other}} – 用於幫助頁模板。
- {{category other}} – 用於分類頁模板。
- {{portal other}} – 用於主題頁模板。
更複雜的命名空間偵測模板:
- {{main talk other}} – 區分某些命名空間。
- {{main talk category other}} – 區分某些命名空間。
- {{namespace detect}} – 多功能模板。
- {{namespace detect showall}} – 超多功能模板。
- {{talkspace detect}} - 偵測不同命名空間的討論頁面。
Technical stuff:
- Wikipedia:命名空間 – Lists all the namespaces.
- Help:魔術字 – About
{{NAMESPACE}}
etc. - Help:解析器函數 – About
{{#ifeq:|||}}
etc.