@mintlify/scraping 4.0.1161 → 4.0.1162
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.
- package/__test__/findSdkPage.test.ts +106 -0
- package/__test__/sdk-go.test.ts +1671 -0
- package/bin/sdk/convert.d.ts +9 -1
- package/bin/sdk/convert.js +173 -8
- package/bin/sdk/convert.js.map +1 -1
- package/bin/sdk/converters/go.d.ts +2 -0
- package/bin/sdk/converters/go.js +828 -0
- package/bin/sdk/converters/go.js.map +1 -0
- package/bin/sdk/converters/typedoc.js +7 -45
- package/bin/sdk/converters/typedoc.js.map +1 -1
- package/bin/sdk/findSdkPage.d.ts +5 -3
- package/bin/sdk/findSdkPage.js +59 -5
- package/bin/sdk/findSdkPage.js.map +1 -1
- package/bin/sdk/generateSdkReference.js +2 -0
- package/bin/sdk/generateSdkReference.js.map +1 -1
- package/bin/sdk/mdx.d.ts +14 -0
- package/bin/sdk/mdx.js +103 -0
- package/bin/sdk/mdx.js.map +1 -0
- package/bin/sdk/types.d.ts +2 -0
- package/bin/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/sdk/convert.ts +196 -9
- package/src/sdk/converters/go.ts +925 -0
- package/src/sdk/converters/typedoc.ts +9 -52
- package/src/sdk/findSdkPage.ts +70 -14
- package/src/sdk/generateSdkReference.ts +2 -0
- package/src/sdk/mdx.ts +123 -0
- package/src/sdk/types.ts +2 -0
package/bin/sdk/convert.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { Root as HastRoot } from 'hast';
|
|
2
|
+
import type { Definition, Heading, Image, Link, Paragraph, Root as MdastRoot } from 'mdast';
|
|
3
|
+
import type { Node } from 'unist';
|
|
2
4
|
export type RewriteLink = (href: string) => string | undefined;
|
|
3
5
|
export declare function hastToMdx(fragment: HastRoot, rewriteLink?: RewriteLink): string;
|
|
4
6
|
export declare function htmlToMdx(html: string, rewriteLink?: RewriteLink): string;
|
|
5
|
-
export declare function
|
|
7
|
+
export declare function parseMarkdown(markdown: string, minHeadingDepth?: Heading['depth']): MdastRoot;
|
|
8
|
+
export declare function isHtmlParagraph(node: Paragraph): boolean;
|
|
9
|
+
export declare function plainText(node: Node): string;
|
|
10
|
+
export declare function isProseParagraph(node: Paragraph): boolean;
|
|
11
|
+
export declare function rewriteMdastLinks(tree: MdastRoot, rewriteLink: (node: Link | Image | Definition) => string | undefined): void;
|
|
12
|
+
export declare function markdownToMdx(markdown: string, minHeadingDepth?: Heading['depth']): string;
|
|
13
|
+
export declare function stringifyMdast(tree: MdastRoot): string;
|
|
6
14
|
export declare function escapeMdxText(text: string): string;
|
package/bin/sdk/convert.js
CHANGED
|
@@ -70,16 +70,181 @@ export function htmlToMdx(html, rewriteLink) {
|
|
|
70
70
|
removeHastComments(hast);
|
|
71
71
|
return hastToMdx(hast, rewriteLink);
|
|
72
72
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
// Raw HTML is dropped and its text kept. An HTML block becomes ordinary
|
|
74
|
+
// paragraphs (one per blank-line-separated run, since <pre> and comments may
|
|
75
|
+
// span blank lines), so its lines are subject to the same ESM escaping as any
|
|
76
|
+
// paragraph and keep their block boundaries; inline HTML becomes text within
|
|
77
|
+
// its paragraph, merged with its neighbours so a paragraph that opens with a
|
|
78
|
+
// tag still starts with its first word.
|
|
79
|
+
export function parseMarkdown(markdown, minHeadingDepth) {
|
|
80
|
+
// CommonMark treats \r\n and a bare \r as line endings; normalising them up
|
|
81
|
+
// front means every later split and check only has to know about \n.
|
|
82
|
+
const normalized = markdown.replace(/\r\n?/g, '\n');
|
|
83
|
+
const mdastTree = unified().use(remarkParse).use(remarkGfm).parse(normalized);
|
|
84
|
+
visit(mdastTree, 'html', (node, index, parent) => {
|
|
85
|
+
const value = stripTags(node.value);
|
|
86
|
+
if (!parent ||
|
|
87
|
+
index === undefined ||
|
|
88
|
+
parent.type === 'paragraph' ||
|
|
89
|
+
parent.type === 'heading') {
|
|
90
|
+
Object.assign(node, { type: 'text', value });
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const paragraphs = value
|
|
94
|
+
.split(/\n[ \t]*\n/)
|
|
95
|
+
.map((chunk) => chunk.trim())
|
|
96
|
+
.filter(Boolean)
|
|
97
|
+
.map((chunk) => ({
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
children: [{ type: 'text', value: chunk }],
|
|
100
|
+
data: { htmlBlock: true },
|
|
101
|
+
}));
|
|
102
|
+
parent.children.splice(index, 1, ...paragraphs);
|
|
103
|
+
return index + paragraphs.length;
|
|
78
104
|
});
|
|
79
|
-
|
|
105
|
+
visit(mdastTree, 'paragraph', (node) => {
|
|
106
|
+
node.children = mergeText(node.children);
|
|
107
|
+
});
|
|
108
|
+
if (minHeadingDepth) {
|
|
109
|
+
visit(mdastTree, 'heading', (node) => {
|
|
110
|
+
node.depth = node.depth < minHeadingDepth ? minHeadingDepth : node.depth;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return mdastTree;
|
|
114
|
+
}
|
|
115
|
+
// Removes every `<...>` span in one pass: from the first unmatched `<` to the
|
|
116
|
+
// next `>`, the same spans as /<[^>]*>/g, without rescanning to the end of the
|
|
117
|
+
// text for each `<` that never closes.
|
|
118
|
+
function stripTags(value) {
|
|
119
|
+
let out = '';
|
|
120
|
+
let last = 0;
|
|
121
|
+
let open = -1;
|
|
122
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
123
|
+
if (value[i] === '<' && open === -1)
|
|
124
|
+
open = i;
|
|
125
|
+
else if (value[i] === '>' && open !== -1) {
|
|
126
|
+
out += value.slice(last, open);
|
|
127
|
+
last = i + 1;
|
|
128
|
+
open = -1;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return out + value.slice(last);
|
|
132
|
+
}
|
|
133
|
+
// Paragraphs made from an HTML block, such as a centred <h1> title or a badge
|
|
134
|
+
// row, which a README description should skip.
|
|
135
|
+
export function isHtmlParagraph(node) {
|
|
136
|
+
return node.data?.htmlBlock === true;
|
|
137
|
+
}
|
|
138
|
+
// Joins adjacent text nodes and drops empty ones; the whitespace a removed tag
|
|
139
|
+
// leaves at either end of the paragraph is not content either.
|
|
140
|
+
function mergeText(children) {
|
|
141
|
+
const merged = [];
|
|
142
|
+
for (const child of children) {
|
|
143
|
+
const previous = merged[merged.length - 1];
|
|
144
|
+
if (child.type === 'text' && previous?.type === 'text') {
|
|
145
|
+
previous.value += child.value;
|
|
146
|
+
}
|
|
147
|
+
else if (child.type !== 'text' || child.value !== '') {
|
|
148
|
+
merged.push(child);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const first = merged[0];
|
|
152
|
+
if (first?.type === 'text')
|
|
153
|
+
first.value = first.value.trimStart();
|
|
154
|
+
const last = merged[merged.length - 1];
|
|
155
|
+
if (last?.type === 'text')
|
|
156
|
+
last.value = last.value.trimEnd();
|
|
157
|
+
return merged.filter((child) => child.type !== 'text' || child.value !== '');
|
|
158
|
+
}
|
|
159
|
+
// The text a reader sees for a node: text and code verbatim, an image's alt,
|
|
160
|
+
// a space for a hard line break, nothing for raw HTML.
|
|
161
|
+
export function plainText(node) {
|
|
162
|
+
if (node.type === 'text' || node.type === 'inlineCode')
|
|
163
|
+
return node.value;
|
|
164
|
+
if (node.type === 'break')
|
|
165
|
+
return ' ';
|
|
166
|
+
if (node.type === 'image' || node.type === 'imageReference') {
|
|
167
|
+
return node.alt ?? '';
|
|
168
|
+
}
|
|
169
|
+
if ('children' in node) {
|
|
170
|
+
return node.children.map(plainText).join('');
|
|
171
|
+
}
|
|
172
|
+
return '';
|
|
173
|
+
}
|
|
174
|
+
// A paragraph with words of its own, as opposed to one made only of badges,
|
|
175
|
+
// images, or links, which is how most READMEs open.
|
|
176
|
+
export function isProseParagraph(node) {
|
|
177
|
+
return node.children.some((child) => (child.type === 'text' && child.value.trim() !== '') ||
|
|
178
|
+
child.type === 'inlineCode' ||
|
|
179
|
+
((child.type === 'emphasis' || child.type === 'strong' || child.type === 'delete') &&
|
|
180
|
+
plainText(child).trim() !== ''));
|
|
80
181
|
}
|
|
81
|
-
|
|
82
|
-
|
|
182
|
+
// Rewrites every link, image, and definition URL, or drops the node when the
|
|
183
|
+
// callback returns undefined: a link becomes its text, an image its alt, and a
|
|
184
|
+
// definition disappears along with the references that pointed at it.
|
|
185
|
+
export function rewriteMdastLinks(tree, rewriteLink) {
|
|
186
|
+
const dropped = new Set();
|
|
187
|
+
visit(tree, ['link', 'image', 'definition'], (node, index, parent) => {
|
|
188
|
+
const target = node;
|
|
189
|
+
const rewritten = rewriteLink(target);
|
|
190
|
+
if (rewritten !== undefined) {
|
|
191
|
+
target.url = rewritten;
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
if (target.type === 'definition')
|
|
195
|
+
dropped.add(target.identifier);
|
|
196
|
+
if (parent && index !== undefined) {
|
|
197
|
+
const replacement = target.type === 'link'
|
|
198
|
+
? target.children
|
|
199
|
+
: target.type === 'image'
|
|
200
|
+
? [{ type: 'text', value: target.alt ?? '' }]
|
|
201
|
+
: [];
|
|
202
|
+
parent.children.splice(index, 1, ...replacement);
|
|
203
|
+
return index + replacement.length;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
if (dropped.size === 0)
|
|
207
|
+
return;
|
|
208
|
+
visit(tree, ['linkReference', 'imageReference'], (node, index, parent) => {
|
|
209
|
+
const reference = node;
|
|
210
|
+
if (!dropped.has(reference.identifier) || !parent || index === undefined)
|
|
211
|
+
return;
|
|
212
|
+
const replacement = reference.type === 'linkReference'
|
|
213
|
+
? reference.children
|
|
214
|
+
: [{ type: 'text', value: reference.alt ?? '' }];
|
|
215
|
+
parent.children.splice(index, 1, ...replacement);
|
|
216
|
+
return index + replacement.length;
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
export function markdownToMdx(markdown, minHeadingDepth) {
|
|
220
|
+
return stringifyMdast(parseMarkdown(markdown, minHeadingDepth));
|
|
221
|
+
}
|
|
222
|
+
// MDX reads a paragraph that starts with `import` or `export` as ESM. A
|
|
223
|
+
// character reference for the first letter keeps the text while making it
|
|
224
|
+
// impossible for Markdown text to become JavaScript.
|
|
225
|
+
function escapeEsmParagraphs(tree) {
|
|
226
|
+
visit(tree, 'paragraph', (node) => {
|
|
227
|
+
const first = node.children[0];
|
|
228
|
+
if (first?.type !== 'text')
|
|
229
|
+
return;
|
|
230
|
+
const match = /^(import|export)(?=\s|$)/.exec(first.value);
|
|
231
|
+
if (!match)
|
|
232
|
+
return;
|
|
233
|
+
first.value = first.value.slice(1);
|
|
234
|
+
node.children.unshift({ type: 'html', value: `&#${match[0].charCodeAt(0)};` });
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
// Serialises a copy, so a cached tree can be stringified more than once and
|
|
238
|
+
// read for its plain text afterwards without carrying the ESM escapes. Text is
|
|
239
|
+
// merged again first: a dropped link or image leaves its text beside the next
|
|
240
|
+
// node, and `[imp](javascript:x)ort` must be seen as one word, `import`.
|
|
241
|
+
export function stringifyMdast(tree) {
|
|
242
|
+
const copy = structuredClone(tree);
|
|
243
|
+
visit(copy, 'paragraph', (node) => {
|
|
244
|
+
node.children = mergeText(node.children);
|
|
245
|
+
});
|
|
246
|
+
escapeEsmParagraphs(copy);
|
|
247
|
+
const result = unified().use(remarkMdx).use(remarkGfm).use(remarkStringify).stringify(copy);
|
|
83
248
|
return String(result)
|
|
84
249
|
.replace(/\n{3,}/g, '\n\n')
|
|
85
250
|
.trim();
|
package/bin/sdk/convert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/sdk/convert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/sdk/convert.ts"],"names":[],"mappings":"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"}
|