Участник:Менделеевец99/DisambigFIO

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

JS-скрипт DisambigFIO (помощь участнику в создании дизамбигов персоналий)

Назначение

[править | править код]

Помогает участнику создавать стандартную часть вики-текста страниц неоднозначности вида:

  • Фамилия, Имя
  • Фамилия, Имя Отчество

с применением шаблона {{NL}}, как это принято в русском языковом разделе Википедии.

На страницу Служебная:Mypage/common.js[1] скопируйте код строки подключения

mw.loader.load('https://ru.wikipedia.org/w/index.php?title=User:Менделеевец99/JS/DisambigFIOLib.js&action=raw&ctype=text/javascript');

Скрипт предназначен для использования в режимах редактирования и предварительного просмотра, поэтому рационально помещать строку подключения внутрь условного оператора if проверяющего режим работы страницы. Если в Вашем common.js ещё нет такого оператора if, то скопируйте его из следующего абзаца.

if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
// здесь помещать строки подключения скриптов для режима редактирования
}

и сохраните страницу (common.js).

Актуальная стабильная версия 1.4 — (опубликована 24 октября 2017 года). Текущая версия 1.4. При переходе в режим редактирования какой-либо страницы[2] на панели инструментов вики-редактора появляется командная кнопка со значком . Для отображения этой кнопки, в настройках участника должна быть включена опция Показывать панель инструментов при редактировании на вкладке Редактирование.

Если Вы не захотите больше пользоваться этим скриптом, просто удалите строку подключения из вашего js-файла и очистите кеш браузера.

Применение

[править | править код]

Начните создание новой страницы в основном пространстве с именем вида Фамилия, Имя Отчество (уточнение) или перейдите в режим редактирования вики-текста существующей страницы с подобным файловым именем. Над окном редактирования скрипт отображает свою командную кнопку с всплывающей подсказкой
DisambigFIO (Дизамбиг персоналий) v.1.4. Достаточно нажать эту кнопку, чтобы гаджет сформировал стандартную часть вики-текста страницы дизамбига, исходя только из файлового имени редактируемой страницы. Контент дизамбига — перечень персоналий не может быть сгенерирован только из имени страницы дизамбига. Контент должен добавить участник применяющий этот скрипт.

Файловое имя создаваемой страницы Журавлёв, Александр Александрович (значения)

гаджет сгенерировал вики-текст:

{{ФИО}}
'''Александр Александрович Журавлёв:'''
<!-- Перенесите следующую строку вики-текста на страницу [[Журавлёв, Александр]]
* {{NL2|Журавлёв, Александр Александрович (значения)|Журавлёв, Александр Александрович}}
 и удалите весь этот комментарий -->
<onlyinclude>
* [[Журавлёв, Александр Александрович (уточнение)|Журавлёв, Александр Александрович]] (род. 19??) —— род занятий.</onlyinclude>
{{Список полных тёзок}}

Сначала покажет добавляемый текст в окне сообщения. Любое окно сообщения имеет только кнопку "ОК". Поэтому не предоставляет возможности отменить вставку текста. После нажатия "ОК" сгенерированный гаджетом вики-текст будет вставлен в вики-текст редактируемой страницы в текущую позицию курсора перед выделением (если выделено), не заменяя существующий вики-текст[3]. Участнику остаётся вручную:

1. добавить вики-текст, собственно списка персоналий.

В данном случае список персоналий участник вручную перенёс со страницы

[[Журавлёв, Александр]]
{{Однофамильцы|Журавлёв}}
'''Александр Журавлёв:'''
<!-- Перенесите следующую строку вики-текста на страницу [[Журавлёв]]
* {{NL|Журавлёв, Александр}}
 и удалите весь этот комментарий -->
<onlyinclude>
* [[Журавлёв, Александр Отчество (уточнение)|Журавлёв, Александр Отчество]] (род. 19??) —— род занятий.</onlyinclude>
{{Список однофамильцев-тёзок}}
2. перенести вызов шаблона NL
* {{NL2|Журавлёв, Александр Александрович (значения)|Журавлёв, Александр Александрович}}
на страницу, в которую должна включаться (англ. transclude) редактируемая страница —
Журавлёв, Александр (в данном примере), на место изымаемой из неё части списка персоналий.

