Списки страниц
Пожалуйста, экспериментируйте в песочнице!
авторам, администраторам (средний)
PmWiki поставляется с двумя встроеными директивами для построения списков страниц — (:pagelist:)
и (:searchresults:)
. Основная разница между ними состоит в том, что searchresults
дописывает сообщения "Результаты поиска для ..." в начало и "Найдено №№№ страниц среди №№№ страниц" в конец результатов — а во всём остальном они по сути одинаковы.
Основной синтаксис
(:pagelist:)
без аргументов показывает маркированый список ссылок на все страницы отсортированых в группы по алфавиту.(:pagelist group=abc fmt=def list=ghi order=jkl argument1 argument2 etc:)
показывает список страниц согласно поддерживаемым параметрам. Параметры могут отсутствовать.
Параметры
Любой аргумент в (:pagelist:)
не являющийся равенством ('key=value'
) воспринимается как текст, который должен(или нет) присутствовать в тексте страниц попадущих в список. Таким образом:
(:pagelist trail=PmWiki.DocumentationIndex list=normal яблочный -пирог:)
перечисляет все "normal"(обычные) страницы цепочки DocumentationIndex
и содержащие слово "яблочный", но не "пирог".
group= и name=
Параметры "group=
" и "name=
" ограничивают результаты страницами из указаной группы(group) или с указаным именем(name):
# Все страницы из группы Pmwiki: (:pagelist group=PmWiki :) # Все страницы не из групп PmWiki и Site: (:pagelist group=-PmWiki,-Site :) # Все страницы RecentChanges (:pagelist name=RecentChanges :) # Все страницы кроме RecentChanges (:pagelist name=-RecentChanges :)
Обобщения
Параметры name
и group
могут содержать символы обобщения которые отображают только страницы совпадающие с указанным образцом:
- Звёзда (*) представляет ноль или более любых символов;
- Знак вопроса представляет только один любой символ.
Примеры:
# Все страницы из групп с именем начинающимся с "PmWiki" (:pagelist group=PmWiki* :) # Все страницы из групп с именем начинающимся с "PmWiki", кроме Китайской(Zh) (:pagelist group=PmWiki*,-PmWikiZh* :) # Все страницы из группы PmCal с именами начинающимися с "2005": (:pagelist name=PmCal.2005* :)
trail=
Опция "trail=
" берёт список страниц для показа из цепочки страниц:
# Показать все страницы документации отсортированые по времени редакции (:pagelist trail=PmWiki.DocumentationIndex order=-time:) # Показать пять недавно изменённых страниц (:pagelist trail=RecentChanges count=5:)
list=
Этой опцией указывается имя фильтра для формируемого списка. Изначально у PmWiki определён только один фильтр — "list=normal
", который исключает из результата служебные страницы AllRecentChanges, RecentChanges, GroupHeader, GroupFooter... и т.п. Вики администратор может добавить в массив $SearchPatterns
свои собственные фильтры. (смотри Cookbook:SearchResults).
fmt=
Параметр "fmt=
" указывает формат вывода списка. В PmWiki встроено несколько форматов:
fmt=#bygroup
— Показать страницы по группам в алфавитном порядкеfmt=#simple
— Показать простой упорядоченый список страницfmt=#title
— Показать список заголовков страниц. Используйте "order=title
" для сортировки по заголовкам (по умолчанию сортировка идёт по именам страниц).fmt=#group
— Показать список группfmt=#include
— Показать в списке содержимое каждой страницы. (для справки, процесс формирования страницы для большого списка может занять много времени!)
Индивидуальные форматы списков страниц могут быть определены используя шаблоны списков и вызваны опцией fmt=
. (Изначальные шаблоны форматов списков PmWiki определены на странице Site.PageListTemplates.) Есть несколько способов указать какой шаблон используется:
fmt=#custom
использует раздел #custom из Site.PageListTemplates (раздел подписан якорем[[#custom]]
.fmt=MyTemplatePage#custom
использует формат со страницы MyTemplatePage из секции #custom.fmt=custom
использует формат, который определён в cookbook сценарии как custom.
Cookbook:PagelistTemplateSamples содержит много примеров индивидуальных форматов списков.
В дополнение, в Cookbook:Cookbook есть и другие рецепты особых значений fmt=
, включая fmt=dictindex
(алфавитный индекс) и fmt=forum
(темы форума).
link=
Списки страниц ссылающихся на указаную получаются, если воспользоваться параметром "link=
", который особенно удобен для страниц категорий и поиска связанных страниц.
# все страницы со ссылкой на PmWiki.DocumentationIndex (:pagelist link=PmWiki.DocumentationIndex:) # все страницы со ссылкой на текущую страницу (:pagelist link={$FullName}:) # все страницы категории "Skins" (:pagelist link=Category.Skins:)
count=
Длина списка ограничивается параметром "count=
".
# Простой маркированый список десяти свежайших страниц (:pagelist trail=Site.AllRecentChanges count=10 fmt=#simple:)
order=
Для изменения порядка сортировки списка пользуются параметром "order=
". Отрицательное значение параметра указывает на обратный порядок сортировки. Множество критериев сортировки указываются через запятую:
order=name
— алфавитная сортировка по имениorder=-name
— обратная алфавитная сортировкаorder=title
— сортировка по заголовкамorder=-time
— более свежие страницы будут ближе к началу спискаorder=ctime
— по времени создания страницorder=size
— сортировка по размеру страницorder=group,title
— сортировка по группам, а затем по заголовкамorder=random
— перемешать страницы в произвольную последовательность
Примеры
Вставить содержимое произвольной страницы из группы Banners(Баннеры):
(:pagelist group=Banners order=random count=1 fmt=#include list=normal:)
Показать простой список десяти свежайших страниц:
(:pagelist trail=Site.AllRecentChanges count=10 fmt=#simple:)
Также смотри
- MarkupMasterIndex#Directives — показать список прикреплённых файлов
- Site.PageListTemplates — шаблоны форматов списков
- Cookbook:PagelistTemplateSamples — ещё шаблоны форматов
<< Условная разметка | Документация | Переменные страницы >>
Перевод страницы PmWiki.PageLists —
Оригинал перевода PmWikiRu.PageLists —
Ссылаются
PmWikiRu.PageLists: редакция от 10.09.2011 18:48
PmWiki.PageLists: редакция от 15.11.2022 19:16