.agents/skills/docs-build-and-verify/SKILL.md
Node.js 20 is required:
nvm use 20
Full production build (includes broken link detection):
cd website && yarn build
Dev server with hot reload:
cd website && yarn start
Regenerate API data and sidebars only (no Docusaurus build):
cd website && yarn crocodocs:generate
yarn build automatically reports broken links and anchors. The build fails if any are found.
Run this after yarn build to find images referenced in HTML that don't exist:
cd website && python3 -c "
import re, os, glob
build_dir = 'build'
img_re = re.compile(r']+src=\"(/[^\"]+)\"', re.IGNORECASE)
broken = []
for html_file in sorted(glob.glob(f'{build_dir}/docs/**/index.html', recursive=True)):
page = html_file.replace(build_dir + '/', '').replace('/index.html', '')
content = open(html_file).read()
for match in img_re.finditer(content):
src = match.group(1)
if src.startswith('http') or src.startswith('data:'):
continue
file_path = os.path.join(build_dir, src.lstrip('/'))
if not os.path.exists(file_path):
broken.append((page, src))
if broken:
print(f'Found {len(broken)} broken images:')
for page, src in broken:
print(f' {page}: {src}')
else:
print('No broken images found!')
"
After building, check for reST roles that failed to resolve and appear as raw text:
cd website && grep -r ':attr:\|:class:\|:meth:\|:func:' build/docs/ --include='*.html' -l
If any files are listed, those pages have unresolved cross-references that render as plain text instead of links.