FANDOM


全域的JavaScript方法importArticles()提供在一个Wiki置入有脚本或样式的文章。

这个功能类似于已有的方法包括importScriptPageimportStylesheetPage等。然而,importArticles()可以从其他的Fandom社区中导入文章,也可以把几篇文章结合为一篇,并将之极简化(minify)。这减少了档案的大小以及网页需要的流量,让Wiki载入档案速度变快。

使用

importArticles()方法需要模组(module)定义来载入文章。模组是有key/value属性的JavaScript物件。以下的属性在每个模组中是必要的: 

  • 型别(type) - 这个属性标明了该模块中文章的型别。支援的型别包括:
  • 文章(articles) - 你要导入的文章,参见下面的放置文章段落。

放入importArticles()的模组数量不限。但所有在模组中的文章必须是同一型别(type).

Bulb

缓存

importArticles() (以及以下的进阶技术)产生的文章最多缓存10分钟。因此不论你什么时候作出修改,你可以假定在使用importArticles()使用之后的10分钟,所有Wiki的使用者会使用你修改后的Js和css档案。


放置文章

可以使用简单的语法让你放置要导入的文章。这和跨wiki连结颇为类似:

(Prefix:<WikiName>:)<Article>

在上面括()中的内容都是可以选择填写或不写的,而在上面<>中的内容则必须由使用者输入,冒号则是用于将字串分成不同部分。前缀(Prefix)告诉我们你想要如何查找该文章,除非是使用wiki本身的文章,通常前缀之后接续的是Wiki的名字, 、

同一Wiki本身的文章

在同一Wiki的文章可以按照一般的方式直接使用文章标题来放置。它们不需要前缀或wiki名称,但为了方便,也可以使用local(或简称"l")作为前缀。例如,如果你想要导入MediaWiki:Common.js,可以将以下放入importArticles 中:

MediaWiki:Common.js

其他Wiki的文章

从Fandom其他的wiki也可以用一般连结的方式。然而,不像wiki本身的文章,其他wiki的文章需要使用前缀和wiki名称来确认你想导入文章的位置。Fandom支援使用资料库(database)名称,通常是wiki的英文名称,以及使用网址(URL)来查找一个wiki. 用资料库名称查询时使用external前缀(或"remote"或简码"w") ,使用网址查询时使用url为前缀 (或简码"u")。例如,如果你想要从Dev Wiki导入Highlight/code.css这篇文章,可以在importArticles陈述中加上:

u:dev:Highlight/code.css


这个代码在其他语言的wiki中也可以使用,例如如果你想要从义大利语版的{{#NewWindowLink:http://it.onepiece.wikia.com%7COne Piece Wiki}}中导入{{#NewWindowLink:http://it.onepiece.wikia.com/index.php?title=MediaWiki:Common.js%7CMediaWiki:Common.js}} 这篇文章。可以使用:

u:it.onepiece:MediaWiki:Common.js

进阶使用

在后台importArticles()方法执行三个必要的工作:

  1. 产生适当的URL位置以使用ResourceLoader,
  2. 针对模组执行完整性检查,以确认格式无误。
  3. 在有错误时告知使用者。

然而,要合并与极简化多篇文章也不一定要使用这个方法。如果你喜欢,你可以手动产生URL,然后使用其他方式来载入,例如使用CSS的@import 或JavaScript的 jQuery.getScript

有很多你可以放入网址中的变量(函数),以下可能是一些最有用的:

变量 变量描述
mode 告知ResourceLoader我们会载入文章。应该设定为"articles."
articles 文章列表。如果提供多个文章,要使用 "|"来隔开.
only 文章的型别,可以设定为 "scripts"(脚本)或 "styles."(样式)
debug 这个变量不是预设必要,但可以设定为 "true" 以关闭极简化,以便在导入文章时更容易找到并修正错误(debug)。

最后,你应该会用如下这样的URL位址:

/load.php?mode=articles&articles=One.css|Two.css&only=styles

也可以结合使用@import例如这样:

@import url("/load.php?mode=articles&articles=One.css|Two.css&only=styles");

如果css由Fandom网站以外的其他网站支持,比如Dropbox,那么url应该使用http://或者https://,比如这样:

@import url("https://dl.dropboxusercontent.com/s/0p9ay0nqibx2wr7/manga_list.css");

例子

导入多篇脚本文章,一篇来自于该Wiki,一篇来自于其他的wiki:

importArticles({
    type: "script",
    articles: [
        "MediaWiki:MyCustomJavaScript.js",
        "external:dev:MediaWiki:External_include.js"
    ]
});

导入多篇样式文章,一篇来自于该wiki,一篇来自其他的wiki

importArticles({
    type: "style",
    articles: [
        "MediaWiki:Common.css",
        "external:starwars:MediaWiki:External_include.css"
    ]
});

在一次的方法呼叫中,导入多个模组:

importArticles({
    type: "script",
    articles: [
        "MediaWiki:MyCustomJavaScript.js",
        "external:dev:MediaWiki:External_include.js"
    ]
}, {
    type: "style",
    article: "MediaWiki:Common.css"
});


其他的语法例子

importArticles()这个方法也支援其他常用的简化语法。为了方便使用,importArticle()方法也要定义。

要将一个Wiki中的单一档案导入,可使用以下的模组定义:

importArticle({
    type: "style",
    article: "MediaWiki:Common.css"
});


另参见


帮助及反馈

除了特别提示,社区内容遵循CC-BY-SA 授权许可。