Участник:Sstealhh/Новая концепция навигации на Викитропах

Материал из Викитропов
Перейти к навигации Перейти к поиску

Анализ проблемы

Система навигации на Викитропах в текущем виде крайне неудобна для стороннего пользователя. В нынешних автонавшаблонах статьи на абсолютно разную тематику могут быть свалены в кучу. Для примера рассмотрим этот:

Здесь в одном громадном списке — и типажи, и сюжетные ходы (Злодейская истерика, Герой оказался злодеем), и элементы предыстории (Меня обидели, мне всё можно!, Озлобленный на весь мир), и даже совсем левые вещи вроде Хитрый план срывается только в конце, что применимо не только к злодеям. Человека со стороны такое может оттолкнуть от дальнейшего изучения сайта.

Ещё одна проблема — очень странная структура категорий. На примере Категория:Фэнтези — что-то определено непосредственно в категорию, а что-то — в одну из подкатегорий (а то и не в одну). И большая часть статей — просто фэнтези, хотя стоит определить либо в тёмное, либо в высокое, либо в городское.

К тому же с помощью средств сбора интернет-аналитики было установлено, что по сравнению с другими тропосайтами у Викитропов крайне высокий bounce-rate (то есть процент людей, зашедших на сайт и прочитавших только одну статью).

Таким образом, видим две проблемы нынешней системы навигации: небрежное распределение по категориям и низкая наглядность.

Постановка задачи

Это значит, что нам нужна другая система навигации. Навшаблоны посмотреча хороши всем, кроме необходимости ручного обновления. К тому же если мы хотим затронуть много разных тем, и для каждой новый шаблон… свихнёмся. Стало быть, нужны две вещи: пересмотр структуры категорий и разработка способа легко сделать навшаблон на основе имеющихся категория.

Какие нужны навшаблоны?

Поскольку категории нужны в первую очередь для навигации, надо решить, какого вида у нас будут навшаблоны. Я предлагаю так:

  • Виды медиа.
    • Для статей о произведениях внутри шаблонов делать разделение по жанрам. Они могут быть специфичны для вида медиа.
    • Для статей о тропах разумным может быть разделение Общее — Типажи — Элементы сеттинга — Сюжетные ходы — Прочее.
  • Франшизы. Тут всё просто — только для произведений, и легче всего их будет сделать вручную, то есть, оставить как есть.
  • Тематика.
    • Для статей о произведениях можно по виду медиа разделять. Например, произведения о Второй Мировой — и там отдельно литература, отдельно кино, отдельно манга…
    • А вот с тропами сложнее. Тут в принципе у каждой категории своё разделение, надо будет отталкиваться от существующих категорий и иногда черпать вдохновение на посмотрече.
  • Троповедческие понятия, кстати, тоже надо в единый навшаблон свести. И Основы тоже.

Как это связано с категориями? Зависит от того, какую реализацию мы выберем.

Техническая реализация

Таки самый важный пункт. Есть несколько вариантов разной степени затратности, но каждый потребует перекатегоризации почти всех статей.

Наши варианты примерно таковы:

Вариант 1: Задать навигацию по всем категориям вручную

Создаём подстатью для каждой навигационной категории (в случае для аниме — Шаблон:Навигатор/Аниме) с примерно таким текстом:

{{NavItem|Боевик|Аниме}}
{{NavItem|Драма|Аниме}}
{{NavGroup|
  {{NavItem|Реалмеха|Аниме}}
  {{NavItem|Супермеха|Аниме}}
  {{NavItem|Аниме|Меха|title=Всё остальное}}
|Меха}}
{{NavItem|Приключения|Аниме}}
{{NavItem|Романтика|Аниме}}
{{NavItem|Ужасы|Аниме}}
{{NavGroup|
  {{NavItem|Махо-сёдзё|Аниме}}
  {{NavItem|Тёмное фэнтези|Аниме}}
  {{NavItem|Фэнтези|Аниме|title=Всё остальное}}
|Фэнтези}}
{{NavItem|Аниме|!Драма | !Приключения | !Романтика | !Реалмеха | !Фэнтези |title=Прочее}}


А затем в статьях пишем {{Навигатор|Аниме|Драма}} или что-то в этом роде. Шаблон очень умный, будет ругаться если вы не зададите подкатегорию и не даст задать больше одной. А ещё в нём достаточно легко создать новые подстраницы — напишите {{Навигатор|Ваша категория}}, и он сам предложит создать новую статью.

Плюсы:

  • Не требует особого технического колдунства.
  • Не нужно особо менять структуру категорий.
  • Всё ещё не посмотрельские полностью ручные шаблоны.

