Создан  demius PM 4 года назад; Обновил  demius PM год и 4 месяца назад

Система позволяющая легко вставлять ссылки на любые страницы сайта, даже еще не существующие, но возможные (с целью побудить их создание)

Ядро и минимальная функциональность.

Собственный обработчик тега ссылки, если подпадает под один из определенных форматов превращается в полноценную ссылку на указанную страницы.

формат ссылок

  • Краткий *уже внедренный сейчас формат ссылок на задачи и документы как самые часто используемые сущности
  • [abc-35] - ссылка на задачу
  • [abc#28] - ссылка на документ
  • Полный позволяет дать ссылку на что угодно, на что можно сослаться - [<type>:<project>:<id>]
  • [p:abc] - ссылка на проект, тут нет <id>, так как проект и так идентифицирует себя
  • [t:abc:35] - ссылка на задачу на самом деле избыточна, просто для унификации
  • [d:abc:28] - ссылка на документ
  • [r:abc:12] - ссылка на релиз
  • [b:abc:8] - ссылка на доску

Полный формат не вытесянет краткий, а существует параллельно, скорее для автомтаически…

Система позволяющая легко вставлять ссылки на любые страницы сайта, даже еще не существующие, но возможные (с целью побудить их создание)

Ядро и минимальная функциональность.

Собственный обработчик тега ссылки, если подпадает под один из определенных форматов превращается в полноценную ссылку на указанную страницы.

формат ссылок

  • Краткий *уже внедренный сейчас формат ссылок на задачи и документы как самые часто используемые сущности
  • [abc-35] - ссылка на задачу
  • [abc#28] - ссылка на документ
  • Полный позволяет дать ссылку на что угодно, на что можно сослаться - [<type>:<project>:<id>]
  • [p:abc] - ссылка на проект, тут нет <id>, так как проект и так идентифицирует себя
  • [t:abc:35] - ссылка на задачу на самом деле избыточна, просто для унификации
  • [d:abc:28] - ссылка на документ
  • [r:abc:12] - ссылка на релиз
  • [b:abc:8] - ссылка на доску

Полный формат не вытесянет краткий, а существует параллельно, скорее для автомтаически добавленных ссылок ил ссылок на особые сущности, вроде релизов

Статистика ссылок

Каждая валидная (даже не существующая) ссылка записывается в кеш, где помечается как рабочая или нет. При отрисовке в зависимости от этого она окрашивается в синий или красный цвет и ведет или на запрошенный ресурс, или форму создания.

  • [tndt-4] - реальная задача, выведется как < href="tasks.demius.ru/p/tndt-4" alt="Система справочников и справочник тип задачи">tndt-4</a>
  • [tndt-65535] - несуществующая задача, выведется сообщение об ошибке
  • [tndt#dokumenty] - реальный документ, выведется как < href="tasks.demius.ru/p/tndt/doc/dokumenty" alt="Документы">tndt#2</a>
  • [tndt#bla-bla-bla] - несуществующий документ, выведется как < href="tasks.demius.ru/p/tndt/doc/create/bla-bla-bla" class="not-created" alt="bla-bla-bla">bla-bla-bla</a>. Путь create/bla-bla-bla сразу заполнит slug и заголовок (но позволит его отредактировать (при этом надо будет ретроспективно поправить и ссылку)
  • [tndt#Система гипертекста для wiki] нормализует тег до [tndt#sistema-giperteksta-dlia-wiki] и выведет корректную ссылку

В сервисе ссылок будет доступен как прямой путь, по тегу найти адрес реальной страницы, так и обратный по странице можно найти все места, где на неё ссылаются. Когда страница будет создана, все эти ссылки посинеют.

Сервис так же будет предоставлять хендлерам из Статистика проекта информацию о количестве связей, количестве страниц на которые никто не ссылается.

Сервис ссылок в будущем будет предоставлять информацию для систем генерации содержаний. Для категорий и тегов.

Важная часть, когда мы займемся фронтом, - автокомплит ссылки. Чтобы не искать как же правильно называется интересующий документ, и не создавать нерабочие ссылки из-за опечаток.

Стоит расширить такой тег аналогично вики-ссылки, позволяя отображать его не так, как он записан, например смотри в системе [tndt#documenty|документации]

Архитектура

В БД записывается объект ссылка, ключ её описание tndt-2, tndt#5 tndt#long_caption В объекте хранится

  • есть ли такой документ.
  • Как найти его по ключу в БД.
  • Как его создать если его нет
  • Какие для его просмотра/создания требуются права

обратная сторона, документ/задача должен знать о всех ссылках на него, чтобы иметь возможность их обновить