Внимательно просматривайте сгенерированный вики-текст.

Настройки записываются в виде

var DisambigFIO_переменная = значение;

перед строкой подключения. Например, весь код подключения скрипта будет выглядеть так (в актуальной версии 1.2 настроечные параметры не реализованы):

//var DisambigFIO_alert_no = true; // в актуальной версии 1.2 настроечные параметры не реализованы
importScript('Участник:Менделеевец99/JS/DisambigFIOLib.js');

Список настроечных параметров:

Переменная Описание Значение по умолчанию
alert_no Не выводить окна сообщений. false
true

Тестирование

[править | править код]
  • Автор протестировал скрипт, в той же учётной записи где лежит код скрипта. И в другой (У:NW55), специально созданной для тестирования скриптов.
  • Автор протестировал скрипт только с «новой» панелью инструментов вики-редактора.

Баг-репорты

[править | править код]

[4]

Баг-репорты
Описание Версия дифф
3 B1 C1 v.1.5-004
2 B2 C2 D2
1 B3 C3 D3

Changelog — история изменений

[править | править код]
  • Теперь на страницу со списком полных тёзок вписывает {{ФИО}} без параметров. Вместо {{Другие ФИО|Фамилия|Имя}} (по совету  91.79)
  • Теперь генерируемый вики-текст вместо двух пар тегов include содержит одну пара тегов onlyinclude (по совету  Джек, который построил дом)
  • v.1.5-004 исправлен баг №3

Автор протестировал скрипт в браузере Firefox.

Принцип работы

[править | править код]

Ещё не распознаёт действительно ли слова файлового имени редактируемой страницы являются компонентами ФИО. Это ответственность участника применяющего скрипт.

Определение вида неоднозначности

[править | править код]

Ориентируется по количеству слов, не считая уточнения.

  • Если = 1 не добавляет вики-текст;
  • Если = 2 — Фамилия, Имя;
  • Если > 2 — Фамилия, Имя Отчество. Почему > 2, а не = 3? Азербайджанское ФИО состоит из 4 слов. Например Каграманов, Надир Фаррух оглы. На эту страницу по нажатию (с целью тестирования) участником кнопки скрипта, скрипт добавил вики-текст
{{ФИО}}
'''Надир Фаррух оглы Каграманов:'''
<!-- Перенесите следующую строку вики-текста на страницу [[Каграманов, Надир]]
* {{NL2|Каграманов, Надир Фаррух оглы}}
 и удалите весь этот комментарий -->
<onlyinclude>
* [[Каграманов, Надир Фаррух оглы (уточнение)|Каграманов, Надир Фаррух оглы]] (род. 19??) —— род занятий.</onlyinclude>
{{Список полных тёзок}}

Страница Каграманов, Надир Фаррух оглы — статья о человеке, а не страница неоднозначности. Поэтому участник не сохранил изменения.

Контроль запятой

[править | править код]

Проверяет наличие запятой после первого слова,если оно не последнее. Если отсутствует запятая Фамилия Имя предлагает участнику создать перенаправление на Фамилия, Имя.

Статус Событие Дата Адрес страницы javascript-кода
персональный скрипт Создана страница кода 18 февраля 2017 года Участник:Менделеевец99/JS/DisambigFIOLib.js
//-// Опубликована для использования (версия 1.2) с 23 февраля 2017 года //-//
//-// Подготовка к публикации версии 1.4 с 18 октября 2017 года //-//
//-// Опубликована для использования версия 1.4 24 октября 2017 года //-//
JS-Гаджет ещё нет MediaWiki:Gadjet-DisambigFIO.js
Пользователи

Поиск

Пользователи
User diff Contributions
1 Egor Shustoff diff contribs
2 B2 C2 D2
3 B3 C3 D3

Примечания

[править | править код]
  1. common.js — общий JS для всех тем оформления. См. Служебная:Настройки|Внешний вид
  2. В последующих версиях ограничить только пространством статей.
  3. В будущих версиях сделать возможность охватывания выделенной части вики-текста. Это будет удобно при ремонте существующих дизамбигов, в которых контент уже есть.
  4. Как правильно составлять баг-репорты

Дизамбиг персоналий