Участник:Jack who built the house/copyWikilinks

copyWikilinks.js

copyWikilinks.jsперсональный скрипт для быстрого копирования вики-ссылок.

С ним можно простым нажатием клавиш добывать вики-ссылки для текущей страницы и раздела, а также для ссылок. Больше не надо никуда прокручивать и вручную выделять заголовок страницы или раздела; достаточно нажать:

  • Ctrl+Ё, чтобы получить всплывающее окошко, из которого можно скопировать вики-ссылку на текущую страницу;
  • Ctrl+⇧ Shift+Ё, чтобы получить всплывающее окошко, из которого можно скопировать вики-ссылку:
    • если курсор мыши находится над ссылкой на вики-страницу — на эту страницу;
    • если курсор мыши находится не над ссылкой — на раздел текущей страницы, над которым находится курсор (не обязательно над заголовком; лучше поместить курсор над текстом).

Всплывающее окошко затем убирается по нажатию Esc.

Например, в статье Эйяфьядлайёкюдль:

 Ctrl+Ё
 Ctrl+⇧ Shift+Ё

Добыча вики-ссылки из ссылки:

 Ctrl+⇧ Shift+Ё  

В качестве бонуса по нажатию Alt+Ё во время редактирования работает преобразование ссылок, содержащихся в выделенном тексте или перед курсором, в вики-ссылки. Если у вас установлен гаджет упрощения ссылок — скрипт вызывает его; в обратном случае использует собственный алгоритм, который несколько более прост, чем алгоритм гаджета. Если текст выделен на странице, а не в области редактирования, то всегда используется собственный алгоритм.

При этом на страницах истории, диффов и т. п. скрипт по нажатию Ctrl+Ё предлагает скопировать раскодированный URL, а не вики-ссылку.

Подключение

Для установки скрипта добавьте в свой common.js:

importScript('Участник:Jack who built the house/copyWikilinks.js');

Скрипт работает и в других разделах и родственных проектах (при этом выдаёт вики-ссылки с соответствующим префиксом, например :en: в англовики). Чтобы установить его глобально во всех разделах, добавьте следующий код в свой global.js на meta.wikimedia.org:

mw.loader.load('//ru.wikipedia.org/w/index.php?title=Участник:Jack_who_built_the_house/copyWikilinks.js&action=raw&ctype=text/javascript');

Настройки

Настройки записываются в виде window.переменная = значение;. Например, весь код может выглядеть так:

window.copyWikilinksSqBrackets = false;
importScript('Участник:Jack who built the house/copyWikilinks.js');

Список настроек:

Переменная Описание Значение по умолчанию
copyWikilinksSqBrackets Окружать ли вики-ссылки двойными скобками. true
copyWikilinksSingleSqBrackets Окружать ли простые ссылки одинарными скобками. true
copyWikilinksUseUrlDecoder Использовать ли гаджет упрощения ссылок для выделенного текста в области редактирования (в обратном случае — всегда использовать собственный алгоритм). true
copyWikilinksHomePrefix Префикс (без двоеточий) домашнего раздела и/или родственного проекта, который не будет включаться в вики-ссылки. Примеры: 'en', 'wikt', 'wikt:en', 'meta'. 'ru'
copyWikilinksCurrentIsHome Считать домашним тот раздел, в котором ты сейчас находишься. false
copyWikilinksColonFile Ставить ли двоеточие перед префиксом «Файл» (иначе получится изображение, а не ссылка). false
copyWikilinksColonCategory Ставить ли двоеточие перед префиксом «Категория» (иначе проставится категория, а не выведется ссылка). false
copyWikilinksUseLinkText При добыче вики-ссылки из ссылки использовать текст ссылки в качестве отображаемого текста ([[Название страницы|отображаемый текст]]). Работает при включённом copyWikilinksSqBrackets. false
copyWikilinksUseIwTemplate Копировать код шаблона {{iw}} для ссылок в других разделах вместо простой ссылки (по возможности проверяет на наличие русской интервики и включает этот режим, только если её нет). false
copyWikilinksKeyCombination1 Сочетение клавиш вместо Ctrl+Ё, всеми строчными. 'ctrl+ё'
copyWikilinksKeyCombination2 Сочетение клавиш вместо Ctrl+⇧ Shift+Ё, всеми строчными. 'ctrl+shift+ё'
copyWikilinksKeyCombination3 Сочетение клавиш вместо Alt+Ё, всеми строчными. 'alt+ё'

Детали

Код расположен по адресу Участник:Jack who built the house/copyWikilinks.js. Скрипт был впервые представлен на форуме в апреле 2016 года.

Сообщайте о найденных проблемах на страницу обсуждения скрипта.

См. также