跳至內容

模板:Special wikitext/doc

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

本系列工具主要目的是在不支援顯示標記模板或介面文字之特殊頁面中補上標記模板或介面文字,以令標記維護模板或提刪流程得以順利進行。

本模板為Module:Special wikitextModule:Module wikitextMediaWiki:Gadget-SpecialWikitext.js的模板調用,目的是為了驗證相關程式碼行為的一致性、除錯、維護以及測試相關功能之用。

詳細結果請參考本模板的測試樣例:Template:Special wikitext/testcases

功能

[編輯]
系列工具的功能:
功能 實現方式
0 內容模型 命名空間
插入Wikitext JS、 JSON、 CSS User、MediaWiki 內嵌至MediaWiki:Clearyourcache
其他命名空間 AJAX:當前版本內容送交API:parse
模板樣式、 純文字及其他 任何
Lua Module 內嵌至MediaWiki:Scribunto-doc-page-does-not-exist
預覽功能
JS、 JSON、 CSS、 模板樣式、 純文字及其他 任何 AJAX:編輯框內容送交API:parse
已刪內容預覽
Lua Module AJAX:使用模板沙盒參數解析Lua
檢視差異或歷史版本
(含修訂版本刪除)
任何符合_addText模式的頁面 AJAX:歷史版本送交API:parse

  • 各內容模型插入Wikitext的方式:
內容模型 插入Wikitext的語法 內容模型 插入Wikitext的語法
JSON Array模式
[...
{"_addText":"<wikitext>"},
...]
JavaScript _addText="<wikitext>";
Object模式
{...
"_addText":"<wikitext>",
...}
Lua require('Module:Module wikitext')._addText('<wikitext>')
CSS
._addText{
	content:"<wikitext>";
}
通用模式
(JSON除外)
/* _addText : "<wikitext>" */
※技術限制1:由於以上主要是在介面層面上顯示內容,故某些情形下頁面分類可能會無法正常運作。目前已知頁面分類無法正常運作的頁面內容模型包括JSON及純文字。
※技術限制2:-{}-模式的繁簡轉換無法在介面層面上生效,請考慮使用{{Lan}}做繁簡轉換。
{{Special wikitext}}模板的功能:
功能 你所輸入的 你所看到的
嵌入包含特殊頁面中的_addText
{{Special wikitext
|preview=preview
|Special wikitext/testcase.js
}}
嵌入包含一個特殊頁面 嵌入Module:Module_wikitext/testcase
local p = {}
local wikitext = require('Module:Module wikitext')
wikitext._addText('{{#if:{{CheckPage|Module:Module wikitext/testcase}}|{{Sample}}}}')
wikitext._addText('{{ambox|issue=[[Module:Module wikitext/testcase]]}}')
wikitext._addText('{{#if:{{CheckPage|Module:Module wikitext/testcase}}|<div style="display:none;">}}')
return p
嵌入Template:Special wikitext/testcase.json
{
"key":"value",
"_addText":"{{#if:{{CheckPage|Template:Special wikitext/testcase.json}}|{{Sample}}}}{{ambox|issue=[[Template:Special wikitext/testcase.json]]}}"
}
嵌入Template:Special wikitext/testcase.js
var _addText="{{#if:{{CheckPage|Template:Special wikitext/testcase.js}}|{{Sample}}}}{{ambox|issue=[[Template:Special wikitext/testcase.js]]}}";
對比一般的嵌入方式
Template:Special wikitext/testcase.js
var _addText="";
標記觸發預覽
var _addText="{{#if:{{CheckPage|Template:Special wikitext/testcase.js}}|{{Sample}}}}{{ambox|issue=[[Template:Special wikitext/testcase.js]]}}";
展示某個頁面的原始碼
{{Special wikitext
|lang=wikitext
|Ifsubst
}}
{{ {{{|safesubst:}}}#ifeq:{{ {{{|safesubst:}}}NAMESPACE}}{{{nosubst|}}}|{{NAMESPACE}}
 |{{{no|{{{2|}}}}}}
 |{{{yes|{{{1|}}}}}}
}}<noinclude>
{{Documentation}}
</noinclude>

