新增的內容 刪去的內容
小 (文本替换 - 替换“(維|维)基文本”为“wikitext”) |
小 (文本替换 - 替换“的的”为“的”) |
||
(未顯示同一用戶的2個中間版本) | |||
第69行: | 第69行: | ||
* <code>scribunto-doc-page-header</code> — 查看文档页面本身时显示的标题。 模块的名称(有Module:前缀)传递为<code>$1</code>。 默认以斜体显示简要说明。 |
* <code>scribunto-doc-page-header</code> — 查看文档页面本身时显示的标题。 模块的名称(有Module:前缀)传递为<code>$1</code>。 默认以斜体显示简要说明。 |
||
注意模块不可以被直接分类,也不可以直接添加跨 |
注意模块不可以被直接分类,也不可以直接添加跨站链接。这些应该放在文档页面里面的{{tag|includeonly}}标签中,当文档页面被引用到模块页面时,这些分类和跨站链接就会应用于模块页面。 |
||
这些应该放在文档页面里面的{{tag|includeonly}}标签中,当文档页面被引用到模块页面时,这些分类和跨维基链接就会应用于模块页面。 |
|||
== Lua语言 == |
== Lua语言 == |
||
第1,725行: | 第1,724行: | ||
在当前框架环境下展开wikitext,比如,模板、解析器函数以及像<code><nowiki>{{{1}}}</nowiki></code>这样的参数都会展开。某些特殊的写成XML格式的标记,比如<code><pre></code>、<code><nowiki></code>、<code><gallery></code>和<code><ref></code>都会被替换为“strip marker”——一类特殊的字符串,由删除符(ASCII 127)开头,在从<code>#invoke</code>返回后被替换成HTML。 |
在当前框架环境下展开wikitext,比如,模板、解析器函数以及像<code><nowiki>{{{1}}}</nowiki></code>这样的参数都会展开。某些特殊的写成XML格式的标记,比如<code><pre></code>、<code><nowiki></code>、<code><gallery></code>和<code><ref></code>都会被替换为“strip marker”——一类特殊的字符串,由删除符(ASCII 127)开头,在从<code>#invoke</code>返回后被替换成HTML。 |
||
如果你使用单个模板,使用[[#frame:expandTemplate|<code>frame:expandTemplate</code>]]而非尝试建造wikitext以使用这个方法。这样更快且更不容易出错,尤其是参数包含管道符或其他 |
如果你使用单个模板,使用[[#frame:expandTemplate|<code>frame:expandTemplate</code>]]而非尝试建造wikitext以使用这个方法。这样更快且更不容易出错,尤其是参数包含管道符或其他wikitext标记时。 |
||
同理,展开单个解析器函数时应使用[[#frame:callParserFunction|<code>frame:callParserFunction</code>]]。 |
同理,展开单个解析器函数时应使用[[#frame:callParserFunction|<code>frame:callParserFunction</code>]]。 |
||
第2,354行: | 第2,353行: | ||
* JSON对象会丢弃含有null值的键。 |
* JSON对象会丢弃含有null值的键。 |
||
* 不能直接分辨带有序列整数键的是JSON数组还是JSON对象。 |
* 不能直接分辨带有序列整数键的是JSON数组还是JSON对象。 |
||
* 带有序列整数键从1开始 |
* 带有序列整数键从1开始的JSON对象会被解析到作为有相同值的JSON数组的相同的表结构,尽管这些不一定总是相等,除非使用了<code>mw.text.JSON_PRESERVE_KEYS</code>。 |
||
==== mw.text.jsonEncode ==== |
==== mw.text.jsonEncode ==== |
||
第2,411行: | 第2,410行: | ||
* 以下字符:<code>"</code>、<code>&</code>、<code>'</code>、<code><</code>、<code>=</code>、<code>></code>、<code>[</code>、<code>]</code>、<code>{</code>、<code>|</code>、<code>}</code> |
* 以下字符:<code>"</code>、<code>&</code>、<code>'</code>、<code><</code>、<code>=</code>、<code>></code>、<code>[</code>、<code>]</code>、<code>{</code>、<code>|</code>、<code>}</code> |
||
* 字符串开头或新行后面 |
* 字符串开头或新行后面的以下字符:<code>#</code>、<code>*</code>、<code>:</code>、<code>;</code>、空格、制表符('\t') |
||
* 空行会有关联的新行或返回转义的字符(Blank lines will have one of the associated newline or carriage return characters escaped) |
* 空行会有关联的新行或返回转义的字符(Blank lines will have one of the associated newline or carriage return characters escaped) |
||
* 字符串开始处或新行后 |
* 字符串开始处或新行后的<code>----</code>会使得第一个<code>-</code>被转义 |
||
* <code>__</code>会使一个下划线被转义 |
* <code>__</code>会使一个下划线被转义 |
||
* <code>://</code>会使冒号被转义 |
* <code>://</code>会使冒号被转义 |
||
第2,560行: | 第2,559行: | ||
* '''isContentPage''':这个页面是否在内容命名空间内。 |
* '''isContentPage''':这个页面是否在内容命名空间内。 |
||
* '''isExternal''':此页面是否具有跨wiki的前缀。 |
* '''isExternal''':此页面是否具有跨wiki的前缀。 |
||
* '''isLocal''':此页面是否在此项目中。例如,在英语维基百科上,任何其他语言维基百科都被视为“本地”(Local),而维基 |
* '''isLocal''':此页面是否在此项目中。例如,在英语维基百科上,任何其他语言维基百科都被视为“本地”(Local),而维基词典等则被视为非“本地”。 |
||
* '''isRedirect''':是否是重定向页面的标题。{{red|此函数[[#Expensive properties|可能为高开销]]}}。 |
* '''isRedirect''':是否是重定向页面的标题。{{red|此函数[[#Expensive properties|可能为高开销]]}}。 |
||
* '''isSpecialPage''':该页面是否可能是特殊页面(即“Special”命名空间中的页面)。 |
* '''isSpecialPage''':该页面是否可能是特殊页面(即“Special”命名空间中的页面)。 |
||
第3,166行: | 第3,165行: | ||
Scribunto扩展包括一个用于测试用例的基类<code>Scribunto_LuaEngineTestBase</code>,该类将针对LuaSandbox和LuaStandalone引擎运行测试。 |
Scribunto扩展包括一个用于测试用例的基类<code>Scribunto_LuaEngineTestBase</code>,该类将针对LuaSandbox和LuaStandalone引擎运行测试。 |
||
库的测试用例应该扩展这个类,并且不应该覆盖<code>static function suite()</code>。 |
库的测试用例应该扩展这个类,并且不应该覆盖<code>static function suite()</code>。 |
||
在Scribunto扩展中,测试用例应该在<code>tests/engines/LuaCommon/''Name''LibraryTest.php</code>并添加到{{phpi|ScribuntoHooks::unitTestsList()}}中的数组中(在<code>common/Hooks.php</code>中),扩展应该在自己的<code>[[Manual:Hooks/UnitTestsList|UnitTestsList]]</code>钩子函数中添加测试用例,可能取决于是否设置了<code>$wgAutoloadClasses['Scribunto_LuaEngineTestBase']</code>。 |
在Scribunto扩展中,测试用例应该在<code>tests/engines/LuaCommon/''Name''LibraryTest.php</code>并添加到{{phpi|ScribuntoHooks::unitTestsList()}}中的数组中(在<code>common/Hooks.php</code>中),扩展应该在自己的<code>[[mw:Manual:Hooks/UnitTestsList|UnitTestsList]]</code>钩子函数中添加测试用例,可能取决于是否设置了<code>$wgAutoloadClasses['Scribunto_LuaEngineTestBase']</code>。 |
||
大多数时候,制作测试用例需要做的包括: |
大多数时候,制作测试用例需要做的包括: |
||
第3,212行: | 第3,211行: | ||
有(至少)两种方式来运行PHPUnit测试: |
有(至少)两种方式来运行PHPUnit测试: |
||
# 针对核心运行phpunit,允许tests/phpunit/suites/ExtensionsTestSuite.php使用[[Manual:Hooks/UnitTestsList|UnitTestsList]]钩子找到扩展的测试。 如果您的扩展的测试类名称都包含一个唯一的组件(例如扩展的名称),则可以使用<code>--filter</code>选项以仅运行您的扩展的测试。 |
# 针对核心运行phpunit,允许tests/phpunit/suites/ExtensionsTestSuite.php使用[[mw:Manual:Hooks/UnitTestsList|UnitTestsList]]钩子找到扩展的测试。 如果您的扩展的测试类名称都包含一个唯一的组件(例如扩展的名称),则可以使用<code>--filter</code>选项以仅运行您的扩展的测试。 |
||
# 对扩展目录运行phpunit,这将获取以“Test.php”结尾的任何文件。 |
# 对扩展目录运行phpunit,这将获取以“Test.php”结尾的任何文件。 |
||