Обсуждение участника:Alex Smotrov/qactions.js
Документация
[править код]При переходе на страницу, для которой другой скрипт определённым образом составил URL адрес, этот скрипт выполнит определённые действия.
Действия указываются прямо в URL, начинаются с ключевого слова do и разделяются двоеточием, например:
http://ru.wikipedia.org/ruwiki/w/index.php?title=Статья&action=edit&do:watch=0:summary=test:focusText
Список возможных действий:
- wikify : обработать текст Викификатором
- insert=текст : добавить текст в начало страницы
- append=текст : добавить текст в конец страницы
- summary=описание : добавить описание
- focusText : перейти в окошко редактирования
- focusSummary: перейти в «Описание изменений»
- minor=1 : отметить как «Малое изменение»
- watch=1 : отметить «Включить эту страницу в список наблюдения»
- preview : нажать «Предварительный просмотр»
- diff : нажать «Внесённые изменения»
- save : нажать «Записать страницу» (если вы добавили себе
var enableAutoSave=true
)
Значения справа от знака '=' при необходимости должны быть закодированы encodeURIComponent()
Установка: добавить importScript('Участник:Alex Smotrov/qactions.js');
в свой monobook.js
Затем добавить один или несколько скриптов, которые будут создавать специальные ссылки, см. примеры ниже.
Примеры
[править код]Вставка шаблона
[править код]var caedit = document.getElementById('ca-edit'); //ссылка «править» сверху addPortletLink('p-cactions', caedit.firstChild.href + '&do:append={{stub}}:minor=0:summary=+{{stub}}:preview', '{stub}'); })
примерно такой код добавит сверху ссылку {stub}, при нажатии на которую ваш браузер:
- перейдёт на страницу редактирования статьи
- добавит '{{stub}}' в конец текста и '+{{stub}}' в описание изменении
- уберёт галочку «Малое изменение» и нажмёт кнопку «Предварительный просмотр»
Упрощение удаления изображений со страниц
[править код]if (wgCanonicalNamespace == 'Image') addOnloadHook(function(){ var ul, found, i, e, url; if (! (ul = document.getElementById('filelinks'))) return; do { ul = ul.nextSibling; found = (ul.tagName && (ul.tagName.toLowerCase() == 'ul')); } while (ul && !found); if (!found) return; var summary = 'Удаление изображения с неясным лицензионным статусом: "'+wgTitle + '"'; var links = ul.getElementsByTagName('a'); for (i=links.length-1; i>=0; i--){ url = links[i].getAttribute('href', 2).replace('/wiki/','/ruwiki/w/index.php?action=edit&title='); url += '&do:minor=1:find=' + encodeURIComponent(':'+wgTitle) + ':find=' + encodeURIComponent(':'+wgTitle.replace(/ /g,'_')) + ':summary=' + encodeURIComponent(summary) + ':focusText'; e = document.createElement('a'); e.href = url; e.appendChild(document.createTextNode('→')); e.title = 'Редактировать: ' + links[i].title; e.style.marginLeft = '10px'; links[i].parentNode.insertBefore(e, links[i].nextSibling); } })
Такой скрипт на страницах изображений добавит внизу к списку статей, использующих изображение, дополнительные ссылки → Каждая такая ссылка открывает страницу редактирования статьи, на которой уже указано нужное краткое описание, а в вики коде уже найдено и выделено название изображения:
|
|
Уточнения дизамбигов со страниц «Ссылки сюда»
[править код]if (wgCanonicalSpecialPageName == 'Whatlinkshere') addOnloadHook(function(){ var links = document.getElementById('bodyContent').getElementsByTagName('A'); var a, e, url; var article = document.getElementsByTagName('H1')[0].innerHTML; var summary = 'уточнение ссылок на [[Википедия:Разрешение неоднозначностей|дизамбиг]] [[' + article + ']]'; for (var i=links.length-1; i>5; i--){ a = links[i]; if (a.parentNode.tagName.toLowerCase() != 'li') continue; e = document.createElement('A'); url = a.getAttribute('href', 2).replace('/wiki/','/ruwiki/w/index.php?action=edit&title='); url += '&do:minor=1:find=' + encodeURIComponent(article) + ':summary=' + encodeURIComponent(summary) + ':focusText'; //e.target = '_blank'; //для открытия в новых окнах e.href = url; e.appendChild(document.createTextNode('→')); e.title = 'Редактировать: ' + a.title; e.style.marginLeft = '10px'; a.parentNode.insertBefore(e, a.nextSibling); } })
Такой скрипт на страницах «Ссылки сюда» добавит рядом с каждой ссылкой дополнительную ссылку →
Каждая такая ссылка откроет страницу редактирования статьи, на которой уже указано нужное краткое описание, отмечено «Малое изменение», а в вики коде уже найдено и выделено слово-дизамбиг (для того, чтобы вы его заменили на более конкретную ссылку).
Замечание: это только один из возможных инструментов для уточнений дизамбигов, и скорее всего не самый удобный. Попробуйте AWB, в котором есть для этого специальный раздел (скриншот на английском). В enwiki этой теме посвящена отдельная страница: en:Wikipedia:Disambiguation pages with links/Guide.
Возможные ошибки в связи с отключением wikibits.js
[править код]Поступил запрос на изменение защищённой страницы. За этим шаблоном должно следовать полное и детальное описание запроса, чтобы участник, не знакомый с предметом, мог выполнить его без промедлений. Если автор запроса знает JavaScript, лучше всего сразу приготовить код. Предложенные изменения должны быть либо очевидными, либо поддержаны консенсусом. |
Alex Smotrov, обратите внимание, что код этого скрипта может содержать следующие ошибки, вызванные использованием устаревшего кода, удалённого из движка «Медиавики» (скрипта wikibits.js, см. технические новости):
- Замените
doneOnloadHook
,onloadFuncts
,addOnloadHook
илиrunOnloadHook
на следующий код:jQuery( function( $ ) { // ваш код } );
$( название_функции );
- Полный список возможных ошибок и их решений: Legacy Javascript § wikibits.js (на mediawiki.org, англ.).
Если это сообщение пришло по ошибке и в скрипте нет проблемного кода, проигнорируйте его.
Используйте {{ping|Saint Johann}}
, чтобы получить дополнительные пояснения.
St. Johann от лица инженеров русской Википедии
Отправлено NapalmBot 22:19, 4 мая 2017 (UTC)