/EmbedObject /Include /MailTo /MonthCalendar |
Эта макрокоманда включает в страницу предварительно отформатированное содержимое одной или нескольких других страниц той же вики. Допускается вложенное включение страниц друг в друга; если при этом образуется бесконечная рекурсия, действие не выполняется.
Синтаксис (все параметры, кроме первого, необязательны):
<<Include(страница, заголовок, уровень, from="regex", to="regex", sort=ascending|descending, items=n, skipitems=n, titlesonly, editlink)>>
- страница
Имя включаемой страницы; если в начале стоит символ "^", этот параметр понимается как регулярное выражение, в этом случае включается содержимое всех подходящих страниц.
- заголовок
- Если указан, перед включаемым содержимым выведется заголовок-ссылка на включаемую страницу..
- уровень
- Указывает, заголовок какого уровня (1..5) будет показан в предыдущем случае.
- from
- Включать текст частично, начиная со строки, удовлетворяющей регулярному выражению, указанному в значении параметра.
- to
- Включать текст частично, заканчивая строкой, удовлетворяющей регулярному выражению, указанному в значении параметра.
- sort
Сортировка включаемых страниц (если страница — это регулярное выражение, т. е. начинается с "^")
- items
- Максимальное число включаемых страниц.
- skipitems
- Количество страниц в начале списка, которые следует пропустить.
- titlesonly
- Оставить от включаемой страницы только заголовок — ссылку на эту страницу.
- editlink
- После включения страницы показать блок со ссылками на эту страницу в режиме просмотра и редактирования.
Несмотря на то, что все параметры, кроме страница, необязательны, указывать их следует только в приведённом порядке! Если параметры заголовок и уровень не используются, им соответсвтует один пустой параметр макрокоманды (см. пример ниже), за которым могут следовать from= и т. п.; соответствующая ссылка не выводится.
Регулярные выражения из from и to применяются ко всему тексту исходной страницы, в т. ч. и к содержимому комментариев. Это может помочь при оформлении составных страниц, но требует более пристального внимания к комментариям, дабы включаемая часть страницы не началась и не закончилась неожиданно.
Примеры:
<<Include(ИмяСтраницы)>> — включить в страницу содержимое страницы ИмяСтраницы.
<<Include(ИмяСтраницы,"Имя Страницы" )>> — перед текстом страницы ИмяСтраницы вставить заголовок «Имя Страницы» первого уровня, ссылающийся на эту страницу.
<<Include(ИмяСтраницы, , 2)>> — вставить заголовок «ИмяСтраницы» второго уровня.
<<Include(ИмяСтраницы, 'Всё о имени страницы', 3)>> — вставить заголовок «Всё о имени страницы» третьего уровня.
<<Include(ИмяСтраницы, , from="^----$")>> — включить только текст после первой горизонтальной линии
<<Include(ИмяСтраницы, , to="^----$")>> — включить только текст перед первой горизонтальной линией
<<Include(^ИмяСтраницы/.*, , sort=descending)>> — отсортировать включаемые страницы в обратном порядке
<<Include(^ИмяСтраницы/.*, , items=3)>> — включать не более трёх страниц
<<Include(^СтраницаБлога/.*,, to="^----$", sort=descending, items=7)>> — показать не более семи записей из блога.
<<Include(^СтраницаБлога/.*,, to="^----$", sort=descending, items=7, skipitems=7, titlesonly)>> — показать ссылки на предыдущие семь записей в блоге.
Блоги, созданные при помощи MonthCalendar, можно просматривать так (см. ../MonthCalendar):
<<Include(^ИмяФамилия/20..-..-..,,to="^----",sort=descending,items=3)>> — показать три записи из календаря
<<Include(^ИмяФамилия/20..-..-..,,to="^----",sort=descending,items=4,skipitems=3,titlesonly)>> — показать в виде заголовков ссылки на предыдущие четыре записи из календаря