Информационная страница Википедии
Гаджет Википедии — это программа JavaScript и/или фрагмент CSS , которые можно включить, просто отметив опцию в настройках . Функция гаджета предоставляется расширением MediaWiki Gadgets.
Многие гаджеты начинались как пользовательские скрипты . После того, как пользовательский скрипт одобрен как гаджет, он удаляется из Wikipedia:User scripts/List .
Общие критерии для гаджетов
Для размещения в англоязычной Википедии гаджеты, как правило, должны соответствовать следующим условиям:
- Гаджеты должны работать, если их просто включить без дальнейшей настройки. Их можно настроить через personal common.js , но они должны работать ненастроенными.
- Гаджеты должны быть совместимы со всеми основными браузерами, т. е. они не должны завершаться с ошибками.
- Гаджеты должны быть функциональны в большинстве основных браузеров (кроссбраузерная совместимость). Исключения должны быть четко указаны.
- Дублирование гаджетов следует производить только в том случае, если это целесообразно.
- Коллекции скриптов следует разделять, если они имеют разрозненные функции.
- Гаджеты, требующие разрешений, должны быть помечены и должны корректно завершаться сбоем, если разрешения отсутствуют.
- Гаджеты, работающие только в некоторых скинах, должны быть помечены как таковые, если такие данные доступны.
Гаджеты, отмеченные как используемые по умолчанию и загружаемые для больших групп пользователей, должны соответствовать дополнительным критериям.
Предложения
Новые гаджеты должны быть предложены на техническом Деревенском Пассо .
Исторически новые гаджеты предлагались на подстранице этой страницы , но эта страница была отмечена как историческая из-за низкого участия. Кроме того, существующие скрипты WikiProject User оценивались для преобразования в гаджеты, но этот процесс также был отмечен как историческая.
Установка
Гаджеты могут быть установлены после обсуждения в техническом отделе поселковой колонки администраторами интерфейса следующим образом:
- Добавьте заголовок ниже и код скрипта в MediaWiki:Gadget - scriptname.js
- При желании добавьте заголовок ниже и код CSS в MediaWiki:Gadget - scriptname.css
- Добавьте описание скрипта в MediaWiki:Gadget- scriptname . Пожалуйста, укажите ссылку на домашнюю страницу скрипта и/или страницу справки и укажите требования к браузеру, если необходимо.
- Добавить в MediaWiki:Gadgets-definition под соответствующим заголовком
* имя_скрипта|имя_скрипта.js [|имя_скрипта.css|другой_скрипт.js|...]
Теперь гаджет должен появиться в разделе Special:Gadgets .
Комментарии
Комментарии или предупреждения можно добавлять в шаблоны описания гаджетов двумя способами:
- Тег noinclude (виден на странице описания со ссылками):
<noinclude> comment </noinclude>
- HTML-комментарии (видны только в исходном тексте):
<!-- comment -->
Комментарии, добавленные таким образом, будут автоматически удалены в процессе создания страницы.
Заголовок
В файлы гаджета необходимо добавить следующий заголовок:
/* _________________________________________________________________________________ * | | * | === ВНИМАНИЕ: ГЛОБАЛЬНЫЙ ФАЙЛ ГАДЖЕТА === | * | Изменения на этой странице затрагивают многих пользователей. | * | Пожалуйста, обсудите изменения на странице обсуждения или на [[WT:Gadget]] перед редактированием. | * |______________________________________________________________________________| * * Импортировано из версии XXXX по состоянию на ДАТА из [[SCRIPT_SOURCE]] * КРАТКОЕ ОПИСАНИЕ, см. [[SCRIPT_HOME_PAGE]] */
Гаджеты по умолчанию
Гаджет с ключевым словом по умолчанию включен для всех посетителей Википедии, и только зарегистрированные пользователи могут отключить его. Гаджет с [default|rights=minoredit]
описанием будет автоматически включен только для зарегистрированных пользователей.
Критерии
Гаджеты, которые включены по умолчанию для всех пользователей, должны соответствовать более строгим правилам. По сути, это те же правила, которые применяются ко всему поставляемому по умолчанию коду. Это связано с тем, что у пользователей нет активного выбора, включать их или нет, и гаджеты могут влиять на производительность, безопасность и стабильность всего веб-сайта. Эти гаджеты должны:
- Проверены опытным разработчиком JavaScript (обычно администратором интерфейса).
- Быть «в хорошем состоянии».
- Соблюдайте Политику в отношении сторонних ресурсов.
- Быть написанным для эффективной работы, т. е. с минимальным количеством кода, необходимым для выполнения. Если полная функциональность гаджета требует большого количества кода JavaScript, то этот код должен загружаться условно и лениво, или только по требованию (нажмите, чтобы загрузить).
- Никаких проблем с доступом не возникает.
- Не требуется, чтобы содержимое было читаемым, за исключением гаджетов, содержащих только стили.
- Не мешать печати страниц.
- Соблюдайте текущие стандарты безопасности и конфиденциальности.
Этот список не следует считать исчерпывающим.
Шаблоны гаджетов
Гаджеты шаблонов — это особая категория гаджетов по умолчанию. Эти гаджеты работают только на страницах в явных категориях триггеров, обычно управляемых путем добавления шаблона на страницу. Категории триггеров должны быть защищены от перемещения, поскольку они интегрированы с определением.
Установленные на данный момент гаджеты
Пользователи могут просмотреть список всех доступных гаджетов в разделе гаджетов на странице своих настроек:
Настройки → Гаджеты
Список всех активных гаджетов и ссылки на их файлы скриптов см. в разделе Special:Gadgets.
Плюсы и минусы замены пользовательского скрипта на гаджет
Плюсы
- Добавляет скрипт в Special:Preferences , что значительно упрощает его установку.
- Добавляет скрипт в Special:Preferences , что поможет в маркетинге скрипта и со временем увеличит количество установок.
- Предоставляет пользовательский скрипт сообществу, что повышает вероятность того, что администраторы интерфейса удовлетворят запросы на редактирование от других пользователей, что снижает необходимость создания форка пользовательского скрипта, если сопровождающий становится неактивным.
- Возможность отметить его как «гаджет по умолчанию», который будет загружаться для всех.
- Модули ResourceLoader и CSS-скрипт зависят от нагрузки при загрузке страницы, что позволяет скрипту быть готовым быстрее.
Особенно, если у пользовательского скрипта много пользователей...
- Гаджеты обеспечивают минимизацию и объединение с другими гаджетами, что уменьшает размеры файлов и HTTP-трафик.
- Возможная защита от взлома. Все администраторы интерфейсов имеют двухфакторную аутентификацию и удаляются, если становятся неактивными. Обычный сопровождающий может стать неактивным, а затем его учетная запись может быть скомпрометирована позже.
- Возможная защита от разработчика скриптов мошеннического пользователя. Администраторы интерфейса прошли RFA и, возможно, менее склонны к мошенничеству.
Минусы
- Позволяет использовать возможности JavaScript только до ES7 . Несколько возможностей ES8, таких как async–await, могут использоваться с этим
requiresES6
флагом. - Если сопровождающий не является администратором интерфейса, ему теперь придется делать {{ Edit interface-protected }} запросы, чтобы внести какие-либо изменения в код, что замедлит разработку.
- Множество шагов. Нужно убедиться, что сопровождающий согласен с этим, получить консенсус на WP:VPT , затем попросить администратора интерфейса все настроить. Может потребоваться план по переводу всех со старого пользовательского скрипта на гаджет. Если есть какие-либо опасения по поводу ошибок, может потребоваться поэтапное развертывание.
Смотрите также