svedocs 0.1.0-beta.4 → 0.1.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/core/content.d.ts.map +1 -1
  2. package/dist/core/content.js +32 -7
  3. package/dist/core/links.d.ts +1 -4
  4. package/dist/core/links.d.ts.map +1 -1
  5. package/dist/core/links.js +9 -43
  6. package/dist/core/messages.d.ts +1 -0
  7. package/dist/core/messages.d.ts.map +1 -1
  8. package/dist/core/messages.js +1 -0
  9. package/dist/core/routes.d.ts +36 -0
  10. package/dist/core/routes.d.ts.map +1 -0
  11. package/dist/core/routes.js +152 -0
  12. package/dist/core/types.d.ts +1 -0
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/core.d.ts +1 -0
  15. package/dist/core.d.ts.map +1 -1
  16. package/dist/core.js +1 -0
  17. package/dist/mdx/code.d.ts +1 -1
  18. package/dist/mdx/code.d.ts.map +1 -1
  19. package/dist/mdx/compile.d.ts +1 -0
  20. package/dist/mdx/compile.d.ts.map +1 -1
  21. package/dist/mdx/compile.js +5 -13
  22. package/dist/mdx/headings.d.ts +4 -0
  23. package/dist/mdx/headings.d.ts.map +1 -0
  24. package/dist/mdx/headings.js +42 -0
  25. package/dist/mdx/links.d.ts +3 -1
  26. package/dist/mdx/links.d.ts.map +1 -1
  27. package/dist/mdx/links.js +5 -2
  28. package/dist/routes.d.ts +2 -0
  29. package/dist/routes.d.ts.map +1 -0
  30. package/dist/routes.js +1 -0
  31. package/dist/svelte.d.ts +2 -0
  32. package/dist/svelte.d.ts.map +1 -1
  33. package/dist/svelte.js +3 -16
  34. package/dist/theme/LocalizedLink.svelte +21 -0
  35. package/dist/theme/LocalizedLink.svelte.d.ts +38 -0
  36. package/dist/theme/LocalizedLink.svelte.d.ts.map +1 -0
  37. package/dist/theme/base.css +25 -2
  38. package/dist/theme/headless.d.ts.map +1 -1
  39. package/dist/theme/headless.js +2 -7
  40. package/dist/theme/index.d.ts +1 -0
  41. package/dist/theme/index.d.ts.map +1 -1
  42. package/dist/theme/index.js +1 -0
  43. package/dist/theme/styles.css +27 -1
  44. package/dist/vite.js +9 -1
  45. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/core/content.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAOlD,OAAO,KAAK,EAAE,sBAAsB,EAAe,qBAAqB,EAA0E,MAAM,YAAY,CAAC;AAYrK,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,GAAG,qBAAqB,CAAC;CAC3C,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA+BvC"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/core/content.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQlD,OAAO,KAAK,EAAE,sBAAsB,EAAe,qBAAqB,EAA0E,MAAM,YAAY,CAAC;AAYrK,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,GAAG,qBAAqB,CAAC;CAC3C,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA0CvC"}
@@ -7,6 +7,7 @@ import { checkSvedocsContent } from './checks.js';
7
7
  import { defaultSvedocsMessages, isResolvedConfig, resolveSvedocsConfig } from './config.js';
8
8
  import { extractMarkdownLinks } from './links.js';
9
9
  import { createPageTree, wirePrevNext } from './navigation.js';
10
+ import { resolveSvedocsHref } from './routes.js';
10
11
  import { createPageSearchRecords, createSearchRecords } from './search.js';
11
12
  import { booleanFrontmatter, formatRoutePathForBuildMode, normalizePath, numberFrontmatter, stringArrayFrontmatter, stringFrontmatter, stripInlineMarkdown, titleFromSegment } from './utils.js';
12
13
  export async function loadSvedocsContent(options = {}) {
@@ -22,10 +23,21 @@ export async function loadSvedocsContent(options = {}) {
22
23
  ignore: config.content.exclude,
23
24
  onlyFiles: true
24
25
  });
25
- const pages = await Promise.all(files
26
+ const entries = files
26
27
  .filter((file) => isContentFile(file))
27
28
  .sort()
28
- .map((file) => loadContentFile(projectRoot, file, config, markdownOptions)));
29
+ .map((file) => {
30
+ const kind = inferKind(file, config);
31
+ return { file, kind, route: createRouteInfo(file, kind, config) };
32
+ });
33
+ const routeTargets = entries.map(({ file, kind, route }) => ({
34
+ kind,
35
+ sourcePath: file,
36
+ routePath: route.routePath,
37
+ scopePath: route.scopePath,
38
+ ...(route.locale ? { locale: route.locale } : {})
39
+ }));
40
+ const pages = await Promise.all(entries.map((entry) => (loadContentFile(projectRoot, entry, routeTargets, config, markdownOptions))));
29
41
  const sorted = pages.sort((a, b) => a.routePath.localeCompare(b.routePath));
30
42
  const tree = createPageTree(sorted);
31
43
  wirePrevNext(sorted, tree);
