Resolve doc cross-links by real filename as a fallback
The new concept docs (and their "See also" reciprocal links) reference each other by real filename -- "concepts-accounts.html" -- which is the correct, working URL on the Jekyll/GitHub Pages build (a page's URL there IS its filename stem), but doesn't match this viewer's own short slugs (DOCS keys, e.g. "accounts" -> /docs/accounts), so fixDocLinks() left those links unrewritten and 404ing in-app. Rather than rewrite the docs to two different link forms depending on target, resolve by filename as a fallback when the slug lookup misses -- one link written in a doc now works correctly on both targets. Bumps to v1.1.13. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KDEx8ghuZR61pqPXc6da9C
This commit is contained in:
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "t42-sso-manager",
|
||||
"version": "1.1.12",
|
||||
"version": "1.1.13",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "t42-sso-manager",
|
||||
"version": "1.1.12",
|
||||
"version": "1.1.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^7.3.0",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "t42-sso-manager",
|
||||
"version": "1.1.12",
|
||||
"version": "1.1.13",
|
||||
"private": true,
|
||||
"author": [
|
||||
{
|
||||
|
||||
+13
-1
@@ -60,10 +60,22 @@ function fixImagePaths(html) {
|
||||
// at /docs/<slug> with no .html suffix. Rewrite known doc links to the
|
||||
// in-app route, same idea as fixImagePaths() above. Only touches slugs that
|
||||
// actually exist, so an unrelated "foo.html" link is left alone.
|
||||
// Docs are also linked by their real filename stem (e.g. "concepts-accounts.html"
|
||||
// for docs/concepts-accounts.md) -- the correct, working link on the Jekyll/
|
||||
// GitHub Pages build, where the URL IS the filename stem. That doesn't match
|
||||
// this viewer's own short slugs (DOCS keys, e.g. "accounts"), so also resolve
|
||||
// by filename as a fallback -- one link written in a doc works correctly on
|
||||
// both targets, rather than needing two different link forms.
|
||||
const slugByFilename = Object.fromEntries(
|
||||
Object.entries(DOCS).map(([slug, d]) => [path.basename(d.file, '.md'), slug])
|
||||
);
|
||||
function fixDocLinks(html) {
|
||||
return html
|
||||
.replace(/href="index\.html"/g, 'href="/docs"')
|
||||
.replace(/href="([a-z0-9-]+)\.html"/g, (match, slug) => DOCS[slug] ? `href="/docs/${slug}"` : match);
|
||||
.replace(/href="([a-z0-9-]+)\.html"/g, (match, name) => {
|
||||
const slug = DOCS[name] ? name : slugByFilename[name];
|
||||
return slug ? `href="/docs/${slug}"` : match;
|
||||
});
|
||||
}
|
||||
|
||||
// docs/*.md files (not the repo-root README/CHANGELOG/API.md) carry Jekyll
|
||||
|
||||
Reference in New Issue
Block a user