Глобальный метод JavaScript importArticles()
предоставляет общий интерфейс для включения статей, которые содержат скрипты или стили на вики. Функциональность аналогична существующим методам importScriptPage
и importStylesheetPage
. Тем не менее в importArticles()
можно импортировать статьи из внешних вики, связывать несколько статей в одну, уменьшать их и служить им в качестве одного запроса. Это уменьшает и размеры файлов и веб-трафика, увеличивая скорость загрузки страниц на вики с большим количеством дополнительных файлов.
Использование[]
Метод importArticles()
основан на определении модуля для загрузки статей. Следующие свойства необходимы в каждом модуле:
- type — обозначает тип содержимого страницы. Поддерживаются следующие типы:
- script — статья, содержащая JavaScript (например, «MediaWiki:Common.js»),
- style — статья, содержащая CSS (например, «MediaWiki:Wikia.css»).
- articles — статьи, которые вы хотите импортировать.
Любое количество модулей может быть передано в importArticles
(). Тем не менее все статьи в модуле должны быть того же типа.
Доступ к статьям[]
Для того, чтобы мы могли найти статьи, которые вы пытаетесь импортировать, мы предоставляем простой синтаксис для размещения статей. Этот синтаксис очень похож на ссылки интервики и совместим с ними:
(Prefix:<НазваниеВики>:)<Article>
Всё, что в скобках выше, не является обязательным и означает ввод данных пользователем. Двоеточия используются для разделения строки на различные сегменты для разбора.
Местные статьи[]
Статьи из местной вики могут быть расположены по названию таким же образом, каким вы связываетесь с ними нормально. Они не требуют префикса или имени вики, хотя для удобства есть местный префикс (или «L» (local) для краткости). Например, если вы хотите импортировать статьи MediaWiki:Common.js, любой из следующих кодов будет работать:
MediaWiki:Common.js
l:MediaWiki:Common.js
local:MediaWiki:Common.js
Внешние статьи[]
Статьи от внешних вики могут быть расположены так же, как если бы вы ссылались на них обычно. Однако, в отличие от местных статей, внешние статьи требуют использования префикса и имени вики, чтобы определить, из какой вики вы будете их импортировать и как вы будете определять, что это за вики. В настоящее время мы поддерживаем поиск вики по имени их базы данных, обычно английскому названию вики, и URL. Поиск в базе данных выполняется для внешнего префикса (или «remote» или «W» для краткости) и URL выполнения поиска по URL префиксу (или «U» для краткости). Например, если вы хотите импортировать Highlight/code.css от Dev вики, любой из следующих кодов будет работать:
w:dev:MediaWiki:Highlight/code.css
remote:dev:MediaWiki:Highlight/code.css
external:dev:MediaWiki:Highlight/code.css
u:dev:MediaWiki:Highlight/code.css
url:dev:MediaWiki:Highlight/code.css
u:dev.fandom.com:MediaWiki:Highlight/code.css
url:dev.fandom.com:MediaWiki:Highlight/code.css
Этот синтаксис также будет работать на википроектах других языков. Например, если вы хотите импортировать статьи MediaWiki:Common.js итальянской One Piece Wiki:
u:it.onepiece:MediaWiki:Common.js
url:it.onepiece:MediaWiki:Common.js
url:it.onepiece.fandom.com:MediaWiki:Common.js
Расширенное использование[]
«За кулисами» метод importArticles()
выполняет три необходимые задачи: создание правильно отформатированного URL для использования с ResourceLoader, выполнение санитарных проверок на модули и обеспечение обратной связи с пользователем в случае ошибки. Тем не менее использование метода не является строго обязательным, чтобы получить преимущества объединения и minifying в нескольких статьях. Если вы хотите, то вы можете генерировать URL вручную и загрузить активы, используя другие средства, такие как @import в CSS или jQuery.getScript в JavaScript.
Хотя есть много параметров, которые можно включить в URL, следующие являются наиболее полезными:
Параметр | Описание параметра |
---|---|
mode
|
Сообщает ResourceLoader, что мы загружаем статьи. Должен быть установлен на «статьи» (articles). |
articles
|
В списке статей. Если предусмотрено несколько статей, они должны быть отделены друг от друга " | ". |
only
|
Тип статьи для импорта. Должен быть установлен на «скрипты» (scripts) или «стили» (styles). |
debug
|
Этот параметр не является необходимым по умолчанию, но может быть установлен на «true», чтобы отключить минимизацию для упрощения отладки проблем в импортированных статьях. |
В конце концов вы должны закончить с URL, и это должно выглядеть примерно так:
/ru/load.php?mode=articles&articles=MediaWiki:One.css|MediaWiki:Two.css&only=styles
Что может быть использовано в сочетании с @import
вот так:
@import url("/ru/load.php?mode=articles&articles=MediaWiki:One.css|MediaWiki:Two.css&only=styles");
- Обратите внимание, что на вики на единой платформе обязательно надо указывать языковой префикс /ru/ в начале ссылки импорта, если таковой есть в адресе вашей вики!
Примеры[]
Импорт нескольких статей, одной из местной вики (локальной, своей) и одной из внешней вики:
importArticles({
type: "script",
articles: [
"MediaWiki:MyCustomJavaScript.js",
"external:dev:MediaWiki:External_include.js"
]
});
Импорт нескольких статей стиля, одной из местной вики (локальной, своей) и одной из внешней вики:
importArticles({
type: "style",
articles: [
"MediaWiki:Common.css",
"external:starwars:MediaWiki:External_include.css"
]
});
Импорт также можно реализовать следующим образом:
importScriptPage( 'название статьи', 'префикс (dev, lost..)' );
К примеру,
importScriptPage( 'PurgeButton/code.js', 'dev' );
даст вам кнопку «Обновить» в меню правки.
Импорт нескольких модулей одним методом:
importArticles({
type: "script",
articles: [
"MediaWiki:MyCustomJavaScript.js",
"external:dev:MediaWiki:External_include.js"
]
}, {
type: "style",
article: "MediaWiki:Common.css"
});
Альтернативный пример синтаксиса[]
importArticles()
также поддерживает упрощенный, альтернативный синтаксис для общих случаев использования.
Включение одного файла из локальной вики с использованием определения модуля:
importArticle({
type: "style",
article: "MediaWiki:Common.css"
});