Особенности KodomoWiki
Содержание
На странице kodomo используется вики-движок MoinMoin. Большинство того, что применимо к нему, применимо и к KodomoWiki, однако на KodomoWiki есть некоторое количество дополнений и ограничений. О них эта страница.
Ограничения
Некоторые вещи на KodomoWiki ограничены, просто в силу злобной натуры администраторов. Все эти ограничения, безусловно, противоречат духу и идеологии wiki.
Пользователи
На KodomoWiki нельзя регистрировать новых пользователей стандартными средствами Moin. Зато для пользователей используются те же логины и пароли, что и везде в классе (посредством LDAP).
Права
Редактирование страниц (вообще любых) возможно только для влогиненных пользователей.
На KodomoWiki включены иерархические ACL. Это значит, что если на какой-то странице PageName установлен ACL, то он применяется к ней и ко всем страницам вида PageName/AnyThing и PageName/Anything/Else.
Приложения
В MoinMoin существует понятие приложений (attachments). Они на KodomoWiki полностью отключены.
У каждого пользователя есть домашняя страница (H:\public_html), на которую можно выложить картинки для того, чтобы выставлять их через вики.
Дополнения
Ещё в KodomoWiki силами коленки Alexeyevsky, Danya впилено несколько приятностей. Как то:
Тема
Большой кровью к вики прикручена красивая тема. Если вы не заметили, там в уголке есть кнопочка hide menu, чтобы страница выглядела вообще почти совсем как чистый текст и никакая навигация не мешала.
К теме есть два стиля, тот, который по умолчанию, и /wiki-data/kodomo/css/grey.css – его можно прописать в настройках пользователя. Ещё никто не мешает по образу и подобию сваять для страницы и свой стиль, поломав всё к чертям и раскрасив всё в буйные цвета. Благо видеть их будут только те, кто выберут этот стиль в своих настройках.
Ещё, в нарушение могих основных идей wiki к странице можно приписать отдельный CSS стиль. Для этого используется pragma css, например, если у вас есть файл со стилем public_html/css/default.css, в котором написано:
#page { background: #cfc; }
и вы сделаете страницу с текстом:
#pragma css /~user/css/default.css Hello, world!
то текст Hello, world! отобразится у вас на бледно-зелёном фоне. Разумеется, мы настоятельно рекомендуем не злоупотреблять этой возможностью.
Формат разметки
Стандартный формат разметки moin приукрашен приятной мелочью:
Два минуса -- тире. Три минуса --- длинное тире.
Ещё к формату добавлено несколько стилей оформления абзацев текста:
quote – для оформления цитат в эпиграфах
cite – для оформления цитат в тексте
caution, note, warning, error – для разной степени важности предупреждений
noindent – текст без абзацных отступов (иногда такое очень нужно)
Есть ещё несколько стилей, которые я крайне не рекомендую использовать, так как они делают разметку не семантической, а синтаксической (что бы эти умные слова ни значили):
center – центрированный текст
red, green, blue, yellow, orange – текст на фоне соответствующего цвета (не используйте эти штуки)
solid, dashed, dotted – текст в чёрной рамке соответствующего типа (и эти штуки тоже не используйте)
Пример:
{{{#!wiki quote Цитата из великого человека. <<Signature(Великий человек)>> }}} {{{#!wiki warning warning }}} {{{#!wiki caution caution }}} {{{#!wiki note note }}} {{{#!wiki dotted red note Красноточие. }}}
Макросы
<<RandomStudent([pagename=PageName], [group=group])>> – пишет имя случайного студента. PageName должен быть оформлен так же, как списки студентов в учебных страницах. Если pagename не указан, то используется /год/Students. Страница должна содержать таблицу, в которой второй колонкой идут имена студентов, а в первой может стоять слово "Группа" перед списком студентов соотвтетствующей группы. group позволяет выбирать только студентов из заданной группы. Можно либо указать group в виде аргумента макроса, либо в качестве параметра в адресе страницы, на которой он отображается.
<<Href(url, [text], [gettext])>> нужен для двух вещей.
Во-первых, чтобы делать относительные ссылки, например: <<Href(/FBB, Учебные материалы)>>
- Во-вторых, чтобы текст ссылки отображался по-разному в зависимости от того, в каком языке просматривают страницу. Это нужно на самом деле только администраторам сайта, так как и страницу с переводами редактировать можно только им. Ну или если вы делаете ссылку на что-нибудь, у чего перевод в moin есть, то можете третьим параметром выставить True, чтобы название ссылки переводилось.
<<MangleEmail(email@as.rot13, title)>> – чуть более изощрённая защита от спам-харвестеров, чем обычный <<MailTo>>; в качестве первого аргумента получает адрес почты закодированный в rot13 (чтобы даже из исходных текстов страницы нельзя было угадать текст адреса), изображает ссылку на почту с помощью javascript, который этот rot13 расшифровывает.
<<User(login)>> = <<Sig(login, [realname])>> – форматирует подпись красивым образом со ссылкой на домашнюю вики-страницу. Из логина угадывает настоящее имя и изображает именно его.
<<Signature(текст)>> – форматирует текст как подпись. Например, полезно использовать для указания авторства в цитатах.
А вот этими макросами не стоит пользоваться:
<<Img(url, arg=value, arg=value)>> – дословный синоним обычного тэга <img>. Полезен для двух вещей:
Относительные ссылки: <<Img(/img/kodomo.png)>>. Вместо этого в moin можно делать так: {{Site:/img/kodomo.png}} .
Добавление приятностей, например, привязка к картинке id для использования в стиле: <<Img(/img/kodomo.png, class=small-images)>>.
<<ListInclude(pattern, [template], [linktemplate], [editlinktemplate], [begin], [end], [items], [bullets])>> – аналог обычного <<Include>>, но с возможностью оформлять результаты в виде списка. FIXME: объяснить как пользоваться или удалить к чертям собачьим.
Информация о квотах
Это макрос <<QuotaInfo>> (и снова несколько костылей, чтобы заставить его работать), который уже вкручен в страницу Info/QuotaInfo.
Список студентов со ссылками на домашние страницы
Сделан в виде весьма нетривиального макроса всё на той же коленке и сразу вкручен на страницу Info/UserList.
Примеры вики-разметки
=== Пример вики-разметки === {{{{#!example {{{#!wiki dotted red Hello ''world'' }}} }}}}