模板:Special wikitext
此模板使用Lua語言: |
本模板使用以下模板樣式: |
本模板使用以下JavaScript腳本: |
本系列工具主要目的是在不支援顯示標記模板或介面文字之特殊頁面中補上標記模板或介面文字,以令標記維護模板或提刪流程得以順利進行。
本模板為Module:Special wikitext、Module:Module wikitext和MediaWiki:Gadget-SpecialWikitext.js的模板調用,目的是為了驗證相關程式碼行為的一致性、除錯、維護以及測試相關功能之用。
詳細結果請參考本模板的測試樣例:Template:Special wikitext/testcases。
功能
- 系列工具的功能:
功能 | 實現方式 | ||
---|---|---|---|
內容模型 | 名字空間 | ||
插入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}}模板的功能:
本模板不建議替換引用。模板使用了與T:虛擬模板相關的技術,由於技術限制,替換引用後的結果可能會與預期不符。如需替換引用請使用{{softsubst}}。 |
功能 | 你所輸入的 | 你所看到的 | ||||||
---|---|---|---|---|---|---|---|---|
嵌入包含特殊頁面中的_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: |
| |||||||
嵌入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=" | |||||||
標記觸發預覽 | {{Special wikitext
|preview=js
|Special wikitext/testcase.js
}}
|
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>
|
參數說明
- 參數1:
要處理的特殊頁面名稱。若省略此參數則須提供原始碼src
參數。
- 參數
src
:
要處理的特殊頁面內容模型之原始碼。若輸入了此參數則參數1將會無效。
- 參數
preview
:
決定特殊頁面的展示模式。
模式名稱 | 代碼 | 功能 |
---|---|---|
完整模式 | preview=wiki 、wikitext
|
同時展示_addText 與特殊頁面原始碼
|
代碼模式 | preview=code
|
僅展示特殊頁面原始碼 |
預覽模式 | preview=preview
|
僅展示_addText
|
小工具預覽模式 | preview=js 、ajax
|
展示特殊頁面原始碼,並向小工具請求發送預覽。 |
預設模式 | (未輸入) | 同完整模式,可當作特殊頁面的嵌入包含。 |
- 模板功能與參數總表:
嵌入包含一個特殊頁面內容模型之頁面
參數 | 描述 | 類型 | 狀態 | |
---|---|---|---|---|
頁面名稱 | 1 | 要嵌入或讀取_addText內容的頁面。如果省略此參數則需要加入原始碼(src)參數。 | 頁面名稱 | 非必填 |
預覽模式 | preview | 控制輸出的預覽模式 | 字串 | 非必填 |
頁面內容模型 | contentModel lang | 以指定的頁面內容模型來解析頁面原始碼。若省略則自動判斷。 | 字串 | 非必填 |
原始碼 | src | 從指定的原始碼中解析。(建議用<nowiki>包覆) | 內容 | 非必填 |
子模板相依關係圖
Special wikitext | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
展示代碼 | 展示_addText | 展示特殊頁面 | 請求預覽 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
#/codeshow | #/previewdisplay | #/preview | #/jspreview | Module:#/Template | |||||||||||||||||||||||||||||||||||||||||||||||||||||
圖例 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#/code | #/content | #/codedisplay | Gadget:#.js | 模板本身 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
主要模板 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#/include | #/immcode | Module:# | Module wikitext | #/JSON | 渲染JSON | 可外部調用 | |||||||||||||||||||||||||||||||||||||||||||||||||||
相依模組 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#/testcases | #/testcase | Module:#/JSON | #/JSON.css | 測試樣例 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
內部模板 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Template:# | #/codeshow | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
相依性
以下為MediaWiki:Gadget-SpecialWikitext.js的相依模板、模組與腳本。要讓本工具匯入至其他維基媒體站點,令其在其他維基運作,需要在其他維基站點備齊。
- MediaWiki:Gadget-SpecialWikitext.js(完整引入)
- MediaWiki:Gadget-HanAssist.js(需求函數conv)
- Module:Special_wikitext/Template(完整引入)
- Module:Module_wikitext(完整引入)
- Module:Special_wikitext(完整引入)
- MediaWiki:Gadgets-definition(加入
*SpecialWikitext[ResourceLoader|default|dependencies=ext.gadget.site-lib,mediawiki.api|hidden|targets=desktop,mobile|type=general]|SpecialWikitext.js
)
- MediaWiki:Clearyourcache(末尾加上
{{#invoke:Special wikitext|displayWikitext}}
) - MediaWiki:Scribunto-doc-page-does-not-exist(Doc引用改成
{{#invoke:documentation|nonexistent|_content={{ {{#invoke:documentation|contentTitle}}}}}}
)- Module:Documentation(需求函數
p._getModuleWikitext
與函數p.nonexistent
,並在p._main
中root
後方添加:wikitext(p._getModuleWikitext(args, env))
)
- Module:Documentation(需求函數
參見
- Special:搜索/insource:/_addText/:可能有使用Special wikitext的頁面。