CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
Списки страниц

Пожалуйста, экспериментируйте в песочнице!

авторам, администраторам (средний) 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:)

Также смотри

<< Условная разметка | Документация | Переменные страницы >>

Перевод страницы PmWiki.PageLists - Оригинал перевода PmWikiRu.PageLists - Référencé par
PmWikiRu.PageLists: редакция от 10 September 2011 à 18h48
PmWiki.PageLists: редакция от 03 March 2023 à 21h04