CharInsertList
Расширение, похожее на CharInsert, полезное исключительно для использования с «EditTools», и позволяющее вставлять выпадающие списки для вставки шаблонов, аналогичных CharInsert’овским.
Contents
Установка
Просто скопируйте исходный код расширения в поддиректорию extensions/CharInsertList/ установки MediaWiki и добавьте в LocalSettings.php строчку:
require_once "extensions/CharInsertList/CharInsertList.php";
Использование
EditTools — это ваш персональный набор средств редактирования, который задается на страничке MediaWiki:Edittools, или, при установленном расширении UserMessage (например, в составе сборки Mediawiki4Intranet), личной MediaWiki:Edittools@18.97.14.82, и показывается под блоком редактирования текста.
Эту страницу можно персонализировать, вставляя на нее всякие штуки, чтобы при редактировании этот блок показывал разные виджеты, нажимая на которые, в текст будут вставлятся редкие символы или длинные строковые последовательности (которые лень вспоминать и набивать руками).
Расширение предоставляет тег <listinsert>, в котором перечисляется список пар вида «имя=текст», и который при показе преобразуется в выпадающий список с именами. При выборе из этого списка какого-то элемента по имени, соответствующий текст аналогично CharInsert'у вставляется в окно редактирования.
Этот текст может быть многострочным и содержать «место для курсора». На место курсора либо подставляется выделенный до вставки редактируемый текст, либо просто устанавливается курсор, если нет выделения.
Синтаксис
Синтаксис использования:
<listinsert [атрибуты]>
Имя Шаблона = Текст Шаблона
Имя Шаблона = Длинный и многострочный \
текст \
шаблона
Имя Шаблона = То_что_вставить_перед_курсором + То_что_вставить_после_курсора
Имя Шаблона = А вот это простой символ \+, а не место курсора (со слэшем)
</listinsert>
[атрибуты] копируются в атрибуты HTML-тега <select> без каких-либо изменений.
Usage Syntax (English):
<listinsert [attributes]>
Item Name = Item Text
Item Name = Long and multiline \
Item Text
Item Name = What_is_inserted_before_cursor + What_is_inserted_after_cursor \
CharInsert-like syntax
Item Name = This is a real \+ character, not cursor marker (with slash)
</listinsert>
[attributes] are copied to HTML <select> attributes without any change.
Примеры
Например, некоторые категории используются особенно часто. Можно завести блок специально для того, чтобы не набивать их руками:
<div style="float:left">Активные категории: <listinsert style="background-color:lightblue"> Взял = [[Category:Взял Стас Фомин]] CustisWikiToLib = [[Category:CustisWikiToLib]] Архив = [[Category:CustisGarbage]] </listinsert> </div>
- «div style="float:left"» — это просто плавающий блок с выравниванием влево, так проще делать, если у вас будет много таких блоков.
- «Активные категории» — это поясняющая метка
- «listinsert» — собственно смысл этого расширения, три категории помеченные краткими ключами.
Теперь посложнее — сделаем подстановку длинных, часто используемых вами «конструктов» — относительно длинных блоков текста (опять на примере моих):
<div style="float:left"> Конструкты
<listinsert style="background-color:lightgray">
nowiki = <prе><nоwiki>\
+\
</nоwiki></prе>
digraph = <graph>\
digraph G{node [style=filled fillcolor=aliceblue] edge[color=blue] \
+ \
} \
</graph>
CONFIDENTIAL =
includeonly = <includeonly>\
+\
</includeonly>
noinclude = <noinclude>\
+\
</noinclude>
blockquote = <blockquote>\
+\
</blockquote>
htmlobj = <html><center>\
+\
</center></html>
tolib = {{replicate-from-custiswiki-to-lib}}
refs = ----\
<references/>
poll = <poll> \
ALTERNATIVE \
AUTHORIZED \
Как насчет \
Очень хотим этого! \
Неплохо бы \
Все равно \
Против \
</poll>
</listinsert>
</div>
То есть здесь последовательно:
- nowiki
- заключить выделенное в блок, где не обрабатывается разметка. Обратите внимание на «+» — туда как раз подставится выделенный блок текста, или просто курсор, если ничего не выделено.
- digraph
- шаблон направленного графа для Graphviz. Обратите внимание на многострочную запись — продление текста через символ «\» в конце строки.
- CONFIDENTIAL
- выделение конфиденциальной информации, не реплицируемой в другую вики.
- includeonly
- то, что выводится, только будучи включенным в другую статью.
- noinclude
- то, что не выводится, будучи включенным в другую статью.
- blockquote
- для цитирования большого блока текста (с красивой рамочкой).
- htmlobj
- вставка какого-то мультимедиа объекта, представимого здоровым HTML-кодом (видео там, или презентации).
- tolib
- шаблон репликации во внешнюю вики-систему.
- refs
- горизонтальная черта, под которой коллекция сносок.
- poll
- набросок типичного голосования.
- dir
- вставка «каталога» вложенных статей.
В любом случае, вы можете скопировать текст из моих настроек в статье MediaWiki:Edittools@StasFomin и вставить в свою MediaWiki:Edittools@18.97.14.82, ну а потом доработать по вкусу — выкинуть ненужное, добавить нужное.
И кстати — эта статья всегда рядом и доступна для редактирования — написав что-то длинное и поняв, что этот блок придется вставлять часто → не поленитесь, тут же добавьте его в вашу MediaWiki:Edittools@18.97.14.82.
Статья отреплицирована из внутренней базы знаний компании.