Расширение:CharInsert

From mediawiki.org
This page is a translated version of the page Extension:CharInsert and the translation is 100% complete.
Справка по расширениям MediaWiki
CharInsert
Статус релиза: стабильно
Реализация Тег , Действие страницы , MyWiki
Описание Позволяет создавать поля для вставки символов на JavaScript.
Автор(ы) (Brooke Vibberобсуждение)
Последняя версия continuous updates
Политика совместимости Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki >= 1.42
Лицензия GNU General Public License 2.0 или позднее
Скачать
‎<charinsert>
Ежеквартальные загрузки 105 (Ranked 66th)
Использование общедоступными вики 9,224 (Ranked 15th)
Переведите расширение CharInsert, если оно доступно на translatewiki.net
Проблемы Открытые задачи · Сообщить об ошибке

Расширение CharInsert позволяет создавать реализованные на JavaScript ссылки, которые при нажатии на них вставляют предопределённый текст в текстовое поле.

Эти ссылки обычно используются в системном сообщении MediaWiki:Edittools (например, в этой вики).

Синтаксис

В тэги ‎<charinsert> помещается список разделяемых пробелами символов или тэгов, которые планируется вставлять.

Знак плюса + внутри тэга определяет место, куда

  • вставится выделенный текст или
  • поместится курсор, если не было выделенного текста.

Шаблоны и пробелы следует оборачивать в ‎<nowiki>:

<charinsert><nowiki>== + ==</nowiki> <nowiki>{{stub}}</nowiki></charinsert>

Использование и пример вывода

Отдельные символы

Отдельные символы просто перечисляются внутри тэгов ‎<charinsert>...‎</charinsert>.

<charinsert>Á á Ć ć É é Í í Ĺ ĺ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź</charinsert>

возвращает

Á á Ć ć É é Í í Ĺ ĺ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź

Нажатие на ссылки не будет иметь эффекта, если страница не находится в режиме редактирования.

Комбинации символов

Комбинации символов перечисляются внутри тэгов ‎<charinser>...‎</charinser> и соединяются символом +.

<charinsert>“+” ‘+’ «+» ‹+› „+“ ‚+‘ [[+]] {{+}}</charinsert>

возвращает

“” ‘’ «» ‹› „“ ‚‘ [[]] {{}}

Нажатие на ссылки не будет иметь эффекта, если страница не находится в режиме редактирования.

Переопределение отображаемого текста

Версия MediaWiki:
1.38
Gerrit change 748823

Другой отображаемый текст может быть указан в атрибуте label (если вы используете это, вы должны использовать отдельные теги <charinsert> для каждого символа, чтобы указать разные отображаемые тексты).

<charinsert label="Latin A">A</charinsert> <charinsert label="Cyrillic А">А</charinsert> <charinsert label="Greek Alpha">Α</charinsert>

возвращает

Latin A Cyrillic А Greek Alpha

Нажатие на ссылки не будет иметь эффекта, если страница не находится в режиме редактирования.

Замечания

  • Полученные JavaScript-ссылки также работают в других областях рядом с окном редактирования: например, в MediaWiki:Copyrightwarning или MediaWiki:Newarticletext, на страницах, загруженных с Inputbox и из предпросмотра текста.
  • Также они могут использоваться в MediaWiki:Uploadtext для вставки шаблонов описания изображения.
  • В отличие от кнопок вставки на верхней панели это расширение не даёт способа указать пример вставляемого текста.
  • Используйте &#10; для добавления переносов строки (\n).
  • Заключайте пробелы в тэги ‎<nowiki>...‎</nowiki> при необходимости.
  • Применяйте тэги ‎<charinsert>...‎</charinsert> в MediaWiki:Edittools.

Установка

  • Скачайте и распакуйте файл(ы) в папку с названием CharInsert в вашей папке extensions/.
    Вместо этого разработчикам и соавторам кода следует установить расширение из Git, используя:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CharInsert
  • Добавьте следующий код в конце вашего файла LocalSettings.php :
    wfLoadExtension( 'CharInsert' );
    
  • Если вы используете гаджет Edittools , обновите его до последней версии (≥ 3 апреля 2020)
  • Yes Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

Расширенная установка

Важное: Для работы требуется Расширение:Гаджеты .

Оформление

Чтобы дополнительно настроить отображение списков charinsert, заключите содержимое Edittools в тэги <div class="mw-charinsert-buttons"> и ‎</div> и определите класс в MediaWiki:Common.css. Этот сайт (www.mediawiki.org) использует такое оформление, при котором эти ссылки выглядят как кнопки (см. скриншот справа). Для этого используется приведённая ниже таблица стилей, скопируйте её в ваш MediaWiki:Common.css, чтобы получить тот же результат.

 
/**
 * Styling for links generated by [[MediaWiki:Edittools]]
 * @source https://www.mediawiki.org/wiki/Extension:CharInsert#Styling
 * @updated 2020-03-17
 */
.mw-charinsert-buttons {
	border: 1px solid #aaa;
	margin-top: 10px;
	padding: 1px;
	font-size: 1.1em;
	text-align: center;
}

