CharInsertList
Расширение, похожее на CharInsert, полезное исключительно для использования с «EditTools», и позволяющее вставлять выпадающие списки для вставки шаблонов, аналогичных CharInsert’овским.
Contents
Установка
Просто скопируйте исходный код расширения в поддиректорию extensions/CharInsertList/ установки MediaWiki и добавьте в LocalSettings.php строчку:
require_once "extensions/CharInsertList/CharInsertList.php";
Использование
EditTools — это ваш персональный набор средств редактирования, который задается на страничке MediaWiki:Edittools, или, при установленном расширении UserMessage (например, в составе сборки Mediawiki4Intranet), личной MediaWiki:Edittools@3.149.29.230, и показывается под блоком редактирования текста.
Эту страницу можно персонализировать, вставляя на нее всякие штуки, чтобы при редактировании этот блок показывал разные виджеты, нажимая на которые, в текст будут вставлятся редкие символы или длинные строковые последовательности (которые лень вспоминать и набивать руками).
Расширение предоставляет тег <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"> Взял = [[Категория:Взял Стас Фомин]] CustisWikiToLib = [[Категория:CustisWikiToLib]] Архив = [[Категория: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@3.149.29.230, ну а потом доработать по вкусу — выкинуть ненужное, добавить нужное.
И кстати — эта статья всегда рядом и доступна для редактирования — написав что-то длинное и поняв, что этот блок придется вставлять часто → не поленитесь, тут же добавьте его в вашу MediaWiki:Edittools@3.149.29.230.
Статья реплицируется в Wiki4IntraNet.