CharInsertList

From Wiki4Intranet
Revision as of 18:51, 30 June 2011 by VitaliyFilippov (Talk | contribs)

This is a page snapshot, showing old (but not deleted) versions of images and templates.
Jump to: navigation, search

Расширение, похожее на CharInsert, полезное исключительно для использования с «EditTools», и позволяющее вставлять выпадающие списки для вставки шаблонов, аналогичных CharInsert’овским.

Установка

Просто скопируйте исходный код расширения в поддиректорию extensions/CharInsertList/ установки MediaWiki и добавьте в LocalSettings.php строчку:

require_once "extensions/CharInsertList/CharInsertList.php";

Использование

EditTools — это ваш персональный набор средств редактирования, который задается на страничке MediaWiki:Edittools, или, при установленном расширении UserMessage (например, в составе сборки Mediawiki4Intranet), личной MediaWiki:Edittools@18.97.9.175, и показывается под блоком редактирования текста.

Эту страницу можно персонализировать, вставляя на нее всякие штуки, чтобы при редактировании этот блок показывал разные виджеты, нажимая на которые, в текст будут вставлятся редкие символы или длинные строковые последовательности (которые лень вспоминать и набивать руками).

Расширение предоставляет тег <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.9.175, ну а потом доработать по вкусу — выкинуть ненужное, добавить нужное.

И кстати — эта статья всегда рядом и доступна для редактирования — написав что-то длинное и поняв, что этот блок придется вставлять часто → не поленитесь, тут же добавьте его в вашу MediaWiki:Edittools@18.97.9.175.


Статья отреплицирована из внутренней базы знаний компании.