特殊頁面編輯提示

[編輯]

Special Wikitext模塊也可以給Special命名空間的頁面提供Wikitext頁頂提示。

Special Wikitext模塊會給有定義於Template:Editnotices/Page/Special:的特殊頁面顯示頁頂提示,但判定條件是以該特殊頁面的全英文名稱進行判斷。

例如要給Special:Blankpage/SpecialWikitextSandbox這個特殊頁面添加頁頂提示,可以依照Template:Editnotices方式給這個特殊頁面添加頁頂提示(注意:大小寫敏感)

首先先確定該頁面的英文全名(包含命名空間前綴Special:頁面名稱和子頁面名稱)。由於Special命名空間無法編輯,因此無法使用在頁面放置{{FULLPAGENAME}}的方式得到,不過可以用網頁的開發者模式,在主控台執行以下指令來得到全英文的頁面名稱:

[['wgCanonicalNamespace','wgCanonicalSpecialPageName'].map(i=>mw.config.get(i)).join(':')].concat((mw.config.get('wgTitle')||'').split('/').slice(1)).join('/')

接着將得到的英語特殊頁面名稱來建立Template:Editnotices/Page的子頁面

Special:Blankpage/SpecialWikitextSandbox為例,該指令碼輸出

Special:Blankpage/SpecialWikitextSandbox(注意:大小寫敏感)

來建立頁面,也就是在Template:Editnotices/Page/Special:Blankpage/SpecialWikitextSandbox頁面填入內容,就會自動於Special:Blankpage/SpecialWikitextSandbox頁頂顯示

可用以下語法另其只在目標頁面顯示:

{{#ifeq:{{ROOTPAGENAME}}|Editnotices
|<!--在 [[Template:Editnotices/Page]] 頁顯示的內容-->
|<!--在目標頁面顯示的內容-->
}}

參考範例Template:Editnotices/Page/Special:Blankpage/SpecialWikitextSandbox/SDSpecial:Blankpage/SpecialWikitextSandbox/SD

參數說明

[編輯]
參數1:

要處理的特殊頁面名稱。若省略此參數則須提供原始碼src參數。

參數src

要處理的特殊頁面內容模型之原始碼。若輸入了此參數則參數1將會無效。

參數preview

決定特殊頁面的展示模式。

模式名稱 代碼 功能
完整模式 preview=wikiwikitext 同時展示_addText與特殊頁面原始碼
代碼模式 preview=code 僅展示特殊頁面原始碼
預覽模式 preview=preview 僅展示_addText
小工具預覽模式 preview=jsajax 展示特殊頁面原始碼,並向小工具請求發送預覽。
預設模式 (未輸入) 同完整模式,可當作特殊頁面的嵌入包含。
模板功能與參數總表:

嵌入包含一個特殊頁面內容模型之頁面

模板參數

參數描述類型狀態
頁面名稱1

要嵌入或讀取_addText內容的頁面。如果省略此參數則需要加入原始碼(src)參數。

頁面名稱非必填
預覽模式preview

控制輸出的預覽模式

字串非必填
頁面內容模型contentModel lang

以指定的頁面內容模型來解析頁面原始碼。若省略則自動判斷。

字串非必填
原始碼src

從指定的原始碼中解析。(建議用<nowiki>包覆)

內容非必填

子模板相依關係圖

[編輯]
Special wikitext
展示代碼展示_addText展示特殊頁面請求預覽
#/codeshow#/previewdisplay#/preview#/jspreviewModule:#/Template
圖例
#/code#/content#/codedisplayGadget:#.js模板本身
主要模板
#/include#/immcodeModule:#Module wikitext#/JSON渲染JSON可外部調用
相依模組
#/testcases#/testcaseModule:#/JSON#/JSON.css測試樣例
內部模板
Template:##/codeshow

相依性

[編輯]

以下為MediaWiki:Gadget-SpecialWikitext.js的相依模板、模組與腳本。要讓本工具匯入至其他維基媒體站點,令其在其他維基運作,需要在其他維基站點備齊。

參見

[編輯]