Категории

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

авторам (средний)

Назначение Категорий

Категории (иногда называемые "тэг"/ярлык/) -- это способ организации и поиска родственных страниц. Категории -- это просто удобное соглашение, которое появились во второй версии PmWiki и в большинстве вики не требуют особого кода или разметки. Идея состоит в том, что каждая страница которая имеет отношение к теме ссылается на страницу содержащую ссылки на все страницы по теме. Такие страницы(сборники ссылок) размещаются в группе Category и эти тематические места называют Категориями.

Использование Категорий

Для получения действующих Категорий надо сделать два шага. Во первых, добавьте ссылки на каждую Категорию. Категория с именем Subject создаётся добавляя на любую страницу ссылку на Category.Subject. После этого страница может считаться относящейся к Категории "Subject".

Существует особый способ разметки ссылок делающий работу Категорий более удобной: [[!Subject]] даст ссылку на Category.Subject. Т.е. [[!Subject]] это краткая запись ссылки на страницу Subject в группе категорий.

Если вы щёлкните по ссылке категории, то в начале вы попадёте на пустую страницу с названием Category.Subject. Второй шаг в установке Категорий это изменить поведение страниц в группе Category так, чтобы они показывали список всех страниц ссылающихся на Category.Subject. Это сделать относительно просто:

  1. Откройте страницу Category.GroupFooter и начните её редактировать
  2. Добавьте строку (:pagelist link=Category.{$Name} list=normal:)
  3. Сохраните страницу

Это добавит в конце каждой страницы группы Category список страниц ссылающихся на данную.

Стоит заметить, что иногда лучше добавить список в Category.GroupHeader нежели в Category.GroupFooter. Это зависит только от того, где вы предпочитаете видеть список страниц: перед или после текста отдельных страниц категорий (которые могут быть изменены как обычные страницы).

Разметка PageList с link= применима не только в группе категорий. Написав на какой-либо странице (:pagelist link=Category.Subject list=normal:) вы получите список всех страниц категории Subject. Т.е. нет необходимости распологать "страницу категории" в группе Category -- любая страница может определять "категорию" страниц ссылающихся на неё.

Ко всему прочему с помощью переменной $CategoryGroup файла config.php администратор может переопределить изначальное имя группы категорий.

Вывод

Итак, когда страница Category.GroupFooter настроена соответствующим образом на странице Category.Subject показывается список всех страниц содержащих ссылку [[!Subject]]. Аналогично вы можете сделать страницу Category.Movies содержащую алфавитный списк всех фильмов обсужаемых на вашей вики -- поместите на каждой странице о фильме ссылку [[!Movies]].

авторам (средний)

Вложеность Категорий

Если страницы вики могут располагаться только по группам, то категории могут произвольно ссылаться друг на друга. Что даёт больше возможностей для построения сложных иерархий. Давайте рассмотрим отличный пример Джона Ранкина. Предположим, что мы имеем следующие страницы фильмов в категориях записаных справа:

Film.ShaunOfTheDead   [[!Horror]] [[!Comedy]] [[!2003]]
Film.InMyFathersDen   [[!Drama]] [[!2004]]
Film.TheCorporation   [[!Documentary]] [[!2003]]

Теперь мы можем сделать страницы Category.Horror(ужасы), Category.Comedy(комедия), Category.Drama(драма) и Category.Documentary(документальный). На каждой из них поместим ссылку [[!Genre]](жанр). А на страницах Category.2003 и Category.2004 -- [[!Year]](год).

И что же мы увидим на странице Category.Genre? -- ссылки на "Comedy", "Drama", "Documentary" и "Horror" так как они в категории Genre. Когда мы щёлкаем на одну из ссылок мы видим все фильмы причисленые к одной из категорий. Также, если щёлкнуть на Category.Year -- мы видим ссылки на "2003" и "2004", каждая из готорых показывает список фильмов на тот год.

И наконец, на страницах Category.Genre и Category.Year поместим ссылку [[!Category]], которая делает их "вершиной" категорий доступных со страницы Category.Category. Вуаля, теперь у нас есть настоящая "иерархия".

Category.Category
    Category.Genre
        Category.Comedy
            Film.ShaunOfTheDead
        Category.Drama
            Film.InMyFathersDen
        Category.Documentary
            Film.TheCorporation
        Category.Horror
            Film.ShaunOfTheDead
    Category.Year
        Category.2003
            Film.ShaunOfTheDead
            Film.TheCorporation
        Category.2004
            Film.InMyFathersDen

Однако заметьте, что это не "строгая" иерархия, т.е. любая страница или категория может прибывать в нескольких категориях единовременно. Например, Category.Documentary может быть членом и Genre и на "вершине" списков категорий.

На каждой странице категории может быть свой текст, к примеру кратко описывающий категорию. (или может быть пусто, что тоже хорошо.) Она также может содержать связи с родственными категориями (ссылки "также смотри"). Например, у вики о туризме категория "постель и завтрак"(bed and breakfast) может ещё иметь ссылку на категорию "самообеспечение"(self-catering).

администраторам (средний)

Внутренности разметки Категорий

Как уже упоминалось, все необходимые для Категорий свойства разметок уже включены в текущем выпуске PmWiki 2.0. Для любопытствующих расскажем как это работает.

Использование группы Category как репозитория для всех категорий определяется переменной $CategoryGroup, а особая разметка [[!Subject]] включается вызовом функции Markup():

SDV($CategoryGroup,'Category');
Markup('[[!','<links','/\[\[!([^\|\]] ?)\]\]/',
  "<span class='category'>[[$CategoryGroup/$1]]</span>");

Хорошая Схема Категорий

Одна из самых трудных частей использования категорий -- это выбор названий категорий (или словаря). Управляющие содержимым сайта могут пожелать следовать "Guidelines for the establishment and development of monolingual thesauri"(ISO 2788-1986) и "Guidelines for the establishment and development of multilingual thesauri" (ISO 5964-1985). Вот ряд вопросов для размышлений:

  • существует ли уже готовая схема и может ли она быть использована?
  • количество уровней для многоуровневой схемы (не слишком мелко и не слишком глубоко -- например 3)
  • количество категорий на страницу (не слишком много и не слишком мало -- например 3)
  • постоянное использование единственного ([[Меркурий]] это [[!планета]]) или множественного ([[Меркурий]] в категории [[!планеты]]) чисел.
  • однозначность и использование фраз ([[!музыкальные инструменты]] и [[!медицинские инструменты]]) или Cookbook:Subpage Markup ([[!Инструменты*Музыкальные]] и [[!Инструменты*Медицинские]])

Или же вы просто можете позволить людям пользоваться любой терминологией, которая им кажется привлекательной. В любом случае тема словаря(или "фолксономии") будет всё время всплывать.

Докладчики

Radu, John Rankin, SolaRoofGuy, David A Spitzley

<< ВикиТропы | Документация | Заголовок Группы >>

Перевод страницы PmWiki.Categories - Оригинал перевода PmWikiRu.Categories - Backlinks
PmWikiRu.Categories: редакция от December 23, 2021, at 10:50 AM
PmWiki.Categories: редакция от June 11, 2023, at 04:26 PM