Минусы:

  • Требует создания дофигиллиона такого рода шаблонов.
  • Требует перекатегоризации всех статей.

Примечания:

  • Можно сильно упростить синтаксис такого шаблона. Например, что-то вроде {{Категория2}} для случая, если категории не ветвятся. WIP.
  • Посмотреть на то, как это будет работать после повсеместного внедрения, можно в разделе «Троповедческие понятия», заглядывайте: Штамп.

Вариант 2: Умный разбор категорий

Чтобы не перекатегоризировать статьи, можно поступить так: для почти любой категории можно легво установить, в какие категории она включена, просто распарсив её текст. Таким образом, если у нас есть готовая база навшаблонов (например, как выше), то мы можем просто идти вверх по категориям, пока не наткнёмся на одну из включенных.

Пример: Мы задали навшаблон по злодеям (как в варианте 1 выше или как-то ещё), а в статье Гадский ансамбль поставили {{Категория|Злодейские организации}} — как сейчас. Шаблон понимает, что «Злодейские организации» входят в «Злодейские объединения», а те — в «Злодеи», и ставит навигацию по всем злодеям.

Плюсы:

  • Большую часть страниц после такого можно вообще не трогать.
  • Всё ещё никакого колдунства с движком.

Минусы:

  • Для навигации по типам медиа не будет нормально работать, придётся разрабатывать для такого отдельный шаблон.
  • Неизвестно, насколько это увеличит нагрузку на сервер.
  • В части статей может сломаться:
    • Если категорий было несколько.
    • Если навигация по надгруппе не была задана (например, если мы правильно прописали {{Категория|Злодейские организации}}, но не создали навшаблон для злодеев).
Больше не вижу смысла так переусложнять навигационную систему, но текст оставлю
Вариант 3: Прекрасные автонавшаблоны будущего

Суть: Вот зачем нам вручную создавать навшаблон по злодеям? У нас же есть подкатегории? Вот пусть они и будут задавать структуру навшаблона!

Принцип работы следующий: на каждой странице мы задаём корневую, листовые и ограничивающие категории.

  • Корневая — та, которая задаёт структуру навшаблона. В примере с злодеями — Категория:Злодеи, в примере с аниме — Категория:Произведения по жанрам.
  • Листовые — те, в которые положим нашу статью. В примере с злодеями — Категория:Злодейские организации. Может быть больше одной: например, если статья по аниме-тайтлу, можно определить и в драму, и в боевик.
  • Ограничивающие — нужны в нетривиальных, в общем-то случаях. Например, если мы делаем навшаблон по аниме-тайтлам, но группируем по жанрам, то ограничивающей будет Категория:Аниме.

Итого, в статье про гадский ансамбль надо будет внизу проставить что-то вроде {{Нави| Злодеи| Злодейские организации}}, а в статье про условный аниме-тайтл — {{Нави| Произведения по жанрам| Боевик| Драма| lim=Аниме}}.

Плюсы:

  • Не нужно создавать кучу навшаблонов по каждой категории, по которой мы хотим навигацию.
  • Легко расширяется, если мы внезапно захотели сделать навигацию по статьям о произведениях про Вторую Мировую (например).

Минусы:

  • Нужно расширение DynamicPageListEngine и совет от знакомых с работой движка. Не совсем понятно, как это будет кэшироваться.
    • Расширение зальём. С кэшированием у нас есть некоторые проблемы, они решаемы. Но решаемы не сейчас, ориентировочно через 2 недели смогу заняться. Эльфийские уши (обс.) 11:33, 25 июля 2024 (MSK)
  • Всё ещё нужно переставить шаблоны на всех статьях.
  • Потребуется серьёзный пересмотр структуры категорий. А то иногда чересчур ветвисто. Работа сравнимая с созданием всех навшаблонов из варианта 1, я бы сказал.
  • Потребуется составить подробный мануал для участников.


Вариант 4: Полная автоматизация

Суть: А чего мелочиться? Давайте скрестим второй вариант с третьим!

Тогда мы где-нибудь задаём список категорий, по которым будут генерироваться навшаблоны, и всё! Если мы проставили где-нибудь {{Категория|Злодейские организации}} — шаблон сначала автоматически поймёт, что нужна навигация по Категория:Злодеи, а потом сам генерирует по этой категории навшаблон (она будет корневая, а Категория:Злодейские организации — листовой).

Правда, в статьях о произведениямх придётся всё-таки обновить шаблоны и писать что-то вроде {{КатегорияПроизведений|Аниме|Боевик|Драма}}.

Но я считаю, что так делать не стоит. Сложно чересчур.


Итог

Очень интересно мнение экспертов. Мозговой штурм продолжается, предложения приветствуются.

Я лично пока склоняюсь к варианту 2.