Здесь находится документация (какую смог написать) по тем action и macro, которыми я как-либо занимался. В случае, если авторство плагина не моё, оно указывается отдельно.
Макросы
ExtractInfo
Обёртка вокруг [[Include(SomePageName, , from="^==[ ]*" + header + "[ ]*==$", to="^----$")]]. Сответственно, включает в страницу, где есть макрос, куски страницы SourcePageName, ограниченные заголовками второго уровня с указанными названиями и горизонтальной чертой. Данный макрос используют макросы LicenseInfo и FormatInfo (с изменённым значением по умолчанию параметра Source).
Использование
[[ExtractInfo(Header1)]]
Вставит текст между "== Header1 ==" и ---- из страницы по умолчанию (.)
[[ExtractInfo(Header1,Header2)]]
Вставит текст между "== Header1 ==" и ----, а также между "== Header2 ==" и ---- из страницы по умолчанию (.)
[[ExtractInfo(Header1,Header2,Source=PageName)]]
Вставит текст между "== Header1 ==" и ----, а также между "== Header2 ==" и ---- из указанной страницы (PageName)
Пример
[[ExtractInfo(PDF,ODT,Source=PspoMaterials/FormatInfo)]] |
Файлы PDF можно просмотреть при помощи программы evince (gnome), kpdf (KDE), zathura или xpdf. Файлы в формате ODT можно просмотреть при помощи OpenOffice.org Writer, AbiWord или KOffice (KDE). |
[[ExtractInfo(GFDL,Source=PspoMaterials/LicenseInfo)]] |
|
TODO
- Переписать ограничители как параметры со значениями по умолчанию
FormatInfo
Макрос для вставки информации о формате.
Использование
[[FormatInfo(Format1,Format2,...)]]
Добавит информацию о форматах Format1, Format2 и так далее из страницы по умолчанию (../FormatInfo)
[[FormatInfo(Format1,Format2,...,Source=PspoMaterials/LicenseInfo)]]
Добавит информацию о лицензиях Format1, Format2 и так далее из указанной страницы (PspoMaterials/FormatInfo)
Пример:
[[FormatInfo(PDF,ODT,Source=PspoMaterials/FormatInfo)]] |
Файлы PDF можно просмотреть при помощи программы evince (gnome), kpdf (KDE), zathura или xpdf. Файлы в формате ODT можно просмотреть при помощи OpenOffice.org Writer, AbiWord или KOffice (KDE). |
LicenseInfo
Макрос для вставки информации о лицензии.
Использование
[[LicenseInfo(License1,License2,...)]]
Добавит информацию о лицензиях License1, License2 и так далее из страницы по умолчанию (../LicenseInfo)
[[LicenseInfo(License1,License2,...,Source=PspoMaterials/LicenseInfo)]]
Добавит информацию о лицензиях License1, License2 и так далее из указанной страницы (PspoMaterials/LicenseInfo)
Пример:
[[LicenseInfo(GFDL,CC-BY-SA,Source=PspoMaterials/LicenseInfo)]] |
|
CreateMaterialPassport
Вставляет форму для генерации нового паспорта материала.
Использование
[[CreateMaterialPassport()]]
- Вставляет форму, у которой не заполнены поля без значений по умолчанию
[[CreateMaterialPassport(),Option1=Value1,Option2=Value2,...]]
- Вставляет форму, у которой изменены параметры по умолчанию.
Параметры
Параметр |
Тип |
Значение по умолчанию |
Описание |
Name |
Имя страницы |
отсутствует |
Имя новой страницы паспорта материала |
Title |
строка |
отсутствует |
Название материала |
OriginalTitle |
строка |
отсутствует |
Оригинальное название материала |
Base |
Имя страницы |
Базовая страница для паспорта |
|
Author |
строка |
отсутствует |
Автор материала |
License |
строка |
отсутствует |
Лицензия материала |
LicenseBase |
Имя страницы |
Страница с информацией о лицензиях |
|
Format |
строка |
отсутствует |
Формат материала |
FormatBase |
Имя страницы |
Страница с информацией о форматах |
|
URL |
строка |
отсутствует |
Ссылка на источник |
Template |
Имя страницы |
Шаблон для создания паспорта материала |
|
NameLabel |
строка |
"Имя страинцы" |
Надпись для поля с именем новой страницы |
TitleLabel |
строка |
"Название" |
Надпись для поля с названием материала |
OriginalTitleLabel |
строка |
"Оригинальное название" |
Надпись для поля с оригинальным названием материала |
BaseLabel |
строка |
"Базовая страница" |
Надпись для поля с базовой страницей для паспорта |
AuthorLabel |
строка |
"Автор" |
Надпись для поля с автором материала |
LicenseLabel |
строка |
"Лицензия" |
Надпись для поля с лицензией материала |
LicenseBaseLabel |
строка |
"Страница описания лицензий" |
Надпись для поля со страницей с информацией о лицензиях |
FormatLabel |
строка |
"Формат" |
Надпись для поля с форматом материала |
FormatBaseLabel |
строка |
"Страница описания форматов" |
Надпись для поля со страницей с информацией о форматах |
URLLabel |
строка |
"Источник" |
Надпись для поля со ссылкой на источник |
TemplateLabel |
строка |
"Шаблон" |
Надпись для поля с шаблоном для создания паспорта материала |
SubmitLabel |
строка |
"Создать паспорт материала" |
Надпись на кнопке отсылки формы |
ShowSetFields |
флаг |
отсутствует |
Если данный параметр задан, то отображаются все поля, у которых заданы значения |
EditSetFields |
флаг |
отсутствует |
Если задан данный параметр и ShowSetFields, то поля, у которых заданы значения, доступны для редактирования |
По умолчанию, отображаются только те поля, у которых отсутствуют значения по умолчанию.
Для задания в параметрах нескольких форматов или лицензиях используйте ";" вместо ",".
Поведение
При нажатии на кнопку сздания материала вызывается action CreateMaterialPassport с указанными в фрме параметрами. Список передаваемых параметров: Name, Title, OriginalTitle, Base, Author, License, LicenseBase, Format, FormatBase, URL, Template.
Примеры
[[CreateMaterialPassport()]] |
|
[[CreateMaterialPassport(Author=RMS, License=GFDL;CC-BY-SA, SubmitLabel=Создать документ за авторством Столлмана)]] |
|
[[CreateMaterialPassport(Author=RMS, License=GFDL;CC-BY-SA, SubmitLabel=Создать документ за авторством Столлмана, ShowSetFields=true)]] |
|
[[CreateMaterialPassport(Author=RMS, License=GFDL;CC-BY-SA, SubmitLabel=Создать документ за авторством Столлмана, ShowSetFields=true, EditSetFields=true)]] |
MaterialFiles
Макрос для управления файлами материала. Использует действие ../../Actions/MaterialFiles для управления файлов.
Параметры
Параметром без значения является имя (Name) материала, для которого генерируется макрос. Если оно не указано, то макрос генерируется для текущей страницы.
Параметр |
Тип |
Значение по умолчанию |
Описание |
base |
Имя страницы |
Базовая страница для страницы паспорта материала |
Использование
Макрос генерирует дерево файлов материала с кнопками для выполнение действий, на которые имеются права.
PassportLink
Макрос генерирует ссылку на паспорт материала.
Параметры
Параметр |
Тип |
Значение по умолчанию |
Описание |
Base |
Имя страницы |
Базовая страница для страницы паспорта материала |
|
FilePath |
http-адрес |
/static |
Базовый путь к файлам материалов |
Format |
Строка |
"auto" |
Класс материала. Возможные значения: auto, MpguLecture, CmcLecture, Lecture, Presentation, AltDoc, Illustration, WikipediaArticle, RFC, LinuxBook, Book, HowTo, Kde, SchoolServer, Generic. При использовании значения auto включается мозг, который (на данный момент, последовательным применением захардкоденных регэкспов к имени страницы) определяет, какой формат использовать. Не путать с форматом материала. Если параметр Icon пустой, то ссылка на иконку генерируется как <IconPrefix><Format><IconSuffix> |
Icon |
http-адрес |
"" |
Путь к иконке, используемой в ссылке. В случае, если путь пустой, используются параметры IconPrefix и IconSuffix |
IconPrefix |
http-адрес |
/static/__icons/material_ |
Префикс пути к иконке, используемой в ссылке. Используется при пустом значении параметра Icon |
IconSuffix |
http-адрес |
".png" |
Суффикс пути к иконке, используемой в ссылке. Используется при пустом значении параметра Icon |
Text |
Строка |
title |
Что используется в качестве текста ссылки. Возможные варианты: name, title, origtitle |
Direct |
Флаг |
False |
Если равен True, генерируется ссылка непосредственно файлы материала, иначе на страницу паспорта |
DirectBrain |
Флаг |
True |
Только если включена опция Direct: если равен True, делается попытка найти индексную страницу (или единственный файл в директории), иначе генерируется ссылка на директорию. |
DirectPath |
Строка |
None |
Только если включена опция Direct: пусть до конкретного файла в материале. |
DirectPathDesc |
Строка |
none |
Только если включена опция Direct: комментарий для конкретного файла в материале. |
Примеры использования
Код |
Результат |
Описание |
<<PassportLink(RFC_1855)>> |
Генерируется ссылка на паспорт материала RFC_1855. |
|
<<PassportLink(RFC_1855,Text=name)>> |
Генерируется ссылка на паспорт материала RFC_1855, в качестве текста используется имя материала. |
|
<<PassportLink(AltDocs_backup,Direct=True)>> |
Генерируется ссылка на файлы материала AltDocs_backup. В данном случае должна сгенерироваться ссылка на индексный файл, так как он наличествует в директории. |
|
<<PassportLink(AltDocs_backup,Direct=True,DirectBrain=False)>> |
Генерируется ссылка на файлы материала AltDocs_backup. В данном случае должна сгенерироваться ссылка на директорию, так как принудительно отлючена опция DirectBrain. |
|
<<PassportLink(RFC_1855,Direct=True)>> |
Генерируется ссылка на файлы материала RFC_1855. Не смотря на опцию DirectBrain, включенную по умолчанию, ссылка генерируется на директорию, так как индексный файл не найден. |
|
<<PassportLink(RFC_1855,Format=Lecture)>> |
Генерируется ссылка на паспорт материала RFC_1855, формат задан принудительно. |
|
<<PassportLink(AltDocs_linuxnovice,Direct=True,DirectPath=ch02s11.html)>> |
Генерируется ссылка на файл ch02s11.html материала AltDocs_linuxnovice. |
|
<<PassportLink(AltDocs_linuxnovice,Direct=True,DirectPath=ch02s11.html,DirectPathDesc=Emacs для начинающих)>> |
Linux и UNIX: Руководство начинающего пользователя: Emacs для начинающих |
Генерируется ссылка на файл ch02s11.html материала AltDocs_linuxnovice с описанием «Emacs для начинающих». |
Действия
CreateMaterialPassport
Создание паспорта материала с указанными именем, названием, авторством, лицензией и форматом.
Параметры
Параметры аналогичны используемым в макросе CreateMaterialPassport.
Параметр |
Тип |
Значение по умолчанию |
Описание |
Name |
Имя страницы |
отсутствует |
Имя новой страницы паспорта материала |
Title |
строка |
отсутствует |
Название материала |
OriginalTitle |
строка |
отсутствует |
Оригинальное название материала |
Base |
Имя страницы |
Базовая страница для паспорта |
|
Author |
строка |
отсутствует |
Автор материала |
License |
строка |
отсутствует |
Лицензия материала |
LicenseBase |
Имя страницы |
Страница с информацией о лицензиях |
|
Format |
строка |
отсутствует |
Формат материала |
FormatBase |
Имя страницы |
Страница с информацией о форматах |
|
URL |
строка |
отсутствует |
Ссылка на источник |
Template |
Имя страницы |
Шаблон для создания паспорта материала |
Поведение
При выполнении макроса создаётся страница с именем Base/Name с использованием шаблона Template, после чего выполняется попытка заполнить шаблон переданными в качестве параметров значениями Title, OriginalTitle, Author, License, Format, URL
- В случае, если страница уже существует, будет выдано предупреждение и осуществлён переход на реферрер
- В случае, если задано пустое имя, будет выдано предупреждение и осуществлён переход на реферрер
Использование
Обычно используется не напрямую, а макросом CreateMaterialPassport.
?action=CreateMaterialPassport&Name=MaterialName
Создаёт страницу с указанным именем и незаполненным шаблоном по умолчанию (MaterialPassportTemplate).
- Создаёт страницу с указанными названием, заголовком, названием материала, автором, лицензией, форматом и источником.
MaterialFiles
Управление файлами материала. Обычно используется совместно с макросом MaterialFiles.
Формат вызова и поведение
Поведение action зависит в первую очередь от параметров subaction, который указывает действие, которое необходимо произвести, и path, который указывает путь к объекту (в формате ИмяМатериала/путь/к/файлу), над котором необходимо произвести действие. В зависимости от действия, могут требоваться дополнительные параметры, для задания которых генерируется соответствующая форма. Далее рассмотрены возможные параметры subaction, их семантика и используемые дополнительные параметры.
subaction=view --- просмотр файла
Дополнительные параметры: отсутствуют
Поведение: возвращает файл как он есть
subaction=move --- перемещение файла
Дополнительные параметры:
- to=destination --- целевая директория
Поведение: В случае отсутствия параметра to выводится дерево каталогов материала, в котором находится объект. В случае, если параметр to указан, то происходит перемещение объекта в указанную директорию
subaction=delete --- удаление файла
Дополнительные параметры: отсутствуют
Поведение: удаление указанного файла или директории
subaction=upload --- закачивание файла
Дополнительные параметры:
- file --- содержимое файла
Поведение: Если параметр file не передан, то будет отбражена форма выбора файла для загрузки. Если параметр file передан, то производится загрузка файла в директорию path
subaction=pack --- архивирование файла или директории
Дополнительные параметры: отсутствуют
Поведение: Архивирование указанного файла или директории командой tar cjf. В случае, если действие производится над материалом, то архивируются все файлы материала
subaction=unpack --- распаковка архивов tar.bz2
Дополнительные параметры: отсутствуют
Поведение: Выполняет команду tar xjf над указанным файлом
subaction=mkdir --- создание поддиректории
Дополнительные параметры:
- name=dirname --- имя создаваемой поддиректории
Поведение: в случае, если параметр name не передан, отображается форма указания имени поддиректории. Если параметр name указан, то создаётся поддиректория с именем name в директории path
В случае, еслид действие выполнить не возможно по каким-либо причинам, выводится соответствующая диагностика. Возможные виды причин:
- Путь не существует
- Путь не является директорией
- Произошла ошибка во время выполнения операции
- Нет прав для выполнения операции
Права доступа
Для управления файлами используются права доступа read и write страницы паспорта материала. Право доступа read даёт возможность выполнять subaction=view. Право доступа write даёт возможность выполнять действия move, delete, upload, pack, unpack, mkdir. В случае, если права на запрашиваемое действие отсутствуют, выводится предупреждение и присходит переход на реферрер.
PassportGenerator
Action для массовой генерации паспортов материалов по дереву wiki-страниц.
Параметры
Параметр |
Тип |
Значение по умолчанию |
Описание |
Base |
Имя страницы |
Базовая страница для дерева wiki-страниц, для кторых генерируется паспорт |
|
MinDepth |
число |
2 |
Минимальная глубина вложения wiki-страниц (относительно базы), для которых необходимо генерировать паспорт |
MaxDepth |
число |
2 |
Максимальная глубина вложения wiki-страниц (относительно базы), для которых необходимо генерировать паспорт |
Overwrite |
bool (True/False) |
False |
Перезаписывать ли имеющиеся страницы в процессе генерации новых |
Поведение
- Ищутся все подстраницы страницы, указанной в параметре Base
- Для каждой из найденных страниц, прошедших тест глубины, создаётся паспорт
- Имя страницы паспорта --- название wiki-страницы с заменёнными "/" на "_"
- Название и оригинальное название страницы берутся из первого найденного в странице заголовка
Автор --- Георгий Курячий
- Лицензия --- GFDL
Формат --- wiki (это включает мозг у action CreateMaterialPassport)
- URL --- wiki-ссылка
Аннотация --- если в wiki-странице есть текст, ограниченный маркерами ##Begin abstract## и ##End abstract##, то ставится инклюд его (<<Include(%s,,from="##Begin abstract##",to="##End abstract##")>>), в противном случае пишется, что краткое писание не найдено
- Если страница паспорта уже существует
- Список страниц, для которых сгенерирован паспорт (и их глубина) выводятся как результат работы action
Использование
На данный момент данный action используется для следующих целей:
http://uneex.ru/?action=PassportGenerator&Overwrite=true --- генерация паспортов для фрагментов лекций
http://uneex.ru/?action=PassportGenerator&MinDepth=1&MaxDepth=1&Overwrite=true --- генерация паспортов для лекций (требуется доводка руками, так как в число подстраниц PspoClasses входят не только лекции)
http://uneex.ru/?action=PassportGenerator&MinDepth=1&MaxDepth=2&Overwrite=true --- генерация паспортов для лекций (требуется доводка руками, так как в число подстраниц PspoClasses входят не только лекции) и их фрагментов
http://uneex.ru/?action=PassportGenerator&Base=LecturesCMC/LinuxShell2008&MinDepth=1&Overwrite=true --- генерация паспортов для университетского курса лекций «Программное окружение Linux» (требуется доводка руками, так как в число подстраниц входят не только лекции)
http://uneex.ru/?action=PassportGenerator&Base=LecturesCMC/LinuxSoft2007&MinDepth=1&Overwrite=true --- генерация паспортов для университетского курса лекций «Программное обеспечение Linux» (требуется доводка руками, так как в число подстраниц входят не только лекции)
PageContentsReplace
Изменение содержимого дерева страниц.
Параметры
Параметр |
Тип |
Значение по умолчанию |
Описание |
Base |
Имя страницы |
Корень модифицируемого дерева |
|
MinDepth |
число |
1 |
Минимальная глубина модифицируемых страниц относительно корня |
MaxDepth |
число |
1 |
Максимальная глубина модифицируемых страниц относительно корня |
From |
строка |
отсутствует |
Что заменять (python regex) |
To |
строка |
отсутствует |
На что заменять |
Perform |
флаг |
False |
Скрипт действительно применяется, только если данный флаг установлен в True |
Поведение
Action находит страницы, соответствующие запросу 'title:regex:"^' + Base + r'(/.+)?$"', выбирает среди них те, которые находятся на нужной глубине и применяет к ним замену (re.sub(From, To, page_body))
- Action не работает для пустого regex From
Action не работает, если MinDpeth > MaxDepth