fix: handle /docs/ prefix in link validator

Update resolveLink to strip /docs/ prefix from repo-relative links
before checking if files exist.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
forcetrainer 2026-01-08 11:57:04 -05:00
parent d94b9df0e3
commit 8979f2928c
1 changed files with 9 additions and 3 deletions

View File

@ -102,11 +102,17 @@ function extractAnchors(content) {
/**
* Resolve a site-relative link to a file path
* /docs/how-to/installation/install-bmad.md -> docs/how-to/installation/install-bmad.md
* /how-to/installation/install-bmad/ -> docs/how-to/installation/install-bmad.md or .../index.md
*/
function resolveLink(siteRelativePath) {
// Strip anchor and query
const checkPath = siteRelativePath.split('#')[0].split('?')[0];
let checkPath = siteRelativePath.split('#')[0].split('?')[0];
// Strip /docs/ prefix if present (repo-relative links)
if (checkPath.startsWith('/docs/')) {
checkPath = checkPath.slice(5); // Remove '/docs' but keep leading '/'
}
if (checkPath.endsWith('/')) {
// Could be file.md or directory/index.md
@ -118,11 +124,11 @@ function resolveLink(siteRelativePath) {
return null;
}
// Direct path
// Direct path (e.g., /path/file.md)
const direct = path.join(DOCS_ROOT, checkPath);
if (fs.existsSync(direct)) return direct;
// Try with .md
// Try with .md extension
const withMd = direct + '.md';
if (fs.existsSync(withMd)) return withMd;