Расширение:CharInsert
CharInsert Статус релиза: стабильно |
|
---|---|
Реализация | Тег , Действие страницы , MyWiki |
Описание | Позволяет создавать поля для вставки символов на JavaScript. |
Автор(ы) | Brion Vibber (Brooke Vibberобсуждение) |
Последняя версия | continuous updates |
Политика совместимости | Снэпшоты выходят вместе с MediaWiki. Мастер не имеет обратной совместимости. |
Лицензия | GNU General Public License 2.0 или позднее |
Скачать | |
<charinsert> |
|
Ежеквартальные загрузки | 70 (Ranked 71st) |
Использование общедоступными вики | 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 для вставки шаблонов описания изображения.
- В отличие от кнопок вставки на верхней панели это расширение не даёт способа указать пример вставляемого текста.
- Используйте
для добавления переносов строки (\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)
- Готово – Перейдите на страницу 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:Gadget-charinsert-core.js (Wikipedia) - Главный файл JavaScript.
- MediaWiki:Gadget-charinsert-styles.css (Wikipedia) - Оформляет ссылки charinsert как кнопки.
- MediaWiki:Gadget-charinsert.js (Wikipedia) - Загрузчик CharInsert.
- MediaWiki:Gadget-charinsert (Wikipedia) - Для текста, отображаемого в пользовательских настройках раздела гаджетов.
- В 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
Это расширение используется в одном или нескольких проектах Викимедиа. Вероятно, это означает, что расширение стабильно и работает достаточно хорошо, чтобы использоваться такими сайтами с высоким трафиком. Найдите название этого расширения в файлах конфигурации Викимедиа CommonSettings.php и InitialiseSettings.php, чтобы узнать, где оно установлено. Полный список расширений, установленных на конкретной вики, можно увидеть на странице Special:Version wiki. |
Это расширение включено в следующие вики-фермы/хостинги и/или пакеты: Это не исчерпывающий список. Некоторые вики-фермы/хостинги и/или пакеты могут содержать это расширение, даже если они не перечислены здесь. Всегда сверяйтесь со своими вики-фермами/хостингами или комплектами/бандлами для подтверждения. |
- Stable extensions/ru
- Tag extensions/ru
- Page action extensions/ru
- Personalization extensions/ru
- GPL licensed extensions/ru
- Extensions in Wikimedia version control/ru
- BeforePageDisplay extensions/ru
- ParserFirstCallInit extensions/ru
- All extensions/ru
- Extensions used on Wikimedia/ru
- Extensions included in Canasta/ru
- Extensions included in Fandom/ru
- Extensions included in Miraheze/ru
- Extensions included in ShoutWiki/ru
- Extensions included in Telepedia/ru
- Extensions included in wiki.gg/ru
- Extensions included in WikiForge/ru
- Edit extensions/ru