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:
parent
d94b9df0e3
commit
8979f2928c
|
|
@ -102,11 +102,17 @@ function extractAnchors(content) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resolve a site-relative link to a file path
|
* 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
|
* /how-to/installation/install-bmad/ -> docs/how-to/installation/install-bmad.md or .../index.md
|
||||||
*/
|
*/
|
||||||
function resolveLink(siteRelativePath) {
|
function resolveLink(siteRelativePath) {
|
||||||
// Strip anchor and query
|
// 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('/')) {
|
if (checkPath.endsWith('/')) {
|
||||||
// Could be file.md or directory/index.md
|
// Could be file.md or directory/index.md
|
||||||
|
|
@ -118,11 +124,11 @@ function resolveLink(siteRelativePath) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Direct path
|
// Direct path (e.g., /path/file.md)
|
||||||
const direct = path.join(DOCS_ROOT, checkPath);
|
const direct = path.join(DOCS_ROOT, checkPath);
|
||||||
if (fs.existsSync(direct)) return direct;
|
if (fs.existsSync(direct)) return direct;
|
||||||
|
|
||||||
// Try with .md
|
// Try with .md extension
|
||||||
const withMd = direct + '.md';
|
const withMd = direct + '.md';
|
||||||
if (fs.existsSync(withMd)) return withMd;
|
if (fs.existsSync(withMd)) return withMd;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue