@mintlify/scraping 4.0.1192 → 4.0.1194

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.
@@ -71,10 +71,139 @@ describe('convertSphinx', () => {
71
71
 
72
72
  it('rewrites internal links and keeps external ones', () => {
73
73
  const index = reference.pages.find((page) => page.slug === 'index');
74
- expect(index?.content).toContain('[Widget docs](/widgets)');
74
+ expect(index?.content).toContain('[Widget docs](/widgets#widgets.Widget)');
75
75
  expect(index?.content).toContain('https://example.com/docs');
76
76
  });
77
77
 
78
+ it('preserves distinct object definition anchors for methods with the same name', async () => {
79
+ const nested = path.join(dir, 'anchors');
80
+ await fse.ensureDir(nested);
81
+ await fse.writeJson(path.join(nested, 'objects.fjson'), {
82
+ current_page_name: 'objects',
83
+ title: 'Objects',
84
+ body: '<h1>Objects</h1><p><a href="#sample.First.run">First</a> and <a href="#sample.Second.run">Second</a>.</p><dl class="py method"><dt class="sig" id="sample.First.run"><span class="descname">run</span>()</dt><dd><p>First action.</p></dd><dt class="sig" id="sample.Second.run"><span class="descname">run</span>()</dt><dd><p>Second action.</p></dd></dl>',
85
+ });
86
+ const result = await convertSphinx(nested);
87
+ expect(result.pages[0]?.content).toContain('### run() {#sample.First.run}');
88
+ expect(result.pages[0]?.content).toContain('### run() {#sample.Second.run}');
89
+ expect(result.pages[0]?.content).toContain('[First](#sample.First.run)');
90
+ });
91
+
92
+ it('resolves Sphinx directory links, nested HTML links, queries, and unsafe destinations', async () => {
93
+ const nested = path.join(dir, 'links');
94
+ await fse.ensureDir(nested);
95
+ for (const slug of ['client', 'models', 'client/models', 'guide/start']) {
96
+ const file = path.join(nested, `${slug}.fjson`);
97
+ await fse.ensureDir(path.dirname(file));
98
+ await fse.writeJson(file, {
99
+ current_page_name: slug,
100
+ title: slug,
101
+ body: '<h1>Page</h1><p>Documentation.</p>',
102
+ });
103
+ }
104
+ await fse.writeJson(path.join(nested, 'client.fjson'), {
105
+ current_page_name: 'client',
106
+ title: 'Client',
107
+ body: '<h1>Client</h1><p><a href="../models/?view=full#sample.Model">Sibling</a> <a href="models/">Child</a> <a href="models.html">HTML</a> <a href="/models#sample.Model">Root</a> <a href="javascript:alert(1)">Unsafe</a></p>',
108
+ });
109
+ await fse.writeJson(path.join(nested, 'guide/start.fjson'), {
110
+ current_page_name: 'guide/start',
111
+ title: 'Start',
112
+ body: '<h1>Start</h1><p><a href="../models.html#sample.Model">Nested</a></p>',
113
+ });
114
+ const result = await convertSphinx(nested);
115
+ const client = result.pages.find((page) => page.slug === 'client')?.content;
116
+ expect(client).toContain('[Sibling](/models?view=full#sample.Model)');
117
+ expect(client).toContain('[Child](/client/models)');
118
+ expect(client).toContain('[HTML](/models)');
119
+ expect(client).toContain('[Root](/models#sample.Model)');
120
+ expect(client).not.toContain('javascript:');
121
+ expect(result.pages.find((page) => page.slug === 'guide/start')?.content).toContain(
122
+ '[Nested](/models#sample.Model)'
123
+ );
124
+ });
125
+
126
+ it('keeps legacy field-list object types linked to their preserved definition anchors', async () => {
127
+ const nested = path.join(dir, 'fields');
128
+ await fse.ensureDir(nested);
129
+ await fse.writeJson(path.join(nested, 'client.fjson'), {
130
+ current_page_name: 'client',
131
+ title: 'Client',
132
+ body: '<h1>Client</h1><dl class="py method"><dt class="sig" id="sample.Client.create"><span class="descname">create</span>(body)</dt><dd><dl class="field-list"><dt>Parameters</dt><dd><p>body (<code><a href="../models/#sample.Request">Request</a></code>) – Request details.</p></dd><dt>Return type</dt><dd><p><code><a href="../models/#sample.Response">Response</a></code></p></dd></dl></dd></dl>',
133
+ });
134
+ await fse.writeJson(path.join(nested, 'models.fjson'), {
135
+ current_page_name: 'models',
136
+ title: 'Models',
137
+ body: '<h1>Models</h1><dl class="py class"><dt class="sig" id="sample.Request"><span class="descname">Request</span></dt><dd><p>Request model.</p></dd><dt class="sig" id="sample.Response"><span class="descname">Response</span></dt><dd><p>Response model.</p></dd></dl>',
138
+ });
139
+ const result = await convertSphinx(nested);
140
+ const client = result.pages.find((page) => page.slug === 'client')?.content;
141
+ expect(client).toContain('<code>[Request](/models#sample.Request)</code>');
142
+ expect(client).toContain('<code>[Response](/models#sample.Response)</code>');
143
+ const models = result.pages.find((page) => page.slug === 'models')?.content;
144
+ expect(models).toContain('### Request {#sample.Request}');
145
+ expect(models).toContain('### Response {#sample.Response}');
146
+ });
147
+
148
+ it('keeps replacement syntax inside signature defaults unchanged', async () => {
149
+ const nested = path.join(dir, 'defaults');
150
+ await fse.ensureDir(nested);
151
+ await fse.writeJson(path.join(nested, 'client.fjson'), {
152
+ current_page_name: 'client',
153
+ title: 'Client',
154
+ body: '<h1>Client</h1><dl class="py function"><dt class="sig"><span class="descname">create</span>(token=\'$&amp; $$ $`\')</dt><dd><p>Create.</p></dd></dl>',
155
+ });
156
+ const result = await convertSphinx(nested);
157
+ expect(result.pages[0]?.content).toContain("create(token='$& $$ $`')");
158
+ expect(result.pages[0]?.content).not.toContain('MINTSPHINX');
159
+ });
160
+
161
+ it('keeps image destinations stable when embedded modules become child pages', async () => {
162
+ const nested = path.join(dir, 'images');
163
+ await fse.ensureDir(nested);
164
+ await fse.writeJson(path.join(nested, 'api.fjson'), {
165
+ current_page_name: 'api',
166
+ title: 'API',
167
+ body: '<h1>API</h1><section id="module-sample.client"><h2>Client module</h2><img src="./images/flow.png?theme=light#diagram" alt="Flow"></section><section id="module-sample.models"><h2>Models module</h2><p>Models.</p></section>',
168
+ });
169
+ const result = await convertSphinx(nested);
170
+ expect(result.pages.find((page) => page.slug === 'api/sample.client')?.content).toContain(
171
+ '![Flow](../images/flow.png?theme=light#diagram)'
172
+ );
173
+ });
174
+
175
+ it('groups embedded modules and remaps their same-page and cross-page type links', async () => {
176
+ const nested = path.join(dir, 'modules');
177
+ await fse.ensureDir(nested);
178
+ await fse.writeJson(path.join(nested, 'package.fjson'), {
179
+ current_page_name: 'package',
180
+ title: 'Package',
181
+ body: '<section><h1>Package</h1><p>Package overview.</p><section id="module-sample.client"><h2>Client module</h2><dl class="py method"><dt class="sig" id="sample.client.create"><span class="descname">create</span>(<em class="sig-param">body: <a href="#sample.models.Request">Request</a></em>) <span class="sig-return-typehint"><a href="#sample.models.Response">Response</a></span></dt><dd><p><a href="../guide/">Guide</a></p></dd></dl></section><section id="module-sample.models"><h2>Model module</h2><dl class="py class"><dt class="sig" id="sample.models.Request"><span class="descname">Request</span></dt><dd><p>Request.</p></dd><dt class="sig" id="sample.models.Response"><span class="descname">Response</span></dt><dd><p>Response.</p></dd></dl></section></section>',
182
+ });
183
+ await fse.writeJson(path.join(nested, 'guide.fjson'), {
184
+ current_page_name: 'guide',
185
+ title: 'Guide',
186
+ body: '<h1>Guide</h1><p><a href="../package/#sample.client.create">Create</a></p>',
187
+ });
188
+ const result = await convertSphinx(nested);
189
+ const client = result.pages.find((page) => page.slug === 'package/sample.client');
190
+ const models = result.pages.find((page) => page.slug === 'package/sample.models');
191
+ expect(client?.content).toContain('typeHref={"/package/sample.models#sample.models.Request"}');
192
+ expect(client?.content).toContain('[Response](/package/sample.models#sample.models.Response)');
193
+ expect(client?.content).toContain('[Guide](/guide)');
194
+ expect(client?.content).not.toContain('## Client module');
195
+ expect(models?.content).toContain('### Request {#sample.models.Request}');
196
+ expect(result.pages.find((page) => page.slug === 'guide')?.content).toContain(
197
+ '[Create](/package/sample.client#sample.client.create)'
198
+ );
199
+ expect(result.groups).toContainEqual({
200
+ group: 'API Reference',
201
+ pages: [
202
+ { group: 'Package', pages: ['package', 'package/sample.client', 'package/sample.models'] },
203
+ ],
204
+ });
205
+ });
206
+
78
207
  it('converts admonitions to callouts and extracts descriptions', () => {
79
208
  const index = reference.pages.find((page) => page.slug === 'index');
80
209
  expect(index?.content).toContain('<Warning>');
@@ -1,11 +1,17 @@
1
- import { hastToText } from '@mintlify/common';
1
+ import { hastToText, safeCleanHeadingId } from '@mintlify/common';
2
2
  import fse from 'fs-extra';
3
+ import { randomUUID } from 'node:crypto';
3
4
  import path from 'node:path';
4
5
  import { visit, SKIP } from 'unist-util-visit';
5
6
  import { htmlToHast } from '../../pipeline/root.js';
6
7
  import { turnChildrenIntoMdx } from '../../utils/children.js';
7
8
  import { removeHastComments } from '../../utils/hastComments.js';
8
9
  import { hastToMdx } from '../convert.js';
10
+ import { escapeInline, jsxString, safeHref } from '../mdx.js';
11
+ import { rewriteSphinxImages } from '../sphinx-images.js';
12
+ import { splitSphinxModules } from '../sphinx-modules.js';
13
+ import { buildSphinxNavigation } from '../sphinx-navigation.js';
14
+ import { renderSphinxLinkedCode, renderSphinxSignature } from '../sphinx-signatures.js';
9
15
  const SKIP_PAGES = new Set(['genindex', 'search', 'py-modindex']);
10
16
  const LANG_MARKER = '@@mintlang:';
11
17
  const FENCE_MARKER = /(`{3,})[^\S\n]*\n[> ]*@@mintlang:([\w+-]+)@@[^\S\n]*\n/g;
@@ -22,41 +28,66 @@ const ADMONITION_TAGS = {
22
28
  attention: 'Warning',
23
29
  };
24
30
  export async function convertSphinx(sourcePath) {
25
- const docs = await loadDocs(sourcePath);
31
+ const docs = splitSphinxModules(await loadDocs(sourcePath));
26
32
  const slugs = new Set(docs.map((doc) => doc.slug));
27
- const guides = docs
28
- .filter((doc) => !doc.tag)
29
- .sort((left, right) => left.slug === 'index' ? -1 : right.slug === 'index' ? 1 : left.slug.localeCompare(right.slug));
30
- const modules = docs
31
- .filter((doc) => doc.tag)
32
- .sort((left, right) => left.slug.localeCompare(right.slug));
33
- const pages = [...guides, ...modules].map((doc) => renderPage(doc, slugs));
34
- const groups = [];
35
- if (guides.length)
36
- groups.push({ group: 'Getting Started', pages: guides.map((d) => d.slug) });
37
- if (modules.length)
38
- groups.push({ group: 'API Reference', pages: modules.map((d) => d.slug) });
39
- return { pages, groups };
33
+ const anchors = collectAnchors(docs);
34
+ return {
35
+ pages: docs.map((doc) => renderPage(doc, slugs, anchors)),
36
+ groups: buildSphinxNavigation(docs),
37
+ };
38
+ }
39
+ function collectAnchors(docs) {
40
+ const anchors = new Map();
41
+ const ordered = [
42
+ ...docs.filter((doc) => !doc.sourceSlug),
43
+ ...docs.filter((doc) => doc.sourceSlug),
44
+ ];
45
+ for (const doc of ordered) {
46
+ const source = doc.sourceSlug ?? doc.slug;
47
+ const targets = anchors.get(source) ?? new Map();
48
+ visit(htmlToHast(doc.body), 'element', (node) => {
49
+ if (typeof node.properties.id === 'string')
50
+ targets.set(anchorId(node.properties.id), doc.slug);
51
+ });
52
+ anchors.set(source, targets);
53
+ }
54
+ return anchors;
40
55
  }
41
56
  async function loadDocs(sourcePath) {
42
57
  const docs = [];
43
58
  for (const file of await collectFjsonFiles(sourcePath)) {
44
- const raw = (await fse.readJson(file));
45
- const slug = raw.current_page_name ??
46
- path
59
+ const raw = await fse.readJson(file);
60
+ if (!raw || typeof raw !== 'object' || !('body' in raw))
61
+ continue;
62
+ if (typeof raw.body !== 'string' || !raw.body.trim())
63
+ continue;
64
+ const slug = 'current_page_name' in raw && typeof raw.current_page_name === 'string'
65
+ ? raw.current_page_name
66
+ : path
47
67
  .relative(sourcePath, file)
48
68
  .split(path.sep)
49
69
  .join('/')
50
70
  .replace(/\.fjson$/, '');
51
71
  if (SKIP_PAGES.has(slug) || slug.startsWith('_modules'))
52
72
  continue;
53
- if (!raw.body?.trim())
54
- continue;
73
+ const parents = [];
74
+ if ('parents' in raw && Array.isArray(raw.parents)) {
75
+ for (const parent of raw.parents) {
76
+ if (parent &&
77
+ typeof parent === 'object' &&
78
+ 'link' in parent &&
79
+ typeof parent.link === 'string') {
80
+ parents.push({ link: parent.link });
81
+ }
82
+ }
83
+ }
55
84
  docs.push({
56
85
  slug,
57
- title: cleanTitle(raw.title ?? slug),
86
+ title: cleanTitle('title' in raw && typeof raw.title === 'string' ? raw.title : slug),
58
87
  body: raw.body,
59
88
  tag: /<dl class="py[ "]/.test(raw.body) ? 'MODULE' : undefined,
89
+ toc: 'toc' in raw && typeof raw.toc === 'string' ? raw.toc : undefined,
90
+ parents,
60
91
  });
61
92
  }
62
93
  return docs;
@@ -74,18 +105,38 @@ async function collectFjsonFiles(dir) {
74
105
  }
75
106
  return files.sort();
76
107
  }
77
- function renderPage(doc, slugs) {
108
+ function renderPage(doc, slugs, anchors) {
78
109
  const hast = htmlToHast(doc.body);
110
+ const generated = new Map();
111
+ const prefix = `MINTSPHINX${randomUUID().replaceAll('-', '')}`;
112
+ function marker(content) {
113
+ const marker = `${prefix}BLOCK${generated.size}END`;
114
+ generated.set(marker, content);
115
+ return marker;
116
+ }
117
+ function block(content) {
118
+ return {
119
+ type: 'element',
120
+ tagName: 'p',
121
+ properties: {},
122
+ children: [{ type: 'text', value: marker(content) }],
123
+ };
124
+ }
79
125
  removeHastComments(hast);
80
- removeSphinxChrome(hast);
126
+ removeSphinxChrome(hast, doc.title);
81
127
  const description = extractDescription(hast);
82
- rewriteLinks(hast, doc.slug, slugs);
83
- transformAdmonitions(hast);
128
+ rewriteLinks(hast, doc, slugs, anchors);
129
+ rewriteSphinxImages(hast, doc.sourceSlug ?? doc.slug, doc.slug);
84
130
  markHighlightLanguages(hast);
85
- transformPyDls(hast, 0);
86
- const content = hastToMdx(hast)
131
+ preserveAnchors(hast, block);
132
+ transformPyDls(hast, 0, block);
133
+ preserveLinkedCode(hast, marker);
134
+ transformAdmonitions(hast);
135
+ let content = hastToMdx(hast)
87
136
  .replace(FENCE_MARKER, '$1$2\n')
88
137
  .replace(/^[> ]*@@mintlang:[\w+-]+@@\n?/gm, '');
138
+ for (const [marker, replacement] of generated)
139
+ content = content.replaceAll(marker, () => replacement);
89
140
  return {
90
141
  slug: doc.slug,
91
142
  title: doc.title,
@@ -94,45 +145,127 @@ function renderPage(doc, slugs) {
94
145
  content,
95
146
  };
96
147
  }
97
- function removeSphinxChrome(hast) {
98
- let removedH1 = false;
148
+ function removeSphinxChrome(hast, title) {
99
149
  visit(hast, 'element', (node, index, parent) => {
100
150
  if (!parent || typeof index !== 'number')
101
151
  return;
102
152
  const isHeaderlink = node.tagName === 'a' && classList(node).includes('headerlink');
103
153
  const isViewcode = node.tagName === 'a' &&
104
154
  node.children.some((child) => child.type === 'element' && classList(child).includes('viewcode-link'));
105
- const isFirstH1 = node.tagName === 'h1' && !removedH1;
106
- if (isFirstH1)
107
- removedH1 = true;
108
- if (isHeaderlink || isViewcode || isFirstH1) {
155
+ if (isHeaderlink || isViewcode) {
109
156
  parent.children.splice(index, 1);
110
157
  return index;
111
158
  }
112
159
  });
160
+ let removedTitle = false;
161
+ visit(hast, 'element', (node, index, parent) => {
162
+ if (removedTitle || !parent || typeof index !== 'number')
163
+ return;
164
+ if (node.tagName !== 'h1' &&
165
+ !(/^h[1-6]$/.test(node.tagName) && cleanTitle(hastToText(node)) === title))
166
+ return;
167
+ removedTitle = true;
168
+ parent.children.splice(index, 1);
169
+ return index;
170
+ });
113
171
  }
114
- function rewriteLinks(hast, fromSlug, slugs) {
172
+ function rewriteLinks(hast, doc, slugs, anchors) {
115
173
  visit(hast, 'element', (node) => {
116
174
  if (node.tagName !== 'a' || typeof node.properties.href !== 'string')
117
175
  return;
118
- const rewritten = rewriteHref(node.properties.href, fromSlug, slugs);
176
+ const rewritten = rewriteHref(node.properties.href, doc, slugs, anchors);
119
177
  if (rewritten === undefined)
120
178
  delete node.properties.href;
121
179
  else
122
180
  node.properties.href = rewritten;
123
181
  });
124
182
  }
125
- function rewriteHref(href, fromSlug, slugs) {
126
- if (/^(https?:|mailto:|#)/.test(href))
127
- return href;
128
- const [target = ''] = href.split('#');
129
- let resolved = path.posix
130
- .normalize(path.posix.join(path.posix.dirname(fromSlug), target))
131
- .replace(/\/$/, '')
132
- .replace(/\.html?$/, '');
133
- if (resolved === '.' || resolved === '')
134
- resolved = 'index';
135
- return slugs.has(resolved) ? `/${resolved}` : undefined;
183
+ function rewriteHref(href, doc, slugs, anchors) {
184
+ const fromSlug = doc.sourceSlug ?? doc.slug;
185
+ const safe = safeHref(href);
186
+ if (safe === undefined || /^(https?:|mailto:)/i.test(safe))
187
+ return safe;
188
+ const hashIndex = safe.indexOf('#');
189
+ const hash = hashIndex < 0 ? '' : `#${anchorId(safe.slice(hashIndex + 1))}`;
190
+ const beforeHash = hashIndex < 0 ? safe : safe.slice(0, hashIndex);
191
+ const queryIndex = beforeHash.indexOf('?');
192
+ const query = queryIndex < 0 ? '' : beforeHash.slice(queryIndex);
193
+ let target = queryIndex < 0 ? beforeHash : beforeHash.slice(0, queryIndex);
194
+ function destination(slug) {
195
+ let owner = slug;
196
+ if (hash.length > 1)
197
+ owner = anchors.get(slug)?.get(hash.slice(1)) ?? slug;
198
+ if (!target && owner === doc.slug)
199
+ return `${query}${hash}`;
200
+ return `/${owner}${query}${hash}`;
201
+ }
202
+ if (!target)
203
+ return destination(fromSlug);
204
+ try {
205
+ target = decodeURIComponent(target);
206
+ }
207
+ catch {
208
+ return undefined;
209
+ }
210
+ const base = path.posix.dirname(fromSlug);
211
+ let candidates = [path.posix.join(base, target), path.posix.join(fromSlug, target)];
212
+ if (target.endsWith('/') && path.posix.basename(fromSlug) !== 'index')
213
+ candidates.reverse();
214
+ if (target.startsWith('/'))
215
+ candidates = [target.slice(1)];
216
+ for (const candidate of candidates) {
217
+ let resolved = path.posix
218
+ .normalize(candidate)
219
+ .replace(/\.(?:html?|fjson)$/, '')
220
+ .replace(/\/$/, '');
221
+ if (resolved === '.' || resolved === '')
222
+ resolved = 'index';
223
+ if (slugs.has(resolved))
224
+ return destination(resolved);
225
+ const index = path.posix.join(resolved, 'index');
226
+ if (slugs.has(index))
227
+ return destination(index);
228
+ }
229
+ return undefined;
230
+ }
231
+ function anchorId(value) {
232
+ return safeCleanHeadingId(value)
233
+ .replace(/[<>"&]/g, '')
234
+ .replace(/\s+/g, '-');
235
+ }
236
+ function preserveAnchors(node, block) {
237
+ const children = [];
238
+ for (const child of node.children) {
239
+ if (child.type === 'element') {
240
+ const id = child.properties.id;
241
+ if (typeof id === 'string' && !(child.tagName === 'dt' && classList(child).includes('sig'))) {
242
+ children.push(block(`<span id=${jsxString(anchorId(id))} />`));
243
+ }
244
+ preserveAnchors(child, block);
245
+ }
246
+ if (child.type !== 'doctype' && child.type !== 'mdxjsEsm')
247
+ children.push(child);
248
+ }
249
+ node.children = children;
250
+ }
251
+ function preserveLinkedCode(node, marker) {
252
+ const children = [];
253
+ for (const child of node.children) {
254
+ if (child.type === 'element') {
255
+ if (child.tagName === 'code') {
256
+ const content = renderSphinxLinkedCode(child);
257
+ if (content) {
258
+ children.push({ type: 'text', value: marker(content) });
259
+ continue;
260
+ }
261
+ }
262
+ if (child.tagName !== 'pre')
263
+ preserveLinkedCode(child, marker);
264
+ }
265
+ if (child.type !== 'doctype' && child.type !== 'mdxjsEsm')
266
+ children.push(child);
267
+ }
268
+ node.children = children;
136
269
  }
137
270
  function transformAdmonitions(hast) {
138
271
  visit(hast, 'element', (node) => {
@@ -162,34 +295,42 @@ function markHighlightLanguages(hast) {
162
295
  return SKIP;
163
296
  });
164
297
  }
165
- function transformPyDls(node, depth) {
298
+ function transformPyDls(node, depth, block) {
166
299
  const children = [];
167
300
  for (const child of node.children) {
168
301
  if (child.type === 'element' && child.tagName === 'dl' && classList(child).includes('py')) {
169
- children.push(...explodePyDl(child, depth));
302
+ children.push(...explodePyDl(child, depth, block));
170
303
  }
171
304
  else {
172
305
  if (child.type === 'element')
173
- transformPyDls(child, depth);
174
- children.push(child);
306
+ transformPyDls(child, depth, block);
307
+ if (child.type !== 'doctype' && child.type !== 'mdxjsEsm')
308
+ children.push(child);
175
309
  }
176
310
  }
177
311
  node.children = children;
178
312
  }
179
- function explodePyDl(dl, depth) {
313
+ function explodePyDl(dl, depth, block) {
180
314
  const callable = classList(dl).some((name) => ['method', 'function'].includes(name));
181
315
  const out = [];
182
- for (const child of dl.children) {
316
+ for (const [index, child] of dl.children.entries()) {
183
317
  if (child.type !== 'element')
184
318
  continue;
185
319
  if (child.tagName === 'dt' && classList(child).includes('sig')) {
186
320
  const name = findDescName(child);
187
- if (name)
188
- out.push(heading(Math.min(3 + depth, 6), callable ? `${name}()` : name));
189
- out.push(pythonCodeBlock(hastToText(child).replace(/\s+/g, ' ').trim()));
321
+ if (name) {
322
+ const title = escapeInline(callable ? `${name}()` : name);
323
+ const id = child.properties.id;
324
+ const suffix = typeof id === 'string' ? ` {#${anchorId(id)}}` : '';
325
+ out.push(block(`${'#'.repeat(Math.min(3 + depth, 6))} ${title}${suffix}`));
326
+ }
327
+ const description = dl.children
328
+ .slice(index + 1)
329
+ .find((sibling) => sibling.type === 'element' && sibling.tagName === 'dd');
330
+ out.push(block(renderSphinxSignature(child, description)));
190
331
  }
191
332
  else if (child.tagName === 'dd') {
192
- transformPyDls(child, depth + 1);
333
+ transformPyDls(child, depth + 1, block);
193
334
  out.push(...child.children);
194
335
  }
195
336
  }
@@ -205,22 +346,6 @@ function findDescName(node) {
205
346
  });
206
347
  return name;
207
348
  }
208
- function heading(level, text) {
209
- return {
210
- type: 'element',
211
- tagName: `h${level}`,
212
- properties: {},
213
- children: [{ type: 'text', value: text }],
214
- };
215
- }
216
- function pythonCodeBlock(code) {
217
- return {
218
- type: 'element',
219
- tagName: 'pre',
220
- properties: {},
221
- children: [{ type: 'text', value: `${LANG_MARKER}python@@\n${code}` }],
222
- };
223
- }
224
349
  function extractDescription(hast) {
225
350
  let description;
226
351
  visit(hast, 'element', (node, _index, parent) => {
@@ -238,11 +363,11 @@ function extractDescription(hast) {
238
363
  }
239
364
  function classList(node) {
240
365
  const value = node.properties.className;
241
- return Array.isArray(value)
242
- ? value.map(String)
243
- : typeof value === 'string'
244
- ? value.split(' ')
245
- : [];
366
+ if (Array.isArray(value))
367
+ return value.map(String);
368
+ if (typeof value === 'string')
369
+ return value.split(' ');
370
+ return [];
246
371
  }
247
372
  function cleanTitle(title) {
248
373
  return title
@@ -1 +1 @@
1
- {"version":3,"file":"sphinx.js","sourceRoot":"","sources":["../../../src/sdk/converters/sphinx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sphinx.js","sourceRoot":"","sources":["../../../src/sdk/converters/sphinx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Root } from 'hast';
2
+ export declare function rewriteSphinxImages(hast: Root, sourceSlug: string, destinationSlug: string): void;
@@ -0,0 +1,23 @@
1
+ import path from 'node:path';
2
+ import { visit } from 'unist-util-visit';
3
+ import { safeHref } from './mdx.js';
4
+ export function rewriteSphinxImages(hast, sourceSlug, destinationSlug) {
5
+ const base = path.posix.relative(path.posix.dirname(destinationSlug), path.posix.dirname(sourceSlug));
6
+ if (!base)
7
+ return;
8
+ visit(hast, 'element', (node) => {
9
+ if (node.tagName !== 'img' || typeof node.properties.src !== 'string')
10
+ return;
11
+ const href = safeHref(node.properties.src);
12
+ if (!href || href.startsWith('/') || href.startsWith('#') || /^[a-z][a-z0-9+.-]*:/i.test(href))
13
+ return;
14
+ const suffixStart = href.search(/[?#]/);
15
+ const file = suffixStart === -1 ? href : href.slice(0, suffixStart);
16
+ if (!file)
17
+ return;
18
+ const suffix = suffixStart === -1 ? '' : href.slice(suffixStart);
19
+ const relative = path.posix.join(base, file);
20
+ node.properties.src = `${relative.startsWith('../') ? relative : `./${relative}`}${suffix}`;
21
+ });
22
+ }
23
+ //# sourceMappingURL=sphinx-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sphinx-images.js","sourceRoot":"","sources":["../../src/sdk/sphinx-images.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,UAAU,mBAAmB,CAAC,IAAU,EAAE,UAAkB,EAAE,eAAuB;IACzF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAC/B,CAAC;IACF,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;QACvC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO;QAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5F,OAAO;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { SphinxNavigationDoc } from './sphinx-navigation.js';
2
+ export type SphinxModuleDoc = SphinxNavigationDoc & {
3
+ sourceSlug?: string;
4
+ };
5
+ export declare function splitSphinxModules(docs: SphinxNavigationDoc[]): SphinxModuleDoc[];