Вики Сообщества
Advertisement
Вики Сообщества

Глобальный метод 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"
});

См. также[]

Advertisement