svedocs 0.1.0-beta.4 → 0.1.0-beta.6

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 (62) hide show
  1. package/dist/ai/providers.d.ts +1 -0
  2. package/dist/ai/providers.d.ts.map +1 -1
  3. package/dist/ai/providers.js +6 -4
  4. package/dist/ai/runtime.d.ts.map +1 -1
  5. package/dist/ai/runtime.js +1 -0
  6. package/dist/core/content.d.ts.map +1 -1
  7. package/dist/core/content.js +32 -7
  8. package/dist/core/links.d.ts +1 -4
  9. package/dist/core/links.d.ts.map +1 -1
  10. package/dist/core/links.js +9 -43
  11. package/dist/core/messages.d.ts +1 -0
  12. package/dist/core/messages.d.ts.map +1 -1
  13. package/dist/core/messages.js +1 -0
  14. package/dist/core/routes.d.ts +36 -0
  15. package/dist/core/routes.d.ts.map +1 -0
  16. package/dist/core/routes.js +152 -0
  17. package/dist/core/types.d.ts +1 -0
  18. package/dist/core/types.d.ts.map +1 -1
  19. package/dist/core.d.ts +1 -0
  20. package/dist/core.d.ts.map +1 -1
  21. package/dist/core.js +1 -0
  22. package/dist/mdx/code.d.ts +1 -1
  23. package/dist/mdx/code.d.ts.map +1 -1
  24. package/dist/mdx/compile.d.ts +1 -0
  25. package/dist/mdx/compile.d.ts.map +1 -1
  26. package/dist/mdx/compile.js +5 -13
  27. package/dist/mdx/headings.d.ts +4 -0
  28. package/dist/mdx/headings.d.ts.map +1 -0
  29. package/dist/mdx/headings.js +42 -0
  30. package/dist/mdx/links.d.ts +3 -1
  31. package/dist/mdx/links.d.ts.map +1 -1
  32. package/dist/mdx/links.js +5 -2
  33. package/dist/routes.d.ts +2 -0
  34. package/dist/routes.d.ts.map +1 -0
  35. package/dist/routes.js +1 -0
  36. package/dist/search/cloudflare.d.ts +3 -2
  37. package/dist/search/cloudflare.d.ts.map +1 -1
  38. package/dist/search/cloudflare.js +7 -5
  39. package/dist/search/runtime.d.ts.map +1 -1
  40. package/dist/search/runtime.js +2 -1
  41. package/dist/svelte.d.ts +2 -0
  42. package/dist/svelte.d.ts.map +1 -1
  43. package/dist/svelte.js +3 -16
  44. package/dist/theme/AskAiPanel.svelte +11 -9
  45. package/dist/theme/AskAiPanel.svelte.d.ts.map +1 -1
  46. package/dist/theme/LocalizedLink.svelte +21 -0
  47. package/dist/theme/LocalizedLink.svelte.d.ts +38 -0
  48. package/dist/theme/LocalizedLink.svelte.d.ts.map +1 -0
  49. package/dist/theme/SearchDialog.svelte +11 -2
  50. package/dist/theme/SearchDialog.svelte.d.ts.map +1 -1
  51. package/dist/theme/base.css +25 -2
  52. package/dist/theme/headless.d.ts.map +1 -1
  53. package/dist/theme/headless.js +7 -9
  54. package/dist/theme/index.d.ts +1 -0
  55. package/dist/theme/index.d.ts.map +1 -1
  56. package/dist/theme/index.js +1 -0
  57. package/dist/theme/portal.d.ts +1 -0
  58. package/dist/theme/portal.d.ts.map +1 -1
  59. package/dist/theme/portal.js +40 -0
  60. package/dist/theme/styles.css +27 -1
  61. package/dist/vite.js +9 -1
  62. package/package.json +5 -2
