@tanstack/markdown 0.0.2 → 0.0.4
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/dist/html.js +14 -23
- package/dist/inline.js +32 -15
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +58 -6
- package/dist/react.js +9 -6
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -0
- package/package.json +1 -1
package/dist/html.js
CHANGED
|
@@ -21,7 +21,7 @@ export function renderBlock(node, options = {}) {
|
|
|
21
21
|
case 'list': {
|
|
22
22
|
const tag = node.ordered ? 'ol' : 'ul';
|
|
23
23
|
const start = node.ordered && node.start && node.start !== 1 ? ` start="${node.start}"` : '';
|
|
24
|
-
const items = node.items.map(item => `<li>${renderListItemChildren(item.children, item.checked, options)}</li>`).join('\n');
|
|
24
|
+
const items = node.items.map(item => `<li>${renderListItemChildren(item.children, item.checked, node.loose, options)}</li>`).join('\n');
|
|
25
25
|
return `<${tag}${start}>\n${items}\n</${tag}>`;
|
|
26
26
|
}
|
|
27
27
|
case 'blockquote':
|
|
@@ -76,7 +76,6 @@ function renderInlines(nodes, options) {
|
|
|
76
76
|
}
|
|
77
77
|
function renderCodeBlock(node, options) {
|
|
78
78
|
const lang = node.lang ?? 'plaintext';
|
|
79
|
-
const codeAttrs = ` class="language-${escapeAttr(lang)}"`;
|
|
80
79
|
const preAttrs = [
|
|
81
80
|
'class="tm-code"',
|
|
82
81
|
`data-lang="${escapeAttr(lang)}"`,
|
|
@@ -86,25 +85,20 @@ function renderCodeBlock(node, options) {
|
|
|
86
85
|
]
|
|
87
86
|
.filter(Boolean)
|
|
88
87
|
.join(' ');
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
...(
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
const html = highlighter ? highlighter(node.value, lang, highlightOptions) : escapeHtml(node.value);
|
|
95
|
-
const pre = `<pre ${preAttrs}><code${codeAttrs}>${html}</code></pre>`;
|
|
88
|
+
const html = options.highlighter?.(node.value, lang, {
|
|
89
|
+
...(node.highlightLines && { highlightLines: node.highlightLines }),
|
|
90
|
+
...(options.codeLineNumbers !== undefined && { lineNumbers: options.codeLineNumbers }),
|
|
91
|
+
}) ?? escapeHtml(node.value);
|
|
92
|
+
const pre = `<pre ${preAttrs}><code class="language-${escapeAttr(lang)}">${html}</code></pre>`;
|
|
96
93
|
if (!node.title)
|
|
97
94
|
return pre;
|
|
98
95
|
return `<figure class="tm-code-frame" data-lang="${escapeAttr(lang)}"><figcaption>${escapeHtml(node.title)}</figcaption>${pre}</figure>`;
|
|
99
96
|
}
|
|
100
|
-
function renderListItemChildren(children, checked, options) {
|
|
101
|
-
const
|
|
97
|
+
function renderListItemChildren(children, checked, loose, options) {
|
|
98
|
+
const first = children[0];
|
|
102
99
|
const task = checked === undefined ? '' : `<input type="checkbox" disabled${checked ? ' checked' : ''}> `;
|
|
103
|
-
if (checked !== undefined && first?.type === 'paragraph')
|
|
104
|
-
|
|
105
|
-
const restHtml = rest.map(child => renderBlock(child, options)).join('\n');
|
|
106
|
-
return restHtml ? `${firstLine}\n${restHtml}` : firstLine;
|
|
107
|
-
}
|
|
100
|
+
if ((checked !== undefined || !loose) && first?.type === 'paragraph')
|
|
101
|
+
return `${task}${renderInlines(first.children, options)}${children.length > 1 ? `\n${children.slice(1).map(child => renderBlock(child, options)).join('\n')}` : ''}`;
|
|
108
102
|
return `${task}${children.map(child => renderBlock(child, options)).join('\n')}`;
|
|
109
103
|
}
|
|
110
104
|
function renderCallout(node, options) {
|
|
@@ -135,14 +129,11 @@ function renderExtension(node, options) {
|
|
|
135
129
|
return undefined;
|
|
136
130
|
}
|
|
137
131
|
function renderHeadingAnchor(id, options) {
|
|
138
|
-
|
|
132
|
+
const headingAnchors = options.headingAnchors;
|
|
133
|
+
if (!id || !headingAnchors)
|
|
139
134
|
return '';
|
|
140
|
-
const anchorOptions = typeof
|
|
141
|
-
|
|
142
|
-
const className = anchorOptions.className ?? 'anchor-heading anchor-heading-link';
|
|
143
|
-
const ariaHidden = anchorOptions.ariaHidden ?? true;
|
|
144
|
-
const tabIndex = anchorOptions.tabIndex ?? -1;
|
|
145
|
-
return `<a href="#${escapeAttr(id)}" aria-hidden="${ariaHidden}" class="${escapeAttr(className)}" tabindex="${tabIndex}">${escapeHtml(content)}</a>`;
|
|
135
|
+
const anchorOptions = typeof headingAnchors === 'object' ? headingAnchors : {};
|
|
136
|
+
return `<a href="#${escapeAttr(id)}" aria-hidden="${anchorOptions.ariaHidden ?? true}" class="${escapeAttr(anchorOptions.className ?? 'anchor-heading anchor-heading-link')}" tabindex="${anchorOptions.tabIndex ?? -1}">${escapeHtml(anchorOptions.content ?? '#')}</a>`;
|
|
146
137
|
}
|
|
147
138
|
function renderComponentAttrs(node) {
|
|
148
139
|
const props = {
|
package/dist/inline.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sanitizeUrl } from './utils.js';
|
|
1
|
+
import { normalizeReferenceLabel, sanitizeUrl } from './utils.js';
|
|
2
2
|
export function parseInline(value, options = {}) {
|
|
3
3
|
const nodes = parseInlineRaw(value, options);
|
|
4
4
|
let result = mergeText(nodes);
|
|
@@ -139,22 +139,39 @@ function parseInlineRaw(value, options) {
|
|
|
139
139
|
}
|
|
140
140
|
function parseLinkish(value, open, options) {
|
|
141
141
|
const closeBracket = findBalanced(value, open, '[', ']');
|
|
142
|
-
if (closeBracket === -1
|
|
143
|
-
return undefined;
|
|
144
|
-
const closeParen = findBalanced(value, closeBracket + 1, '(', ')');
|
|
145
|
-
if (closeParen === -1)
|
|
142
|
+
if (closeBracket === -1)
|
|
146
143
|
return undefined;
|
|
147
144
|
const label = value.slice(open + 1, closeBracket);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
145
|
+
if (value[closeBracket + 1] === '(') {
|
|
146
|
+
const closeParen = findBalanced(value, closeBracket + 1, '(', ')');
|
|
147
|
+
if (closeParen === -1)
|
|
148
|
+
return undefined;
|
|
149
|
+
const destination = value.slice(closeBracket + 2, closeParen).trim();
|
|
150
|
+
const parsed = parseDestination(destination);
|
|
151
|
+
if (!parsed)
|
|
152
|
+
return undefined;
|
|
153
|
+
return {
|
|
154
|
+
label,
|
|
155
|
+
href: parsed.href,
|
|
156
|
+
...(parsed.title ? { title: parsed.title } : {}),
|
|
157
|
+
end: closeParen + 1,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
if (value[closeBracket + 1] === '[') {
|
|
161
|
+
const closeReference = findBalanced(value, closeBracket + 1, '[', ']');
|
|
162
|
+
if (closeReference === -1)
|
|
163
|
+
return undefined;
|
|
164
|
+
const definition = options.references?.[normalizeReferenceLabel(value.slice(closeBracket + 2, closeReference))];
|
|
165
|
+
if (!definition)
|
|
166
|
+
return undefined;
|
|
167
|
+
return {
|
|
168
|
+
label,
|
|
169
|
+
href: definition.href,
|
|
170
|
+
...(definition.title ? { title: definition.title } : {}),
|
|
171
|
+
end: closeReference + 1,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
return undefined;
|
|
158
175
|
}
|
|
159
176
|
function parseDestination(value) {
|
|
160
177
|
const match = value.match(/^(\S+)(?:\s+["']([^"']*)["'])?$/);
|
package/dist/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAOV,gBAAgB,EAChB,YAAY,EAGb,MAAM,YAAY,CAAA;AAKnB,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAOV,gBAAgB,EAChB,YAAY,EAGb,MAAM,YAAY,CAAA;AAKnB,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,gBAAgB,CAiC5F"}
|
package/dist/parser.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseInline } from './inline.js';
|
|
2
|
-
import { createSlugger, isBlank, normalizeInput, plainText, stripIndent } from './utils.js';
|
|
2
|
+
import { createSlugger, isBlank, normalizeInput, normalizeReferenceLabel, plainText, stripIndent } from './utils.js';
|
|
3
3
|
export function parseMarkdown(markdown, options = {}) {
|
|
4
4
|
const normalized = normalizeInput(markdown);
|
|
5
5
|
const frontmatterEnabled = options.frontmatter !== false;
|
|
@@ -12,11 +12,19 @@ export function parseMarkdown(markdown, options = {}) {
|
|
|
12
12
|
lines = lines.slice(end + 1);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
const
|
|
15
|
+
const referenceResult = extractReferenceDefinitions(lines);
|
|
16
|
+
lines = referenceResult.lines;
|
|
17
|
+
const parseOptions = Object.keys(referenceResult.references).length === 0
|
|
18
|
+
? options
|
|
19
|
+
: {
|
|
20
|
+
...options,
|
|
21
|
+
references: referenceResult.references,
|
|
22
|
+
};
|
|
23
|
+
const parser = new BlockParser(lines, parseOptions, createSlugger());
|
|
16
24
|
const children = parser.parse();
|
|
17
25
|
let document = frontmatter === undefined ? { type: 'root', children } : { type: 'root', frontmatter, children };
|
|
18
|
-
for (const extension of
|
|
19
|
-
document = extension.transformDocument?.(document, { options }) ?? document;
|
|
26
|
+
for (const extension of parseOptions.extensions ?? []) {
|
|
27
|
+
document = extension.transformDocument?.(document, { options: parseOptions }) ?? document;
|
|
20
28
|
}
|
|
21
29
|
return document;
|
|
22
30
|
}
|
|
@@ -146,6 +154,7 @@ class BlockParser {
|
|
|
146
154
|
const ordered = first.ordered;
|
|
147
155
|
const baseIndent = first.indent;
|
|
148
156
|
const start = ordered ? first.number : undefined;
|
|
157
|
+
let loose = false;
|
|
149
158
|
while (this.index < this.lines.length) {
|
|
150
159
|
const marker = listMarker(this.current());
|
|
151
160
|
if (!marker || marker.ordered !== ordered || marker.indent !== baseIndent)
|
|
@@ -163,6 +172,9 @@ class BlockParser {
|
|
|
163
172
|
if (nextMarker && nextMarker.indent === baseIndent && nextMarker.ordered === ordered)
|
|
164
173
|
break;
|
|
165
174
|
if (isBlank(line)) {
|
|
175
|
+
if (!this.next())
|
|
176
|
+
break;
|
|
177
|
+
loose = true;
|
|
166
178
|
itemLines.push('');
|
|
167
179
|
this.index++;
|
|
168
180
|
continue;
|
|
@@ -178,9 +190,18 @@ class BlockParser {
|
|
|
178
190
|
this.index++;
|
|
179
191
|
}
|
|
180
192
|
const children = new BlockParser(itemLines, this.options, this.slugger).parse();
|
|
181
|
-
|
|
193
|
+
const item = { type: 'listItem', children };
|
|
194
|
+
if (checked !== undefined)
|
|
195
|
+
item.checked = checked;
|
|
196
|
+
items.push(item);
|
|
182
197
|
}
|
|
183
|
-
return
|
|
198
|
+
return {
|
|
199
|
+
type: 'list',
|
|
200
|
+
ordered,
|
|
201
|
+
...(ordered && start !== undefined ? { start } : {}),
|
|
202
|
+
...(loose && { loose: true }),
|
|
203
|
+
items,
|
|
204
|
+
};
|
|
184
205
|
}
|
|
185
206
|
parseTable() {
|
|
186
207
|
const header = this.current();
|
|
@@ -266,6 +287,37 @@ function parseCodeInfo(info) {
|
|
|
266
287
|
...(highlightLines.length ? { highlightLines } : {}),
|
|
267
288
|
};
|
|
268
289
|
}
|
|
290
|
+
function extractReferenceDefinitions(lines) {
|
|
291
|
+
const references = {};
|
|
292
|
+
const remaining = [];
|
|
293
|
+
let fenceMarker;
|
|
294
|
+
let fenceSize = 0;
|
|
295
|
+
for (const line of lines) {
|
|
296
|
+
const fence = line.match(/^ {0,3}(`{3,}|~{3,})/);
|
|
297
|
+
if (fence) {
|
|
298
|
+
const marker = fence[1][0];
|
|
299
|
+
if (!fenceMarker) {
|
|
300
|
+
fenceMarker = marker;
|
|
301
|
+
fenceSize = fence[1].length;
|
|
302
|
+
}
|
|
303
|
+
else if (marker === fenceMarker && fence[1].length >= fenceSize) {
|
|
304
|
+
fenceMarker = undefined;
|
|
305
|
+
fenceSize = 0;
|
|
306
|
+
}
|
|
307
|
+
remaining.push(line);
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
if (!fenceMarker) {
|
|
311
|
+
const definition = line.match(/^ {0,3}\[([^\]\n]+)\]:[ \t]*(\S+)[ \t]*$/);
|
|
312
|
+
if (definition) {
|
|
313
|
+
references[normalizeReferenceLabel(definition[1])] = { href: definition[2].replace(/^<|>$/g, '') };
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
remaining.push(line);
|
|
318
|
+
}
|
|
319
|
+
return { lines: remaining, references };
|
|
320
|
+
}
|
|
269
321
|
function parseLineRanges(value) {
|
|
270
322
|
const lines = new Set();
|
|
271
323
|
for (const part of value.split(',')) {
|
package/dist/react.js
CHANGED
|
@@ -17,7 +17,7 @@ export function renderBlockReact(node, options = {}, key) {
|
|
|
17
17
|
return renderCodeBlockReact(node, options, key);
|
|
18
18
|
case 'list': {
|
|
19
19
|
const tag = node.ordered ? 'ol' : 'ul';
|
|
20
|
-
return h(options, tag, { key, ...(node.ordered && node.start && node.start !== 1 ? { start: node.start } : {}) }, node.items.map((item, index) => h(options, 'li', { key: index }, renderListItemChildrenReact(item.children, item.checked, options, `${index}`))));
|
|
20
|
+
return h(options, tag, { key, ...(node.ordered && node.start && node.start !== 1 ? { start: node.start } : {}) }, node.items.map((item, index) => h(options, 'li', { key: index }, renderListItemChildrenReact(item.children, item.checked, node.loose, options, `${index}`))));
|
|
21
21
|
}
|
|
22
22
|
case 'blockquote':
|
|
23
23
|
return h(options, 'blockquote', { key }, node.children.map((child, index) => renderBlockReact(child, options, `${key}:${index}`)));
|
|
@@ -73,8 +73,8 @@ function renderCodeBlockReact(node, options, key) {
|
|
|
73
73
|
? {
|
|
74
74
|
dangerouslySetInnerHTML: {
|
|
75
75
|
__html: highlighter(node.value, lang, {
|
|
76
|
-
...(node.highlightLines
|
|
77
|
-
...(options.codeLineNumbers !== undefined
|
|
76
|
+
...(node.highlightLines && { highlightLines: node.highlightLines }),
|
|
77
|
+
...(options.codeLineNumbers !== undefined && { lineNumbers: options.codeLineNumbers }),
|
|
78
78
|
}),
|
|
79
79
|
},
|
|
80
80
|
}
|
|
@@ -90,7 +90,7 @@ function renderCodeBlockReact(node, options, key) {
|
|
|
90
90
|
return h(options, Fragment, { key }, pre);
|
|
91
91
|
return h(options, 'figure', { key, className: 'tm-code-frame', 'data-lang': lang }, h(options, 'figcaption', null, node.title), pre);
|
|
92
92
|
}
|
|
93
|
-
function renderListItemChildrenReact(children, checked, options, key) {
|
|
93
|
+
function renderListItemChildrenReact(children, checked, loose, options, key) {
|
|
94
94
|
const [first, ...rest] = children;
|
|
95
95
|
const task = checked === undefined
|
|
96
96
|
? []
|
|
@@ -108,10 +108,13 @@ function renderListItemChildrenReact(children, checked, options, key) {
|
|
|
108
108
|
return [
|
|
109
109
|
...task,
|
|
110
110
|
...renderInlines(first.children, options),
|
|
111
|
-
...rest.
|
|
111
|
+
...rest.flatMap((child, childIndex) => renderListChildReact(child, loose, options, `${key}:${childIndex + 1}`)),
|
|
112
112
|
];
|
|
113
113
|
}
|
|
114
|
-
return [...task, ...children.
|
|
114
|
+
return [...task, ...children.flatMap((child, childIndex) => renderListChildReact(child, loose, options, `${key}:${childIndex}`))];
|
|
115
|
+
}
|
|
116
|
+
function renderListChildReact(child, loose, options, key) {
|
|
117
|
+
return !loose && child.type === 'paragraph' ? renderInlines(child.children, options) : [renderBlockReact(child, options, key)];
|
|
115
118
|
}
|
|
116
119
|
function renderTableCellReact(tag, cell, align, options, key) {
|
|
117
120
|
return h(options, tag, { key, ...(align ? { style: { textAlign: align } } : {}) }, renderInlines(cell.children, options));
|
package/dist/types.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export interface ListNode {
|
|
|
31
31
|
type: 'list';
|
|
32
32
|
ordered: boolean;
|
|
33
33
|
start?: number;
|
|
34
|
+
loose?: boolean;
|
|
34
35
|
items: ListItemNode[];
|
|
35
36
|
}
|
|
36
37
|
export interface ListItemNode {
|
|
@@ -144,6 +145,7 @@ export interface ParseOptions {
|
|
|
144
145
|
frontmatter?: boolean;
|
|
145
146
|
headingIds?: boolean | ((text: string, index: number) => string);
|
|
146
147
|
extensions?: MarkdownExtension[];
|
|
148
|
+
references?: Record<string, LinkReferenceDefinition>;
|
|
147
149
|
}
|
|
148
150
|
export interface RenderOptions extends ParseOptions {
|
|
149
151
|
highlighter?: CodeHighlighter;
|
|
@@ -169,4 +171,8 @@ export interface MarkdownHeading {
|
|
|
169
171
|
level: number;
|
|
170
172
|
framework?: string;
|
|
171
173
|
}
|
|
174
|
+
export interface LinkReferenceDefinition {
|
|
175
|
+
href: string;
|
|
176
|
+
title?: string;
|
|
177
|
+
}
|
|
172
178
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ export declare function stripIndent(value: string, size: number): string;
|
|
|
7
7
|
export declare function plainText(nodes: InlineNode[]): string;
|
|
8
8
|
export declare function createSlugger(): (value: string) => string;
|
|
9
9
|
export declare function sanitizeUrl(value: string): string;
|
|
10
|
+
export declare function normalizeReferenceLabel(value: string): string;
|
|
10
11
|
export declare function splitLines(value: string): string[];
|
|
11
12
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAQrD;AAED,wBAAgB,aAAa,KAGnB,OAAO,MAAM,YActB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAIlD"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAQrD;AAED,wBAAgB,aAAa,KAGnB,OAAO,MAAM,YActB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAIlD"}
|
package/dist/utils.js
CHANGED
|
@@ -62,6 +62,9 @@ export function sanitizeUrl(value) {
|
|
|
62
62
|
return '';
|
|
63
63
|
return trimmed;
|
|
64
64
|
}
|
|
65
|
+
export function normalizeReferenceLabel(value) {
|
|
66
|
+
return value.trim().toLowerCase();
|
|
67
|
+
}
|
|
65
68
|
export function splitLines(value) {
|
|
66
69
|
const lines = value.split('\n');
|
|
67
70
|
if (lines.at(-1) === '')
|