.mw-charinsert-buttons a {
	background-color: #cde !important;
	color: #000;
	border: thin #069 outset;
	padding: 0 1px 1px;
	font-weight: bold;
	font-size: 0.9em;
	text-decoration: none;
}

.mw-charinsert-buttons a:hover,
.mw-charinsert-buttons a:active {
	background-color: #bcd;
	border-style: inset;
}

.client-js .mw-edittools-section {
	display: inline;
}

.client-js .mw-edittools-section input[type="button"] {
	font-size: 0.9em;
	margin-left: 1px;
	padding-left: 1px;
	padding-right: 1px;
}

Также можно использовать стиль, близкий к Wikimedia Design Style Guide и the WikimediaUI theme:

 
/**
 * Styling for links generated by [[MediaWiki:Edittools]] in WikimediaUI inspired theme.
 * @source https://www.mediawiki.org/wiki/Extension:CharInsert#Styling
 * @updated 2020-03-17
 */
.mw-charinsert-buttons {
	margin-top: 8px;
	border: 1px solid #c8ccd1;
	padding: 2px 4px 4px;
	font-size: 1.1em;
	text-align: center;
}

.mw-charinsert-buttons a {
	background-color: #f8f9fa !important;
	color: #202122;
	border: thin #36c outset;
	padding: 0 1px 2px;
	font-size: 0.9em;
	font-weight: bold;
	text-decoration: none;
}

.mw-charinsert-buttons a:hover {
	background-color: #fff;
    color: #404244;
}

.mw-charinsert-buttons a:active {
	background-color: #c8ccd1;
	border-style: inset;
}

.client-js .mw-edittools-section {
	display: inline;
}

.client-js .mw-edittools-section input[type="button"] {
	background-color: #f8f9fa;
	color: #202122;
	margin-left: 1px;
    border-radius: 2px;
	padding: 1px 6px;
	font-size: 0.9em;
    /* Apply pointer cursor to all interactive elements. */
    cursor: pointer;
}

.client-js .mw-edittools-section input[type="button"]:hover {
	background-color: #fff;
    color: #404244;
}

.client-js .mw-edittools-section input[type="button"]:active {
	background-color: #c8ccd1;
    color: #000;
}

Использование в скриптах

Если используется слишком много ссылок CharInsert, с помощью JavaScript их можно организовать в отдельные группы и переключаться между ними в выпадающем меню. Например, отделить символы с диакритикой от вики-синтаксиса и т.д. Так уже сделано на некоторых сайтах (таких как mediawiki.org, de.wikipedia.org и en.wikipedia.org). Хотя каждый из них реализовал это собственным способом. Способ, используемый на mediawiki.org, изложен ниже:

1. Заключите все тэги charinsert на MediaWiki:Edittools в контейнер ‎<div> и укажите для него уникальный понятный идентификатор ID (например, "mw-edittools-charinsert"):
<div id="mw-edittools-charinsert" class="mw-charinsert-buttons" title="Click on the wanted special character.">
...
</div>
2. Оберните каждый индвидуальный блок charinsert в тэги ‎<p> по образцу ниже:
<p class="mw-edittools-section" data-section-title="Wiki-Syntax" style="display: none;">
...
</p>
Заметка Заметка::
  • Не изменяйте текст 'mw-edittools-section'
  • Текст в атрибуте "data-section-title=" будет идентификатором группы в выпадающем меню.
  • Убедитесь, что одна из групп не содержит указания 'style="display: none;"': она будет выбором по умолчанию для выпадающего меню. На этом сайте такая группа называется Standard, а остальные группы названы по языкам, символы которых они содержат.
3. Скопируйте содержимое MediaWiki:Gadget-Edittools.js на одноимённую страницу собственной вики
4. Добавьте следующий код к MediaWiki:Gadgets-definition:
* Edittools[ResourceLoader|default]|Edittools.js

Меню CharInsert в Английской Википедии

Для реализации меню CharInsert по примеру используемого в Английской Википедии, либо экспортируйте гаджеты Charinsert-core, Charinsert-styles и Charinsert, а затем импортируйте в свою вики с помощью Special:Import, либо вручную скопируйте следующие четыре страницы интерфейса в свою вики:

  • В MediaWiki:Gadgets-definition добавьте следующие определения:
    * charinsert[ResourceLoader|default|peers=charinsert-styles]|charinsert.js
    * charinsert-core[ResourceLoader|hidden|dependencies=jquery.textSelection,user,mediawiki.storage]|charinsert-core.js
    * charinsert-styles[ResourceLoader|hidden|type=styles]|charinsert-styles.css
    
  • MediaWiki:Edittools (Wikipedia) - Только для пользователей с выключенным или неподдерживаемым JavaScript (но такая настройка отключает и расширение WikiEditor), поэтому не является необходимым. Просто показывает символы в виде обычного текста под окном редактирования, откуда они могут быть скопированы вручную, что может быть полезно для некоторых пользователей. Очевидно, что при отключённом JavaScript в Английской Википедии он не работает.

Заметка Заметка: Данный набор символов и заготовок для вставки из Английской Википедии также включает в себя шаблоны, которые должны быть созданы отдельно, если будут нужны в вашей вики.

Решиние для Английской Википедии проверено 6 ноября 2018