@@ -4,6 +4,7 @@ export declare function createMockAiProvider(): AiProvider;
4
4
  export declare function createCloudflareAiSearchAiProvider(input: {
5
5
  binding: AiSearchBinding;
6
6
  instanceName?: string;
7
+ namespace?: boolean;
7
8
  systemPrompt?: string;
8
9
  model?: string;
9
10
  maxResults?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAItD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,WAAW,EAGX,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,oBAAoB,IAAI,UAAU,CAajD;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAuDb;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,EAAE,EAAE,0BAA0B,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CA2Bb;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAI,GACR,WAAW,EAAE,CAMf;AAED,eAAO,MAAM,cAAc,YAAyB,CAAC"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAItD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,WAAW,EAGX,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,oBAAoB,IAAI,UAAU,CAajD;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAuDb;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,EAAE,EAAE,0BAA0B,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CA2Bb;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAI,GACR,WAAW,EAAE,CAMf;AAED,eAAO,MAAM,cAAc,YAAyB,CAAC"}
@@ -19,7 +19,7 @@ export function createCloudflareAiSearchAiProvider(input) {
19
19
  const systemPrompt = input.systemPrompt ?? 'Answer from the documentation. Cite the pages you used.';
20
20
  async function ask(question) {
21
21
  const conversation = buildChatMessages(systemPrompt, question);
22
- const instance = resolveAiChatInstance(input.binding, input.instanceName);
22
+ const instance = resolveAiChatInstance(input.binding, input.instanceName, input.namespace);
23
23
  if (!instance.chatCompletions) {
24
24
  const result = await instance.search({
25
25
  messages: conversation,
@@ -48,7 +48,7 @@ export function createCloudflareAiSearchAiProvider(input) {
48
48
  name: 'cloudflare-ai-search',
49
49
  ask,
50
50
  async stream(question) {
51
- const instance = resolveAiChatInstance(input.binding, input.instanceName);
51
+ const instance = resolveAiChatInstance(input.binding, input.instanceName, input.namespace);
52
52
  if (!instance.chatCompletions) {
53
53
  return createSvedocsAnswerStream(await ask(question));
54
54
  }
@@ -116,8 +116,10 @@ function createSvedocsAnswerStream(result) {
116
116
  }
117
117
  });
118
118
  }
119
- function resolveAiChatInstance(binding, instanceName = 'svedocs') {
120
- return ('get' in binding ? binding.get(instanceName) : binding);
119
+ function resolveAiChatInstance(binding, instanceName = 'svedocs', namespace = false) {
120
+ return namespace
121
+ ? binding.get(instanceName)
122
+ : binding;
121
123
  }
122
124
  function normalizeCitations(citations) {
123
125
  return (citations ?? []).map((citation) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ai/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAG5F,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGnG,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,0BAA0B,GAAG,2BAA2B,GAAG,SAAS,CAAC;IACzF,EAAE,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC5C,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,6BAA6B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,iCAAiC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvD,kCAAkC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxD,+BAA+B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrD,qCAAqC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC;IACzD,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,kCAAmC,SAAQ,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC;IACnG,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iCAAiC,GAAG,UAAU,CA6CjG;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,YAAY,CAAC,EACxD,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,kCAAuC,GAC/C,OAAO,CAAC,QAAQ,CAAC,CAkBnB"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ai/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAG5F,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGnG,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,0BAA0B,GAAG,2BAA2B,GAAG,SAAS,CAAC;IACzF,EAAE,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC5C,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,6BAA6B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,iCAAiC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvD,kCAAkC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxD,+BAA+B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrD,qCAAqC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC;IACzD,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,kCAAmC,SAAQ,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC;IACnG,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iCAAiC,GAAG,UAAU,CA8CjG;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,YAAY,CAAC,EACxD,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,kCAAuC,GAC/C,OAAO,CAAC,QAAQ,CAAC,CAkBnB"}
@@ -23,6 +23,7 @@ export function createConfiguredAiProvider(options) {
23
23
  return createCloudflareAiSearchAiProvider({
24
24
  binding,
25
25
  instanceName: options.config.cloudflare.aiSearch.instanceName,
26
+ namespace: Boolean(options.config.cloudflare.aiSearch.namespace),
26
27
  ...(systemPrompt ? { systemPrompt } : {}),
27
28
  ...(typeof maxResults === 'number' ? { maxResults } : {})
28
29
  });
@@ -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