feat: создан единый content-manifest #10#16
Closed
rbdnv wants to merge 2 commits into
Closed
Conversation
minkinad
reviewed
Apr 29, 2026
Owner
minkinad
left a comment
There was a problem hiding this comment.
Откатываем - задача не актаульна
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что Изменилось
Сделан единый build-time content manifest вместо дублирующего слоя
docs/ -> content/.Теперь
docs/остаётся единственным источником контента, аnpm run prepare:contentсобирает.cache/content-manifest.jsonс уже подготовленными данными для приложения:slug,title,description,author,order,editPath,toc,preview,topics,hash,bodyи служебные поля.Это понадобилось, чтобы убрать повторяющийся парсинг frontmatter, slug и section в разных местах: навигации, поиске и валидаторе. Теперь навигация, поиск и validate-скрипт читают один общий manifest.
Тип Изменения
Проверка
Отметьте, что вы запускали:
npm run prepare:contentnpm run validate:contentnpm run lintnpm run typechecknpm run buildВсе проверки были нужны, потому что изменение затрагивает build-time генерацию контента, навигацию, поиск, валидацию ссылок и статическую сборку Next.js.
Затронутые Области
Треки или файлы:
content/, так как он больше не нужен как дублирующий слой.docs/теперь является единственным источником контента.docs/intro.mdпод новую модель.Маршруты или страницы:
/docs/docs/[...slug]/asksitemap.xml, так как он используетgetAllDocs()Скрипты или workflow:
scripts/content-manifest.mjsscripts/sync-content.mjsscripts/build-search-index.mjsscripts/validate-content.mjscontent:manifestprepare:contentcontent:syncоставлен как compatibility alias.cache/в.gitignoreСкриншоты
Скриншоты не добавлялись, потому что UI визуально не менялся. Изменение касается content pipeline, навигационных данных, поиска и валидации.
Комментарии Для Ревью
Стоит внимательно посмотреть на новый контракт
.cache/content-manifest.json: именно он теперь является общей точкой правды для приложения, поиска и валидатора.Особое внимание:
scripts/content-manifest.mjs: корректностьContentRepository -> Parser -> ManifestBuilderdocs/intro.md, который мапится вalgorithms/getting-started.mdxindex.mdxeditPath, чтобы ссылка “Редактировать источник” продолжала вести вdocs/lib/navigation.ts: теперь не читает файловую систему и не парсит frontmatterscripts/build-search-index.mjs: поиск строится из manifest, но search-specific chunks остаются внутри search builderscripts/validate-content.mjs: проверяет ссылки и якоря по manifest-документамcontent/: это ожидаемое изменение, так как слой больше не является источником данныхТакже
npm ciво время проверки показал существующие audit warnings в зависимостях, но они не исправлялись в рамках этой задачи.