Два URL-пространства, одна инд... Заметка
DEV Community на русском

Два URL-пространства, одна индексная страница и тернарная операция, ветви которой идентичны

Код в ArticleLayout.tsx содержит тернарный оператор с идентичными ветвями, что указывает на прошлое решение, которое с тех пор было упрощено до одного исхода. Эта ситуация возникает из-за того, что Notifio имеет восемь страниц с подробным описанием, распределенных по двум URL-пространствам: /guides и /for. Эти страницы, несмотря на разные URL-адреса, по сути являются одним и тем же типом документа, решающим конкретную проблему с помощью решения и продукта. Различие в URL-адресах основано на намерении читателя: страницы /for/ ориентированы на самоидентификацию, в то время как страницы /guides/ сосредоточены на задачах.Ключевое поле, kind, различает эти страницы как "audience" (аудитория) или "guide" (руководство). Однако базовая графовая структура контента и связанные ссылки не строго придерживаются этого разделения URL-адресов; ссылки часто пересекают оба домена. Это преднамеренно, поскольку читателей, перемещающихся между связанным контентом, не волнует префикс URL. Система использует единый плоский поиск для всех статей и выделенную функцию articleHref для правильного создания ссылок.Существует потенциальная проблема с коллизиями пространств имен слагов, когда идентичные слаги в коллекциях audience и guide могут привести к недоступности одной из страниц. Структура навигационной цепочки показывает, что /guides служит фактическим индексом для всех восьми статей, включая те, что находятся под префиксом /for. Следовательно, тернарный оператор навигационной цепочки остается статичным, поскольку страницы audience правильно указывают на /guides как на свой родительский элемент.Логика последнего элемента навигационной цепочки, которая сравнивает поле eyebrow со строкой "Guide", является хрупкой и вместо этого должна полагаться на дискриминатор kind. Канонический URL передается в компонент макета, обеспечивая согласованность между обслуживаемым маршрутом и структурированными данными. Кроме того, происходит беззвучный сбой, когда опечатка в слаге связанного сайта приводит к неопределенному значению, что приводит к отсутствию ссылки без ошибки; это должно быть обнаружено тестами на этапе сборки. Общий редакционный принцип заключается в том, что контент должен быть ценным независимо от покупки продукта, стандарт, примером которого является контент, который даже выступает против продукта.