模板: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的页面。