@@ -42,7 +54,8 @@ export async function loadSvedocsContent(options = {}) {
42
54
  function isContentFile(file) {
43
55
  return /\.(md|mdx|svx)$/.test(file);
44
56
  }
45
- async function loadContentFile(projectRoot, file, config, markdownOptions) {
57
+ async function loadContentFile(projectRoot, entry, routeTargets, config, markdownOptions) {
58
+ const { file, kind, route } = entry;
46
59
  const sourcePath = path.join(projectRoot, file);
47
60
  const raw = await readFile(sourcePath, 'utf8');
48
61
  const fileStats = await stat(sourcePath);
@@ -52,12 +65,23 @@ async function loadContentFile(projectRoot, file, config, markdownOptions) {
52
65
  const discoveredTitle = extractFirstMarkdownTitle(markdown);
53
66
  const titleFromFrontmatter = stringFrontmatter(frontmatter.title);
54
67
  const renderMarkdown = stripLeadingTitleHeading(markdown, titleFromFrontmatter ?? discoveredTitle);
55
- const kind = inferKind(file, config);
56
- const route = createRouteInfo(file, kind, config);
57
68
  const routePath = route.routePath;
69
+ const currentRoute = {
70
+ kind,
71
+ sourcePath: file,
72
+ routePath,
73
+ scopePath: route.scopePath,
74
+ ...(route.locale ? { locale: route.locale } : {})
75
+ };
58
76
  const compiled = await compileMarkdown(renderMarkdown, {
59
77
  ...markdownOptions,
60
- messages: createMarkdownMessages(config, route.locale)
78
+ messages: createMarkdownMessages(config, route.locale),
79
+ resolveHref: (href) => resolveSvedocsHref({
80
+ href,
81
+ pages: routeTargets,
82
+ config,
83
+ page: currentRoute
84
+ }).href
61
85
  });
62
86
  const title = titleFromFrontmatter ?? discoveredTitle ?? compiled.title ?? titleFromRoute(routePath);
63
87
  const navTitle = stringFrontmatter(frontmatter.navTitle) ?? stringFrontmatter(frontmatter.nav_title);
@@ -221,7 +245,8 @@ function createMarkdownMessages(config, locale) {
221
245
  'diff.label': messages['diff.label'],
222
246
  'diff.aria': messages['diff.aria'],
223
247
  'diff.before': messages['diff.before'],
224
- 'diff.after': messages['diff.after']
248
+ 'diff.after': messages['diff.after'],
249
+ 'heading.anchor': messages['heading.anchor']
225
250
  };
226
251
  }
227
252
  function createEditUrl(baseUrl, sourcePath) {
@@ -1,8 +1,5 @@
1
1
  import type { SvedocsContentIssue, SvedocsContentManifest, SvedocsLinkReference, SvedocsPage } from './types.js';
2
2
  export declare function extractMarkdownLinks(markdown: string): SvedocsLinkReference[];
3
- export declare function createLinkCheckContext(manifest: SvedocsContentManifest): {
4
- routeMap: Map<string, SvedocsPage>;
5
- sourceMap: Map<string, SvedocsPage>;
6
- };
3
+ export declare function createLinkCheckContext(manifest: SvedocsContentManifest): SvedocsContentManifest;
7
4
  export declare function checkLink(page: SvedocsPage, link: SvedocsLinkReference, context: ReturnType<typeof createLinkCheckContext>): SvedocsContentIssue | undefined;
8
5
  //# sourceMappingURL=links.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/core/links.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIjH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAE7E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB;;;EAStE;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GACjD,mBAAmB,GAAG,SAAS,CAwBjC"}
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/core/links.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIjH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAE7E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,0BAEtE;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GACjD,mBAAmB,GAAG,SAAS,CAwBjC"}
@@ -1,20 +1,11 @@
1
- import path from 'node:path';
2
1
  import GithubSlugger from 'github-slugger';
3
2
  import { extractMarkdownLinksFromAst } from '../mdx/ast.js';
4
- import { normalizePath, stripContentExtension } from './utils.js';
3
+ import { resolveSvedocsHref } from './routes.js';
5
4
  export function extractMarkdownLinks(markdown) {
6
5
  return extractMarkdownLinksFromAst(markdown);
7
6
  }
8
7
  export function createLinkCheckContext(manifest) {
9
- const routeMap = new Map(manifest.pages.map((page) => [page.routePath, page]));
10
- const sourceMap = new Map();
11
- for (const page of manifest.pages) {
12
- const source = stripContentExtension(normalizePath(page.sourcePath));
13
- sourceMap.set(source, page);
14
- if (source.endsWith('/index'))
15
- sourceMap.set(source.slice(0, -'/index'.length), page);
16
- }
17
- return { routeMap, sourceMap };
8
+ return manifest;
18
9
  }
19
10
  export function checkLink(page, link, context) {
20
11
  if (['asset', 'external', 'mailto', 'tel'].includes(link.kind))
@@ -46,17 +37,13 @@ function resolveLinkTarget(page, link, context) {
46
37
  const parts = splitHref(link.href);
47
38
  if (!parts.pathname && parts.hash)
48
39
  return { page, hash: parts.hash };
49
- if (parts.pathname.startsWith('/')) {
50
- return {
51
- page: context.routeMap.get(normalizeRouteTarget(parts.pathname)),
52
- ...(parts.hash ? { hash: parts.hash } : {})
53
- };
54
- }
55
- const sourceTarget = resolveSourceTarget(page, parts.pathname, context.sourceMap);
56
- if (sourceTarget)
57
- return { page: sourceTarget, ...(parts.hash ? { hash: parts.hash } : {}) };
58
- const routeTarget = resolveRouteTarget(page, parts.pathname, context.routeMap);
59
- return { page: routeTarget, ...(parts.hash ? { hash: parts.hash } : {}) };
40
+ const resolved = resolveSvedocsHref({
41
+ href: link.href,
42
+ page,
43
+ pages: context.pages,
44
+ config: context.config
45
+ });
46
+ return { page: resolved.page, ...(parts.hash ? { hash: parts.hash } : {}) };
60
47
  }
61
48
  function splitHref(href) {
62
49
  const [withoutHash = '', hashWithQuery] = href.trim().split('#');
@@ -67,27 +54,6 @@ function splitHref(href) {
67
54
  ...(hash ? { hash: decodeURIComponent(hash) } : {})
68
55
  };
69
56
  }
70
- function resolveSourceTarget(page, pathname, sourceMap) {
71
- if (!pathname)
72
- return page;
73
- const sourceDir = path.posix.dirname(normalizePath(page.sourcePath));
74
- const target = stripContentExtension(path.posix.normalize(path.posix.join(sourceDir, pathname)));
75
- return sourceMap.get(target) ?? sourceMap.get(`${target}/index`);
76
- }
77
- function resolveRouteTarget(page, pathname, routeMap) {
78
- if (!pathname)
79
- return page;
80
- const base = page.routePath === '/' ? '/' : path.posix.dirname(page.routePath);
81
- const target = normalizeRouteTarget(path.posix.join(base, pathname));
82
- return routeMap.get(target);
83
- }
84
- function normalizeRouteTarget(route) {
85
- const normalized = path.posix
86
- .normalize(`/${route.replace(/^\/+/, '')}`)
87
- .replace(/\.(md|mdx|svx|html)$/i, '')
88
- .replace(/\/index$/, '');
89
- return normalized === '/' ? '/' : normalized.replace(/\/$/, '');
90
- }
91
57
  function knownAnchors(page) {
92
58
  const slugger = new GithubSlugger();
93
59
  return new Set([slugger.slug(page.title), ...page.headings.map((heading) => heading.id)]);
@@ -51,6 +51,7 @@ export declare const defaultSvedocsMessages: {
51
51
  'ask.fallbackReady': string;
52
52
  'ask.sourceTitle': string;
53
53
  'toc.label': string;
54
+ 'heading.anchor': string;
54
55
  'article.kind.doc': string;
55
56
  'article.kind.page': string;
56
57
  'article.breadcrumb': string;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/core/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IR,CAAC;AAE5B,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAYzE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,GAC7C,eAAe,CAKjB"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/core/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IR,CAAC;AAE5B,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAYzE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,GAC7C,eAAe,CAKjB"}
@@ -49,6 +49,7 @@ export const defaultSvedocsMessages = {
49
49
  'ask.fallbackReady': 'Ask AI is ready. Connect {provider} and index your docs to answer this question with citations.',
50
50
  'ask.sourceTitle': 'Source {index}',
51
51
  'toc.label': 'On this page',
52
+ 'heading.anchor': 'Link to this section',
52
53
  'article.kind.doc': 'Documentation',
53
54
  'article.kind.page': 'Page',
54
55
  'article.breadcrumb': 'Breadcrumb',
@@ -0,0 +1,36 @@
1
+ import type { SvedocsResolvedConfig } from './types.js';
2
+ export interface SvedocsRouteTarget {
3
+ routePath: string;
4
+ scopePath: string;
5
+ sourcePath?: string;
6
+ locale?: string;
7
+ kind: 'doc' | 'page';
8
+ }
9
+ export type SvedocsPageRouteResolution<T extends SvedocsRouteTarget = SvedocsRouteTarget> = {
10
+ status: 'found';
11
+ page: T;
12
+ } | {
13
+ status: 'redirect';
14
+ page: T;
15
+ location: string;
16
+ requestedLocale: string;
17
+ resolvedLocale: string;
18
+ } | {
19
+ status: 'missing';
20
+ requestedLocale?: string;
21
+ };
22
+ export interface SvedocsHrefResolution<T extends SvedocsRouteTarget = SvedocsRouteTarget> {
23
+ href: string;
24
+ page?: T;
25
+ fallback: boolean;
26
+ }
27
+ export declare function resolveSvedocsPageRoute<T extends SvedocsRouteTarget>(routePath: string, pages: readonly T[], config: SvedocsResolvedConfig): SvedocsPageRouteResolution<T>;
28
+ export declare function createSvedocsRouteEntries<T extends SvedocsRouteTarget>(pages: readonly T[], config: SvedocsResolvedConfig): string[];
29
+ export declare function resolveSvedocsHref<T extends SvedocsRouteTarget>(input: {
30
+ href: string;
31
+ pages: readonly T[];
32
+ config: SvedocsResolvedConfig;
33
+ page?: SvedocsRouteTarget;
34
+ localeCode?: string;
35
+ }): SvedocsHrefResolution<T>;
36
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/core/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,IACpF;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAClG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,kBAAkB,EAClE,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,MAAM,EAAE,qBAAqB,GAC5B,0BAA0B,CAAC,CAAC,CAAC,CAyB/B;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,kBAAkB,EACpE,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,MAAM,EAAE,qBAAqB,GAC5B,MAAM,EAAE,CAsBV;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAoC3B"}
@@ -0,0 +1,152 @@
1
+ import { normalizePath, stripContentExtension } from './utils.js';
2
+ export function resolveSvedocsPageRoute(routePath, pages, config) {
3
+ const normalized = normalizeRoutePath(routePath);
4
+ const exact = pages.find((page) => normalizeRoutePath(page.routePath) === normalized);
5
+ if (exact)
6
+ return { status: 'found', page: exact };
7
+ const requested = resolveLocalizedScope(normalized, config);
8
+ if (!requested)
9
+ return { status: 'missing' };
10
+ const defaultLocale = config.i18n.defaultLocale;
11
+ if (!defaultLocale || requested.locale === defaultLocale) {
12
+ return { status: 'missing', requestedLocale: requested.locale };
13
+ }
14
+ const fallback = pages.find((page) => (page.kind === requested.kind
15
+ && page.scopePath === requested.scopePath
16
+ && page.locale === defaultLocale));
17
+ if (!fallback)
18
+ return { status: 'missing', requestedLocale: requested.locale };
19
+ return {
20
+ status: 'redirect',
21
+ page: fallback,
22
+ location: fallback.routePath,
23
+ requestedLocale: requested.locale,
24
+ resolvedLocale: defaultLocale
25
+ };
26
+ }
27
+ export function createSvedocsRouteEntries(pages, config) {
28
+ const entries = new Set(pages
29
+ .map((page) => normalizeRoutePath(page.routePath))
30
+ .filter((routePath) => routePath !== '/'));
31
+ const defaultLocale = config.i18n.defaultLocale;
32
+ if (!defaultLocale)
33
+ return [...entries];
34
+ const defaultPages = pages.filter((page) => page.locale === defaultLocale);
35
+ for (const page of defaultPages) {
36
+ for (const locale of config.i18n.locales) {
37
+ if (locale.code === defaultLocale)
38
+ continue;
39
+ const translationExists = pages.some((candidate) => (candidate.kind === page.kind
40
+ && candidate.scopePath === page.scopePath
41
+ && candidate.locale === locale.code));
42
+ if (!translationExists)
43
+ entries.add(createLocalizedRoutePath(page, locale.path));
44
+ }
45
+ }
46
+ return [...entries];
47
+ }
48
+ export function resolveSvedocsHref(input) {
49
+ const { pathname, suffix } = splitHref(input.href);
50
+ if (!pathname || isNonPageHref(input.href))
51
+ return { href: input.href, fallback: false };
52
+ const exactPath = pathname.startsWith('/') ? normalizeRoutePath(pathname) : undefined;
53
+ const exact = exactPath
54
+ ? input.pages.find((page) => normalizeRoutePath(page.routePath) === exactPath)
55
+ : undefined;
56
+ if (exact && exact.scopePath !== exactPath) {
57
+ return { href: `${exact.routePath}${suffix}`, page: exact, fallback: false };
58
+ }
59
+ const scopePath = pathname.startsWith('/')
60
+ ? normalizeContentPath(pathname)
61
+ : input.page
62
+ ? resolveRelativeScopePath(input.page, pathname)
63
+ : undefined;
64
+ if (!scopePath)
65
+ return { href: input.href, fallback: false };
66
+ const localeCode = input.localeCode ?? input.page?.locale ?? input.config.i18n.defaultLocale;
67
+ const kind = exact?.kind ?? inferTargetKind(scopePath, input.page?.kind);
68
+ const localized = input.pages.find((page) => (page.scopePath === scopePath
69
+ && page.kind === kind
70
+ && page.locale === localeCode));
71
+ if (localized)
72
+ return { href: `${localized.routePath}${suffix}`, page: localized, fallback: false };
73
+ const defaultLocale = input.config.i18n.defaultLocale;
74
+ const fallback = input.pages.find((page) => (page.scopePath === scopePath
75
+ && page.kind === kind
76
+ && page.locale === defaultLocale));
77
+ if (fallback)
78
+ return { href: `${fallback.routePath}${suffix}`, page: fallback, fallback: true };
79
+ return { href: input.href, fallback: false };
80
+ }
81
+ function resolveLocalizedScope(routePath, config) {
82
+ const segments = routePath.split('/').filter(Boolean);
83
+ const kind = segments[0] === 'docs' ? 'doc' : 'page';
84
+ const localeIndex = kind === 'doc' ? 1 : 0;
85
+ const locale = config.i18n.locales.find((candidate) => candidate.path === segments[localeIndex]);
86
+ if (!locale)
87
+ return undefined;
88
+ const scopeSegments = segments.filter((_, index) => index !== localeIndex);
89
+ return {
90
+ locale: locale.code,
91
+ scopePath: normalizeRoutePath(`/${scopeSegments.join('/')}`),
92
+ kind
93
+ };
94
+ }
95
+ function resolveRelativeScopePath(page, pathname) {
96
+ const sourceWithoutExtension = page.sourcePath ? stripContentExtension(normalizePath(page.sourcePath)) : '';
97
+ const sourceIsIndex = sourceWithoutExtension.endsWith('/index');
98
+ const base = sourceIsIndex || page.scopePath === '/' ? page.scopePath : dirnameRoutePath(page.scopePath);
99
+ return normalizeContentPath(`${base}/${pathname}`);
100
+ }
101
+ function createLocalizedRoutePath(page, localePath) {
102
+ const scopeSegments = normalizeRoutePath(page.scopePath).split('/').filter(Boolean);
103
+ if (page.kind === 'doc') {
104
+ const docSegments = scopeSegments[0] === 'docs' ? scopeSegments.slice(1) : scopeSegments;
105
+ return normalizeRoutePath(`/docs/${localePath}/${docSegments.join('/')}`);
106
+ }
107
+ return normalizeRoutePath(`/${localePath}/${scopeSegments.join('/')}`);
108
+ }
109
+ function normalizeContentPath(value) {
110
+ const normalized = normalizeRoutePath(stripContentExtension(normalizePath(value)));
111
+ return normalized.endsWith('/index')
112
+ ? normalized.slice(0, -'/index'.length) || '/'
113
+ : normalized;
114
+ }
115
+ function inferTargetKind(scopePath, currentKind) {
116
+ if (scopePath === '/docs' || scopePath.startsWith('/docs/'))
117
+ return 'doc';
118
+ return currentKind === 'doc' ? 'doc' : 'page';
119
+ }
120
+ function normalizeRoutePath(value) {
121
+ const [pathname = ''] = normalizePath(value).split(/[?#]/, 1);
122
+ const segments = [];
123
+ for (const segment of pathname.split('/')) {
124
+ if (!segment || segment === '.')
125
+ continue;
126
+ if (segment === '..') {
127
+ segments.pop();
128
+ continue;
129
+ }
130
+ segments.push(segment);
131
+ }
132
+ return segments.length > 0 ? `/${segments.join('/')}` : '/';
133
+ }
134
+ function dirnameRoutePath(value) {
135
+ const segments = normalizeRoutePath(value).split('/').filter(Boolean);
136
+ segments.pop();
137
+ return segments.length > 0 ? `/${segments.join('/')}` : '/';
138
+ }
139
+ function splitHref(href) {
140
+ const suffixIndex = href.search(/[?#]/);
141
+ return suffixIndex < 0
142
+ ? { pathname: href, suffix: '' }
143
+ : { pathname: href.slice(0, suffixIndex), suffix: href.slice(suffixIndex) };
144
+ }
145
+ function isNonPageHref(href) {
146
+ return href.startsWith('#')
147
+ || href.startsWith('mailto:')
148
+ || href.startsWith('tel:')
149
+ || /^(https?:)?\/\//.test(href)
150
+ || /^[a-z][a-z0-9+.-]*:/i.test(href)
151
+ || /\.(avif|gif|jpe?g|png|svg|webp|pdf|zip)([#?].*)?$/i.test(href);
152
+ }
@@ -135,6 +135,7 @@ export interface SvedocsMessages {
135
135
  'ask.fallbackReady': string;
136
136
  'ask.sourceTitle': string;
137
137
  'toc.label': string;
138
+ 'heading.anchor': string;
138
139
  'article.kind.doc': string;
139
140
  'article.kind.page': string;
140
141
  'article.breadcrumb': string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './core/types.js';
2
2
  export * from './core/config.js';
3
3
  export * from './core/content.js';
4
4
  export * from './core/navigation.js';
5
+ export * from './core/routes.js';
5
6
  export * from './core/search.js';
6
7
  export * from './core/links.js';
7
8
  export * from './core/checks.js';
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
package/dist/core.js CHANGED
@@ -2,6 +2,7 @@ export * from './core/types.js';
2
2
  export * from './core/config.js';
3
3
  export * from './core/content.js';
4
4
  export * from './core/navigation.js';
5
+ export * from './core/routes.js';
5
6
  export * from './core/search.js';
6
7
  export * from './core/links.js';
7
8
  export * from './core/checks.js';
@@ -1,5 +1,5 @@
1
1
  import type { SvedocsCodeBlock, SvedocsMessages } from '../core/types.js';
2
- export type SvedocsMarkdownMessages = Pick<SvedocsMessages, 'code.copy' | 'code.copyDiff' | 'diff.label' | 'diff.aria' | 'diff.before' | 'diff.after'>;
2
+ export type SvedocsMarkdownMessages = Pick<SvedocsMessages, 'code.copy' | 'code.copyDiff' | 'diff.label' | 'diff.aria' | 'diff.before' | 'diff.after'> & Partial<Pick<SvedocsMessages, 'heading.anchor'>>;
3
3
  export declare function extractCodeBlocks(markdown: string): SvedocsCodeBlock[];
4
4
  export declare function rehypeCodeBlocks(codeBlocks?: SvedocsCodeBlock[]): (tree: unknown) => void;
5
5
  export declare function remarkSvedocsCodeBlocks(codeBlocks?: SvedocsCodeBlock[], options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/mdx/code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAY1E,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,eAAe,EACf,WAAW,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAC1F,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA6BtE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,gBAAgB,EAAO,IAC1D,MAAM,OAAO,UAwBtB;AAED,wBAAgB,uBAAuB,CACrC,UAAU,GAAE,gBAAgB,EAAO,EACnC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAA;CAAO,IAErM,MAAM,OAAO,mBA0D5B"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/mdx/code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAY1E,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,eAAe,EACf,WAAW,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAC1F,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA6BtE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,gBAAgB,EAAO,IAC1D,MAAM,OAAO,UAwBtB;AAED,wBAAgB,uBAAuB,CACrC,UAAU,GAAE,gBAAgB,EAAO,EACnC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAA;CAAO,IAErM,MAAM,OAAO,mBA0D5B"}
@@ -22,6 +22,7 @@ export interface CompileMarkdownOptions {
22
22
  codeWrap?: boolean;
23
23
  codeCopyButton?: boolean;
24
24
  messages?: SvedocsMarkdownMessages;
25
+ resolveHref?: (href: string) => string;
25
26
  }
26
27
  export declare function compileMarkdown(markdown: string, options?: CompileMarkdownOptions): Promise<CompiledMarkdown>;
27
28
  export { createDiffRows, createDiffSplitRows, extractCodeBlocks, markdownToPlainText };
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/mdx/compile.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAA6C,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACvH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CA2D3B;AAED,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/mdx/compile.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAA6C,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACvH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAmD3B;AAED,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,4 +1,3 @@
1
- import rehypeAutolinkHeadings from 'rehype-autolink-headings';
2
1
  import rehypeKatex from 'rehype-katex';
3
2
  import rehypeRaw from 'rehype-raw';
4
3
  import rehypeSlug from 'rehype-slug';
@@ -11,6 +10,7 @@ import { unified } from 'unified';
11
10
  import { extractMarkdownOutline, markdownAstToPlainText } from './ast.js';
12
11
  import { extractCodeBlocks, rehypeCodeBlocks, remarkSvedocsCodeBlocks } from './code.js';
13
12
  import { createDiffRows, createDiffSplitRows } from './diff.js';
13
+ import { rehypeSvedocsHeadingAnchors } from './headings.js';
14
14
  import { rehypeSvedocsLinks } from './links.js';
15
15
  import { markdownToPlainText } from './utils.js';
16
16
  export async function compileMarkdown(markdown, options = {}) {
@@ -36,19 +36,11 @@ export async function compileMarkdown(markdown, options = {}) {
36
36
  .use(remarkRehype, { allowDangerousHtml: true })
37
37
  .use(rehypeRaw)
38
38
  .use(rehypeSlug)
39
- .use(rehypeAutolinkHeadings, {
40
- behavior: 'append',
41
- properties: {
42
- className: ['sd-heading-anchor'],
43
- ariaHidden: 'true'
44
- },
45
- content: {
46
- type: 'text',
47
- value: '#'
48
- }
49
- })
39
+ .use(rehypeSvedocsHeadingAnchors, options.messages?.['heading.anchor']
40
+ ? { label: options.messages['heading.anchor'] }
41
+ : {})
50
42
  .use(rehypeKatex)
51
- .use(rehypeSvedocsLinks);
43
+ .use(rehypeSvedocsLinks, options.resolveHref ? { resolveHref: options.resolveHref } : {});
52
44
  for (const plugin of options.rehypePlugins ?? []) {
53
45
  processor.use(plugin);
54
46
  }
@@ -0,0 +1,4 @@
1
+ export declare function rehypeSvedocsHeadingAnchors(options?: {
2
+ label?: string;
3
+ }): (tree: unknown) => void;
4
+ //# sourceMappingURL=headings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headings.d.ts","sourceRoot":"","sources":["../../src/mdx/headings.ts"],"names":[],"mappings":"AAEA,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,IAElE,MAAM,OAAO,UAoCtB"}
@@ -0,0 +1,42 @@
1
+ import { visit } from 'unist-util-visit';
2
+ export function rehypeSvedocsHeadingAnchors(options = {}) {
3
+ const label = options.label ?? 'Link to this section';
4
+ return (tree) => {
5
+ visit(tree, 'element', (node) => {
6
+ if (!['h2', 'h3', 'h4'].includes(node.tagName))
7
+ return;
8
+ const id = typeof node.properties?.id === 'string' ? node.properties.id : '';
9
+ if (!id)
10
+ return;
11
+ node.children = [
12
+ ...(node.children ?? []),
13
+ {
14
+ type: 'element',
15
+ tagName: 'a',
16
+ properties: {
17
+ className: ['sd-heading-anchor'],
18
+ href: `#${id}`,
19
+ ariaLabel: label
20
+ },
21
+ children: [{
22
+ type: 'element',
23
+ tagName: 'svg',
24
+ properties: {
25
+ ariaHidden: 'true',
26
+ viewBox: '0 0 24 24',
27
+ fill: 'none',
28
+ stroke: 'currentColor',
29
+ strokeWidth: 2,
30
+ strokeLinecap: 'round',
31
+ strokeLinejoin: 'round'
32
+ },
33
+ children: [
34
+ { type: 'element', tagName: 'path', properties: { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71' }, children: [] },
35
+ { type: 'element', tagName: 'path', properties: { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71' }, children: [] }
36
+ ]
37
+ }]
38
+ }
39
+ ];
40
+ });
41
+ };
42
+ }
@@ -1,2 +1,4 @@
1
- export declare function rehypeSvedocsLinks(): (tree: unknown) => void;
1
+ export declare function rehypeSvedocsLinks(options?: {
2
+ resolveHref?: (href: string) => string;
3
+ }): (tree: unknown) => void;
2
4
  //# sourceMappingURL=links.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/mdx/links.ts"],"names":[],"mappings":"AAuBA,wBAAgB,kBAAkB,KACxB,MAAM,OAAO,UA+DtB"}
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/mdx/links.ts"],"names":[],"mappings":"AAuBA,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAAO,IACjF,MAAM,OAAO,UAiEtB"}
package/dist/mdx/links.js CHANGED
@@ -19,14 +19,17 @@ const externalLinkIcon = {
19
19
  { type: 'element', tagName: 'path', properties: { d: 'M13 17H7V7' }, children: [] }
20
20
  ]
21
21
  };
22
- export function rehypeSvedocsLinks() {
22
+ export function rehypeSvedocsLinks(options = {}) {
23
23
  return (tree) => {
24
24
  visit(tree, 'element', (node, index, parent) => {
25
25
  if (node.tagName !== 'a')
26
26
  return;
27
- const href = typeof node.properties?.href === 'string' ? node.properties.href : '';
27
+ const originalHref = typeof node.properties?.href === 'string' ? node.properties.href : '';
28
+ const href = originalHref ? options.resolveHref?.(originalHref) ?? originalHref : '';
28
29
  if (!href)
29
30
  return;
31
+ if (href !== originalHref)
32
+ node.properties.href = href;
30
33
  if (isInternalHref(href) && shouldRenderAsLinkCard(node, parent)) {
31
34
  const label = nodeToText(node).trim() || href;
32
35
  const description = parseCardDescription(node.properties?.title);
@@ -0,0 +1,2 @@
1
+ export * from './core/routes.js';
2
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
package/dist/routes.js ADDED
@@ -0,0 +1 @@
1
+ export * from './core/routes.js';
package/dist/svelte.d.ts CHANGED
@@ -21,5 +21,7 @@ export declare function createSvedocsMdsvexOptions(source: string, options?: Mds
21
21
  };
22
22
  shikiTransformers?: unknown[];
23
23
  codeCopyButton?: boolean;
24
+ headingAnchorLabel?: string;
25
+ resolveHref?: (href: string) => string;
24
26
  }): MdsvexOptions;
25
27
  //# sourceMappingURL=svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../src/svelte.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAS5C,eAAO,MAAM,wBAAwB,kCAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,6CAAoD,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,SAAS,CAAC,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,mBAAmB,CAQlF;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAAkB,EAC3B,cAAc,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACnJ,aAAa,CAsCf"}
1
+ {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../src/svelte.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAS5C,eAAO,MAAM,wBAAwB,kCAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,6CAAoD,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,SAAS,CAAC,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,mBAAmB,CAQlF;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAAkB,EAC3B,cAAc,GAAE;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC,GACL,aAAa,CAyBf"}
package/dist/svelte.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { mdsvex } from 'mdsvex';
2
- import rehypeAutolinkHeadings from 'rehype-autolink-headings';
3
2
  import rehypeKatex from 'rehype-katex';
4
3
  import rehypeSlug from 'rehype-slug';
5
4
  import remarkGfm from 'remark-gfm';
6
5
  import remarkMath from 'remark-math';
7
6
  import { extractCodeBlocks, rehypeCodeBlocks, remarkSvedocsCodeBlocks } from './mdx/code.js';
7
+ import { rehypeSvedocsHeadingAnchors } from './mdx/headings.js';
8
8
  import { rehypeSvedocsLinks } from './mdx/links.js';
9
9
  export const svedocsContentExtensions = ['.md', '.mdx', '.svx'];
10
10
  export const svedocsSvelteExtensions = ['.svelte', ...svedocsContentExtensions];
@@ -35,22 +35,9 @@ export function createSvedocsMdsvexOptions(source, options = {}, svedocsOptions
35
35
  ],
36
36
  rehypePlugins: [
37
37
  rehypeSlug,
38
- [
39
- rehypeAutolinkHeadings,
40
- {
41
- behavior: 'append',
42
- properties: {
43
- className: ['sd-heading-anchor'],
44
- ariaHidden: 'true'
45
- },
46
- content: {
47
- type: 'text',
48
- value: '#'
49
- }
50
- }
51
- ],
38
+ [rehypeSvedocsHeadingAnchors, { label: svedocsOptions.headingAnchorLabel }],
52
39
  rehypeKatex,
53
- rehypeSvedocsLinks,
40
+ [rehypeSvedocsLinks, { resolveHref: svedocsOptions.resolveHref }],
54
41
  [rehypeCodeBlocks, codeBlocks],
55
42
  ...(options.rehypePlugins ?? [])
56
43
  ]
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import type { HTMLAnchorAttributes } from 'svelte/elements';
3
+ import { resolveLocalizedHref } from './headless.js';
4
+ import type { SvedocsThemeContext } from './types.js';
5
+
6
+ interface $$Props extends Omit<HTMLAnchorAttributes, 'href'> {
7
+ context: SvedocsThemeContext;
8
+ href: string;
9
+ external?: boolean;
10
+ }
11
+
12
+ export let context: SvedocsThemeContext;
13
+ export let href: string;
14
+ export let external = false;
15
+
16
+ $: resolvedHref = external ? href : resolveLocalizedHref(href, context);
17
+ </script>
18
+
19
+ <a {...$$restProps} href={resolvedHref} on:click on:focus on:blur>
20
+ <slot />
21
+ </a>
@@ -0,0 +1,38 @@
1
+ import type { HTMLAnchorAttributes } from 'svelte/elements';
2
+ import type { SvedocsThemeContext } from './types.js';
3
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
+ $$bindings?: Bindings;
6
+ } & Exports;
7
+ (internal: unknown, props: Props & {
8
+ $$events?: Events;
9
+ $$slots?: Slots;
10
+ }): Exports & {
11
+ $set?: any;
12
+ $on?: any;
13
+ };
14
+ z_$$bindings?: Bindings;
15
+ }
16
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
17
+ default: any;
18
+ } ? Props extends Record<string, never> ? any : {
19
+ children?: any;
20
+ } : {});
21
+ declare const LocalizedLink: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<Omit<HTMLAnchorAttributes, "href"> & {
22
+ context: SvedocsThemeContext;
23
+ href: string;
24
+ external?: boolean;
25
+ }, {
26
+ default: {};
27
+ }>, {
28
+ click: PointerEvent;
29
+ focus: FocusEvent;
30
+ blur: FocusEvent;
31
+ } & {
32
+ [evt: string]: CustomEvent<any>;
33
+ }, {
34
+ default: {};
35
+ }, {}, string>;
36
+ type LocalizedLink = InstanceType<typeof LocalizedLink>;
37
+ export default LocalizedLink;
38
+ //# sourceMappingURL=LocalizedLink.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalizedLink.svelte.d.ts","sourceRoot":"","sources":["../../src/theme/LocalizedLink.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA0BtD,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,aAAa;aAhCN,mBAAmB;UACtB,MAAM;eACD,OAAO;;;;;;;;;;;cA8BkF,CAAC;AACvF,KAAK,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,eAAe,aAAa,CAAC"}
@@ -83,9 +83,32 @@ button, input, textarea, select {
83
83
  }
84
84
 
85
85
  .sd-heading-anchor {
86
- margin-left: .35em;
86
+ display: inline-flex;
87
+ width: .9em;
88
+ height: .9em;
89
+ margin-left: .4em;
90
+ align-items: center;
91
+ justify-content: center;
92
+ vertical-align: -.08em;
93
+ color: currentColor;
87
94
  text-decoration: none;
88
- opacity: .55;
95
+ opacity: 0;
96
+ }
97
+
98
+ .sd-heading-anchor svg {
99
+ width: 100%;
100
+ height: 100%;
101
+ }
102
+
103
+ .sd-prose :is(h2, h3, h4):hover .sd-heading-anchor,
104
+ .sd-heading-anchor:focus-visible {
105
+ opacity: .65;
106
+ }
107
+
108
+ @media (hover: none) {
109
+ .sd-heading-anchor {
110
+ opacity: .55;
111
+ }
89
112
  }
90
113
 
91
114
  .sd-external-link-icon {
@@ -1 +1 @@
1
- {"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../src/theme/headless.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../src/theme/headless.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { tick } from 'svelte';
2
2
  import { derived, get, writable } from 'svelte/store';
3
3
  import { defaultSvedocsMessages } from '../core/config.js';
4
+ import { resolveSvedocsHref } from '../core/routes.js';
4
5
  import { filterSearchRecords, searchRecords } from '../search/local.js';
5
6
  const accentPalette = {
6
7
  emerald: '#007f68',
@@ -125,13 +126,7 @@ function resolveLocalizedActiveNavHref(nav, currentPath, config, pages, localeCo
125
126
  return resolveActiveNavHref(localizedNav, currentPath);
126
127
  }
127
128
  function resolveLocalizedHrefForLocale(href, config, pages, localeCode) {
128
- const hrefPath = normalizePath(href);
129
- const target = pages.find((candidate) => (candidate.scopePath === hrefPath
130
- && (candidate.locale ?? config.i18n.defaultLocale ?? 'en') === localeCode));
131
- if (!target)
132
- return href;
133
- const suffix = href.match(/[?#].*$/)?.[0] ?? '';
134
- return `${target.routePath}${suffix}`;
129
+ return resolveSvedocsHref({ href, pages, config, localeCode }).href;
135
130
  }
136
131
  export function isActiveNavItem(item, activeNavHref) {
137
132
  return !item.external && normalizePath(item.href) === activeNavHref;
@@ -26,6 +26,7 @@ export { default as TableOfContents } from './TableOfContents.svelte';
26
26
  export { default as Footer } from './Footer.svelte';
27
27
  export { default as FooterLinks } from './FooterLinks.svelte';
28
28
  export { default as ScopeSwitcher } from './ScopeSwitcher.svelte';
29
+ export { default as LocalizedLink } from './LocalizedLink.svelte';
29
30
  export { default as FormField } from './FormField.svelte';
30
31
  export { default as Input } from './Input.svelte';
31
32
  export { default as Textarea } from './Textarea.svelte';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC/E,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC9E,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export { default as TableOfContents } from './TableOfContents.svelte';
26
26
  export { default as Footer } from './Footer.svelte';
27
27
  export { default as FooterLinks } from './FooterLinks.svelte';
28
28
  export { default as ScopeSwitcher } from './ScopeSwitcher.svelte';
29
+ export { default as LocalizedLink } from './LocalizedLink.svelte';
29
30
  export { default as FormField } from './FormField.svelte';
30
31
  export { default as Input } from './Input.svelte';
31
32
  export { default as Textarea } from './Textarea.svelte';
@@ -2545,15 +2545,41 @@ body.sd-is-window-scrolling::-webkit-scrollbar-thumb,
2545
2545
  }
2546
2546
 
2547
2547
  .sd-heading-anchor {
2548
+ display: inline-flex;
2549
+ width: .9em;
2550
+ height: .9em;
2548
2551
  margin-left: .45rem;
2552
+ align-items: center;
2553
+ justify-content: center;
2554
+ vertical-align: -.08em;
2549
2555
  color: var(--sd-muted);
2550
2556
  opacity: 0;
2557
+ border-radius: 3px;
2558
+ text-decoration: none;
2559
+ transition: color .14s ease, opacity .14s ease;
2560
+ }
2561
+
2562
+ .sd-heading-anchor svg {
2563
+ width: 100%;
2564
+ height: 100%;
2551
2565
  }
2552
2566
 
2553
- .sd-prose :is(h2, h3, h4):hover .sd-heading-anchor {
2567
+ .sd-prose :is(h2, h3, h4):hover .sd-heading-anchor,
2568
+ .sd-heading-anchor:focus-visible {
2554
2569
  opacity: 1;
2555
2570
  }
2556
2571
 
2572
+ .sd-heading-anchor:hover,
2573
+ .sd-heading-anchor:focus-visible {
2574
+ color: var(--sd-accent);
2575
+ }
2576
+
2577
+ @media (hover: none) {
2578
+ .sd-heading-anchor {
2579
+ opacity: .5;
2580
+ }
2581
+ }
2582
+
2557
2583
  .sd-home-faq .sd-heading-anchor {
2558
2584
  display: none;
2559
2585
  }
package/dist/vite.js CHANGED
@@ -4,7 +4,7 @@ import { pathToFileURL } from 'node:url';
4
4
  import matter from 'gray-matter';
5
5
  import { compile as compileMdsvex } from 'mdsvex';
6
6
  import { loadConfigFromFile } from 'vite';
7
- import { loadSvedocsContent } from './core.js';
7
+ import { loadSvedocsContent, resolveSvedocsHref } from './core.js';
8
8
  import { createSvedocsMdsvexOptions } from './svelte.js';
9
9
  const themeComponentNames = [
10
10
  'Root',
@@ -319,6 +319,7 @@ async function loadPageComponent(root, id, pages, components, rawConfig, manifes
319
319
  const raw = await readFile(path.join(root, page.sourcePath), 'utf8');
320
320
  const parsed = matter(raw);
321
321
  const source = injectSvedocsComponentImports(stripFirstTitleHeading(parsed.content), components);
322
+ const headingAnchorLabel = manifestConfig.i18n.messages[page.locale ?? manifestConfig.i18n.defaultLocale ?? 'en']?.['heading.anchor'];
322
323
  try {
323
324
  const compiled = await compileMdsvex(source, {
324
325
  filename: page.sourcePath,
@@ -328,6 +329,13 @@ async function loadPageComponent(root, id, pages, components, rawConfig, manifes
328
329
  dark: manifestConfig.theme.codeTheme.dark
329
330
  },
330
331
  codeCopyButton: manifestConfig.theme.code.copyButton,
332
+ ...(headingAnchorLabel ? { headingAnchorLabel } : {}),
333
+ resolveHref: (href) => resolveSvedocsHref({
334
+ href,
335
+ pages,
336
+ config: manifestConfig,
337
+ page
338
+ }).href,
331
339
  ...(rawConfig?.markdown?.shiki?.transformers ? { shikiTransformers: rawConfig.markdown.shiki.transformers } : {})
332
340
  })
333
341
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svedocs",
3
- "version": "0.1.0-beta.4",
3
+ "version": "0.1.0-beta.5",
4
4
  "description": "SvelteKit-native documentation framework.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,6 +36,10 @@
36
36
  "types": "./dist/core.d.ts",
37
37
  "import": "./dist/core.js"
38
38
  },
39
+ "./routes": {
40
+ "types": "./dist/routes.d.ts",
41
+ "import": "./dist/routes.js"
42
+ },
39
43
  "./vite": {
40
44
  "types": "./dist/vite.d.ts",
41
45
  "import": "./dist/vite.js"
@@ -98,7 +102,6 @@
98
102
  "katex": "0.16.47",
99
103
  "mdsvex": "0.12.7",
100
104
  "minisearch": "7.2.0",
101
- "rehype-autolink-headings": "7.1.0",
102
105
  "rehype-katex": "7.0.1",
103
106
  "rehype-raw": "7.0.0",
104
107
  "rehype-slug": "6.0.0",