@humanspeak/svelte-markdown 0.5.4 → 0.6.0
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/Parser.svelte +29 -9
- package/dist/Parser.svelte.d.ts +1 -0
- package/dist/SvelteMarkdown.svelte +15 -5
- package/dist/SvelteMarkdown.svelte.d.ts +3 -2
- package/dist/renderers/Blockquote.svelte.d.ts +1 -0
- package/dist/renderers/Br.svelte.d.ts +1 -0
- package/dist/renderers/Code.svelte.d.ts +1 -0
- package/dist/renderers/Codespan.svelte.d.ts +1 -0
- package/dist/renderers/Del.svelte.d.ts +1 -0
- package/dist/renderers/Em.svelte.d.ts +1 -0
- package/dist/renderers/Heading.svelte.d.ts +1 -0
- package/dist/renderers/Image.svelte.d.ts +1 -0
- package/dist/renderers/Link.svelte.d.ts +1 -0
- package/dist/renderers/List.svelte.d.ts +1 -0
- package/dist/renderers/ListItem.svelte.d.ts +1 -0
- package/dist/renderers/Paragraph.svelte.d.ts +1 -0
- package/dist/renderers/Strong.svelte.d.ts +1 -0
- package/dist/renderers/Table.svelte.d.ts +1 -0
- package/dist/renderers/TableBody.svelte.d.ts +1 -0
- package/dist/renderers/TableCell.svelte.d.ts +1 -0
- package/dist/renderers/TableHead.svelte.d.ts +1 -0
- package/dist/renderers/TableRow.svelte.d.ts +1 -0
- package/dist/renderers/Text.svelte.d.ts +1 -0
- package/dist/renderers/html/A.svelte +12 -0
- package/dist/renderers/html/A.svelte.d.ts +7 -0
- package/dist/renderers/html/Abbr.svelte +12 -0
- package/dist/renderers/html/Abbr.svelte.d.ts +7 -0
- package/dist/renderers/html/Address.svelte +12 -0
- package/dist/renderers/html/Address.svelte.d.ts +7 -0
- package/dist/renderers/html/Article.svelte +12 -0
- package/dist/renderers/html/Article.svelte.d.ts +7 -0
- package/dist/renderers/html/Aside.svelte +12 -0
- package/dist/renderers/html/Aside.svelte.d.ts +7 -0
- package/dist/renderers/html/Audio.svelte +12 -0
- package/dist/renderers/html/Audio.svelte.d.ts +7 -0
- package/dist/renderers/html/B.svelte +12 -0
- package/dist/renderers/html/B.svelte.d.ts +7 -0
- package/dist/renderers/html/Bdi.svelte +12 -0
- package/dist/renderers/html/Bdi.svelte.d.ts +7 -0
- package/dist/renderers/html/Bdo.svelte +12 -0
- package/dist/renderers/html/Bdo.svelte.d.ts +7 -0
- package/dist/renderers/html/Blockquote.svelte +12 -0
- package/dist/renderers/html/Blockquote.svelte.d.ts +7 -0
- package/dist/renderers/html/Button.svelte +12 -0
- package/dist/renderers/html/Button.svelte.d.ts +7 -0
- package/dist/renderers/html/Canvas.svelte +12 -0
- package/dist/renderers/html/Canvas.svelte.d.ts +7 -0
- package/dist/renderers/html/Cite.svelte +12 -0
- package/dist/renderers/html/Cite.svelte.d.ts +7 -0
- package/dist/renderers/html/Code.svelte +12 -0
- package/dist/renderers/html/Code.svelte.d.ts +7 -0
- package/dist/renderers/html/Datalist.svelte +12 -0
- package/dist/renderers/html/Datalist.svelte.d.ts +7 -0
- package/dist/renderers/html/Dd.svelte +12 -0
- package/dist/renderers/html/Dd.svelte.d.ts +7 -0
- package/dist/renderers/html/Del.svelte +12 -0
- package/dist/renderers/html/Del.svelte.d.ts +7 -0
- package/dist/renderers/html/Details.svelte +12 -0
- package/dist/renderers/html/Details.svelte.d.ts +7 -0
- package/dist/renderers/html/Dfn.svelte +12 -0
- package/dist/renderers/html/Dfn.svelte.d.ts +7 -0
- package/dist/renderers/html/Dialog.svelte +12 -0
- package/dist/renderers/html/Dialog.svelte.d.ts +7 -0
- package/dist/renderers/html/Div.svelte +12 -0
- package/dist/renderers/html/Div.svelte.d.ts +7 -0
- package/dist/renderers/html/Dl.svelte +12 -0
- package/dist/renderers/html/Dl.svelte.d.ts +7 -0
- package/dist/renderers/html/Dt.svelte +12 -0
- package/dist/renderers/html/Dt.svelte.d.ts +7 -0
- package/dist/renderers/html/Em.svelte +12 -0
- package/dist/renderers/html/Em.svelte.d.ts +7 -0
- package/dist/renderers/html/Embed.svelte +9 -0
- package/dist/renderers/html/Embed.svelte.d.ts +5 -0
- package/dist/renderers/html/Fieldset.svelte +12 -0
- package/dist/renderers/html/Fieldset.svelte.d.ts +7 -0
- package/dist/renderers/html/Footer.svelte +12 -0
- package/dist/renderers/html/Footer.svelte.d.ts +7 -0
- package/dist/renderers/html/Form.svelte +12 -0
- package/dist/renderers/html/Form.svelte.d.ts +7 -0
- package/dist/renderers/html/H1.svelte +12 -0
- package/dist/renderers/html/H1.svelte.d.ts +7 -0
- package/dist/renderers/html/H2.svelte +12 -0
- package/dist/renderers/html/H2.svelte.d.ts +7 -0
- package/dist/renderers/html/H3.svelte +12 -0
- package/dist/renderers/html/H3.svelte.d.ts +7 -0
- package/dist/renderers/html/H4.svelte +12 -0
- package/dist/renderers/html/H4.svelte.d.ts +7 -0
- package/dist/renderers/html/H5.svelte +12 -0
- package/dist/renderers/html/H5.svelte.d.ts +7 -0
- package/dist/renderers/html/H6.svelte +12 -0
- package/dist/renderers/html/H6.svelte.d.ts +7 -0
- package/dist/renderers/html/Header.svelte +12 -0
- package/dist/renderers/html/Header.svelte.d.ts +7 -0
- package/dist/renderers/html/Hgroup.svelte +12 -0
- package/dist/renderers/html/Hgroup.svelte.d.ts +7 -0
- package/dist/renderers/html/Hr.svelte +11 -0
- package/dist/renderers/html/Hr.svelte.d.ts +5 -0
- package/dist/renderers/html/I.svelte +12 -0
- package/dist/renderers/html/I.svelte.d.ts +7 -0
- package/dist/renderers/html/Iframe.svelte +12 -0
- package/dist/renderers/html/Iframe.svelte.d.ts +7 -0
- package/dist/renderers/html/Img.svelte +11 -0
- package/dist/renderers/html/Img.svelte.d.ts +5 -0
- package/dist/renderers/html/Input.svelte +9 -0
- package/dist/renderers/html/Input.svelte.d.ts +5 -0
- package/dist/renderers/html/Kbd.svelte +12 -0
- package/dist/renderers/html/Kbd.svelte.d.ts +7 -0
- package/dist/renderers/html/Label.svelte +12 -0
- package/dist/renderers/html/Label.svelte.d.ts +7 -0
- package/dist/renderers/html/Legend.svelte +12 -0
- package/dist/renderers/html/Legend.svelte.d.ts +7 -0
- package/dist/renderers/html/Li.svelte +12 -0
- package/dist/renderers/html/Li.svelte.d.ts +7 -0
- package/dist/renderers/html/Main.svelte +12 -0
- package/dist/renderers/html/Main.svelte.d.ts +7 -0
- package/dist/renderers/html/Mark.svelte +12 -0
- package/dist/renderers/html/Mark.svelte.d.ts +7 -0
- package/dist/renderers/html/Menu.svelte +12 -0
- package/dist/renderers/html/Menu.svelte.d.ts +7 -0
- package/dist/renderers/html/Meter.svelte +12 -0
- package/dist/renderers/html/Meter.svelte.d.ts +7 -0
- package/dist/renderers/html/Nav.svelte +12 -0
- package/dist/renderers/html/Nav.svelte.d.ts +7 -0
- package/dist/renderers/html/Object.svelte +12 -0
- package/dist/renderers/html/Object.svelte.d.ts +7 -0
- package/dist/renderers/html/Ol.svelte +12 -0
- package/dist/renderers/html/Ol.svelte.d.ts +7 -0
- package/dist/renderers/html/Optgroup.svelte +12 -0
- package/dist/renderers/html/Optgroup.svelte.d.ts +7 -0
- package/dist/renderers/html/Option.svelte +12 -0
- package/dist/renderers/html/Option.svelte.d.ts +7 -0
- package/dist/renderers/html/Output.svelte +12 -0
- package/dist/renderers/html/Output.svelte.d.ts +7 -0
- package/dist/renderers/html/P.svelte +12 -0
- package/dist/renderers/html/P.svelte.d.ts +7 -0
- package/dist/renderers/html/Param.svelte +9 -0
- package/dist/renderers/html/Param.svelte.d.ts +5 -0
- package/dist/renderers/html/Picture.svelte +12 -0
- package/dist/renderers/html/Picture.svelte.d.ts +7 -0
- package/dist/renderers/html/Pre.svelte +12 -0
- package/dist/renderers/html/Pre.svelte.d.ts +7 -0
- package/dist/renderers/html/Progress.svelte +12 -0
- package/dist/renderers/html/Progress.svelte.d.ts +7 -0
- package/dist/renderers/html/S.svelte +12 -0
- package/dist/renderers/html/S.svelte.d.ts +7 -0
- package/dist/renderers/html/Samp.svelte +12 -0
- package/dist/renderers/html/Samp.svelte.d.ts +7 -0
- package/dist/renderers/html/Section.svelte +12 -0
- package/dist/renderers/html/Section.svelte.d.ts +7 -0
- package/dist/renderers/html/Select.svelte +12 -0
- package/dist/renderers/html/Select.svelte.d.ts +7 -0
- package/dist/renderers/html/Small.svelte +12 -0
- package/dist/renderers/html/Small.svelte.d.ts +7 -0
- package/dist/renderers/html/Source.svelte +9 -0
- package/dist/renderers/html/Source.svelte.d.ts +5 -0
- package/dist/renderers/html/Span.svelte +12 -0
- package/dist/renderers/html/Span.svelte.d.ts +7 -0
- package/dist/renderers/html/Strong.svelte +12 -0
- package/dist/renderers/html/Strong.svelte.d.ts +7 -0
- package/dist/renderers/html/Sub.svelte +12 -0
- package/dist/renderers/html/Sub.svelte.d.ts +7 -0
- package/dist/renderers/html/Summary.svelte +12 -0
- package/dist/renderers/html/Summary.svelte.d.ts +7 -0
- package/dist/renderers/html/Sup.svelte +12 -0
- package/dist/renderers/html/Sup.svelte.d.ts +7 -0
- package/dist/renderers/html/Table.svelte +12 -0
- package/dist/renderers/html/Table.svelte.d.ts +7 -0
- package/dist/renderers/html/Tbody.svelte +12 -0
- package/dist/renderers/html/Tbody.svelte.d.ts +7 -0
- package/dist/renderers/html/Td.svelte +12 -0
- package/dist/renderers/html/Td.svelte.d.ts +7 -0
- package/dist/renderers/html/Textarea.svelte +11 -0
- package/dist/renderers/html/Textarea.svelte.d.ts +5 -0
- package/dist/renderers/html/Tfoot.svelte +12 -0
- package/dist/renderers/html/Tfoot.svelte.d.ts +7 -0
- package/dist/renderers/html/Th.svelte +12 -0
- package/dist/renderers/html/Th.svelte.d.ts +7 -0
- package/dist/renderers/html/Thead.svelte +12 -0
- package/dist/renderers/html/Thead.svelte.d.ts +7 -0
- package/dist/renderers/html/Tr.svelte +12 -0
- package/dist/renderers/html/Tr.svelte.d.ts +7 -0
- package/dist/renderers/html/Track.svelte +9 -0
- package/dist/renderers/html/Track.svelte.d.ts +5 -0
- package/dist/renderers/html/U.svelte +12 -0
- package/dist/renderers/html/U.svelte.d.ts +7 -0
- package/dist/renderers/html/Ul.svelte +12 -0
- package/dist/renderers/html/Ul.svelte.d.ts +7 -0
- package/dist/renderers/html/Var.svelte +12 -0
- package/dist/renderers/html/Var.svelte.d.ts +7 -0
- package/dist/renderers/html/Video.svelte +12 -0
- package/dist/renderers/html/Video.svelte.d.ts +7 -0
- package/dist/renderers/html/index.d.ts +6 -0
- package/dist/renderers/html/index.js +61 -0
- package/dist/renderers/index.d.ts +1 -1
- package/dist/renderers/index.js +1 -1
- package/dist/utils/markdown-parser.d.ts +5 -2
- package/dist/utils/markdown-parser.js +1 -0
- package/dist/utils/token-cleanup.d.ts +6 -0
- package/dist/utils/token-cleanup.js +72 -0
- package/package.json +14 -14
- package/dist/renderers/Html.svelte +0 -9
- package/dist/renderers/Html.svelte.d.ts +0 -4
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<tfoot {...attributes}>{@render children?.()}</tfoot>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<th {...attributes}>{@render children?.()}</th>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<thead {...attributes}>{@render children?.()}</thead>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<tr {...attributes}>{@render children?.()}</tr>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<u {...attributes}>{@render children?.()}</u>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<ul {...attributes}>{@render children?.()}</ul>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<var {...attributes}>{@render children?.()}</var>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
children?: Snippet
|
|
6
|
+
attributes?: Record<string, any>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { children, attributes }: Props = $props()
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<video {...attributes}>{@render children?.()}</video>
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import A from './A.svelte';
|
|
2
|
+
import Blockquote from './Blockquote.svelte';
|
|
3
|
+
import Code from './Code.svelte';
|
|
4
|
+
import Del from './Del.svelte';
|
|
5
|
+
import Em from './Em.svelte';
|
|
6
|
+
import H1 from './H1.svelte';
|
|
7
|
+
import H2 from './H2.svelte';
|
|
8
|
+
import H3 from './H3.svelte';
|
|
9
|
+
import H4 from './H4.svelte';
|
|
10
|
+
import H5 from './H5.svelte';
|
|
11
|
+
import H6 from './H6.svelte';
|
|
12
|
+
import Hr from './Hr.svelte';
|
|
13
|
+
import I from './I.svelte';
|
|
14
|
+
import Img from './Img.svelte';
|
|
15
|
+
import Li from './Li.svelte';
|
|
16
|
+
import Ol from './Ol.svelte';
|
|
17
|
+
import P from './P.svelte';
|
|
18
|
+
import Pre from './Pre.svelte';
|
|
19
|
+
import Strong from './Strong.svelte';
|
|
20
|
+
import Sub from './Sub.svelte';
|
|
21
|
+
import Sup from './Sup.svelte';
|
|
22
|
+
import Table from './Table.svelte';
|
|
23
|
+
import Tbody from './Tbody.svelte';
|
|
24
|
+
import Td from './Td.svelte';
|
|
25
|
+
import Tfoot from './Tfoot.svelte';
|
|
26
|
+
import Th from './Th.svelte';
|
|
27
|
+
import Thead from './Thead.svelte';
|
|
28
|
+
import Tr from './Tr.svelte';
|
|
29
|
+
import Ul from './Ul.svelte';
|
|
30
|
+
export const Html = {
|
|
31
|
+
a: A,
|
|
32
|
+
blockquote: Blockquote,
|
|
33
|
+
code: Code,
|
|
34
|
+
del: Del,
|
|
35
|
+
em: Em,
|
|
36
|
+
h1: H1,
|
|
37
|
+
h2: H2,
|
|
38
|
+
h3: H3,
|
|
39
|
+
h4: H4,
|
|
40
|
+
h5: H5,
|
|
41
|
+
h6: H6,
|
|
42
|
+
hr: Hr,
|
|
43
|
+
i: I,
|
|
44
|
+
img: Img,
|
|
45
|
+
li: Li,
|
|
46
|
+
ol: Ol,
|
|
47
|
+
p: P,
|
|
48
|
+
pre: Pre,
|
|
49
|
+
strong: Strong,
|
|
50
|
+
sub: Sub,
|
|
51
|
+
sup: Sup,
|
|
52
|
+
table: Table,
|
|
53
|
+
tbody: Tbody,
|
|
54
|
+
td: Td,
|
|
55
|
+
th: Th,
|
|
56
|
+
thead: Thead,
|
|
57
|
+
tr: Tr,
|
|
58
|
+
tfoot: Tfoot,
|
|
59
|
+
ul: Ul
|
|
60
|
+
};
|
|
61
|
+
export default Html;
|
|
@@ -6,7 +6,7 @@ export { default as Del } from './Del.svelte';
|
|
|
6
6
|
export { default as Em } from './Em.svelte';
|
|
7
7
|
export { default as Heading } from './Heading.svelte';
|
|
8
8
|
export { default as Hr } from './Hr.svelte';
|
|
9
|
-
export { default as Html } from './
|
|
9
|
+
export { default as Html } from './html/index.js';
|
|
10
10
|
export { default as Image } from './Image.svelte';
|
|
11
11
|
export { default as Link } from './Link.svelte';
|
|
12
12
|
export { default as List } from './List.svelte';
|
package/dist/renderers/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { default as Del } from './Del.svelte';
|
|
|
6
6
|
export { default as Em } from './Em.svelte';
|
|
7
7
|
export { default as Heading } from './Heading.svelte';
|
|
8
8
|
export { default as Hr } from './Hr.svelte';
|
|
9
|
-
export { default as Html } from './
|
|
9
|
+
export { default as Html } from './html/index.js';
|
|
10
10
|
export { default as Image } from './Image.svelte';
|
|
11
11
|
export { default as Link } from './Link.svelte';
|
|
12
12
|
export { default as List } from './List.svelte';
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export { default as Slugger } from 'github-slugger';
|
|
2
2
|
export { Lexer, type Token, type Tokens, type TokensList } from 'marked';
|
|
3
|
+
import { type HtmlRenderers } from '../renderers/html/index.js';
|
|
3
4
|
import type { Component } from 'svelte';
|
|
4
|
-
export
|
|
5
|
+
export type Renderers = {
|
|
6
|
+
html: HtmlRenderers;
|
|
7
|
+
} & {
|
|
5
8
|
[key: string]: Component<any> | null;
|
|
6
|
-
}
|
|
9
|
+
};
|
|
7
10
|
export declare const defaultRenderers: Renderers;
|
|
8
11
|
export type SvelteMarkdownOptions = {
|
|
9
12
|
baseUrl: string | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { default as Slugger } from 'github-slugger';
|
|
2
2
|
export { Lexer } from 'marked';
|
|
3
|
+
import {} from '../renderers/html/index.js';
|
|
3
4
|
import { Blockquote, Br, Code, Codespan, Del, Em, Heading, Hr, Html, Image, Link, List, ListItem, Paragraph, Strong, Table, TableBody, TableCell, TableHead, TableRow, Text } from '../renderers/index.js';
|
|
4
5
|
export const defaultRenderers = {
|
|
5
6
|
heading: Heading,
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Cache the regex pattern
|
|
2
|
+
const HTML_TAG_PATTERN = /<\/?([a-zA-Z][a-zA-Z0-9-]{0,})(?:\s+[^>]*)?>/;
|
|
3
|
+
const htmlTagRegex = new RegExp(HTML_TAG_PATTERN);
|
|
4
|
+
export const isHtmlOpenTag = (raw) => {
|
|
5
|
+
// Use test() first as it's faster than match()
|
|
6
|
+
if (!htmlTagRegex.test(raw))
|
|
7
|
+
return null;
|
|
8
|
+
const match = raw.match(HTML_TAG_PATTERN);
|
|
9
|
+
if (!match)
|
|
10
|
+
return null;
|
|
11
|
+
return { tag: match[1], isOpening: !raw.startsWith('</') };
|
|
12
|
+
};
|
|
13
|
+
export const shrinkHtmlTokens = (tokens) => {
|
|
14
|
+
const result = [];
|
|
15
|
+
const len = tokens.length;
|
|
16
|
+
for (let i = 0; i < len; i++) {
|
|
17
|
+
const currentToken = { ...tokens[i] };
|
|
18
|
+
// Handle nested tokens first
|
|
19
|
+
if ('tokens' in currentToken && currentToken.tokens) {
|
|
20
|
+
currentToken.tokens = shrinkHtmlTokens(currentToken.tokens);
|
|
21
|
+
result.push(currentToken);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
// Check for HTML pattern
|
|
25
|
+
if (currentToken.type === 'html') {
|
|
26
|
+
const openTag = isHtmlOpenTag(currentToken.raw);
|
|
27
|
+
if (openTag?.isOpening) {
|
|
28
|
+
// Search forward for the next matching closing tag
|
|
29
|
+
let closingIndex = -1;
|
|
30
|
+
let depth = 0;
|
|
31
|
+
for (let j = i + 1; j < len; j++) {
|
|
32
|
+
const potentialTag = isHtmlOpenTag(tokens[j].raw);
|
|
33
|
+
if (potentialTag?.tag === openTag.tag) {
|
|
34
|
+
if (potentialTag.isOpening) {
|
|
35
|
+
depth++;
|
|
36
|
+
}
|
|
37
|
+
else if (depth === 0) {
|
|
38
|
+
closingIndex = j;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
depth--;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (closingIndex !== -1) {
|
|
47
|
+
// Collect all content between tags
|
|
48
|
+
const contentTokens = tokens.slice(i + 1, closingIndex);
|
|
49
|
+
result.push({
|
|
50
|
+
type: 'html',
|
|
51
|
+
raw: currentToken.raw,
|
|
52
|
+
text: currentToken.raw.replace(/<|>/g, ''),
|
|
53
|
+
tokens: shrinkHtmlTokens(contentTokens),
|
|
54
|
+
tag: openTag.tag,
|
|
55
|
+
attributes: Object.fromEntries((currentToken.raw.match(/\s+([^>]*)/)?.[1] || '')
|
|
56
|
+
.split(/\s+/)
|
|
57
|
+
.filter(Boolean)
|
|
58
|
+
.map((attr) => {
|
|
59
|
+
const [key, value] = attr.split('=');
|
|
60
|
+
return [key, value ? value.replace(/['"]/g, '') : true];
|
|
61
|
+
}))
|
|
62
|
+
});
|
|
63
|
+
// Skip ahead past the closing tag
|
|
64
|
+
i = closingIndex;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
result.push(currentToken);
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@humanspeak/svelte-markdown",
|
|
3
3
|
"description": "A markdown renderer for Svelte",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.6.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite dev",
|
|
7
7
|
"build": "vite build && npm run package",
|
|
@@ -53,36 +53,36 @@
|
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"github-slugger": "^2.0.0",
|
|
56
|
-
"marked": "^
|
|
56
|
+
"marked": "^15.0.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@eslint/eslintrc": "^3.1.0",
|
|
60
|
-
"@eslint/js": "^9.
|
|
60
|
+
"@eslint/js": "^9.14.0",
|
|
61
61
|
"@sveltejs/adapter-auto": "^3.3.1",
|
|
62
|
-
"@sveltejs/kit": "^2.
|
|
62
|
+
"@sveltejs/kit": "^2.8.0",
|
|
63
63
|
"@sveltejs/package": "^2.3.7",
|
|
64
64
|
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
|
65
|
-
"@testing-library/jest-dom": "^6.6.
|
|
65
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
66
66
|
"@testing-library/svelte": "^5.2.4",
|
|
67
67
|
"@testing-library/user-event": "^14.5.2",
|
|
68
|
-
"@types/node": "^22.
|
|
69
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
70
|
-
"@typescript-eslint/parser": "^8.
|
|
68
|
+
"@types/node": "^22.9.0",
|
|
69
|
+
"@typescript-eslint/eslint-plugin": "^8.14.0",
|
|
70
|
+
"@typescript-eslint/parser": "^8.14.0",
|
|
71
71
|
"@vitest/coverage-v8": "^2.1.4",
|
|
72
|
-
"eslint": "^9.
|
|
72
|
+
"eslint": "^9.14.0",
|
|
73
73
|
"eslint-config-prettier": "^9.1.0",
|
|
74
74
|
"eslint-plugin-svelte": "^2.46.0",
|
|
75
|
-
"globals": "^15.
|
|
75
|
+
"globals": "^15.12.0",
|
|
76
76
|
"jsdom": "^25.0.1",
|
|
77
77
|
"prettier": "^3.3.3",
|
|
78
78
|
"prettier-plugin-organize-imports": "^4.1.0",
|
|
79
|
-
"prettier-plugin-svelte": "^3.2.
|
|
79
|
+
"prettier-plugin-svelte": "^3.2.8",
|
|
80
80
|
"prettier-plugin-tailwindcss": "^0.6.8",
|
|
81
81
|
"publint": "^0.2.12",
|
|
82
|
-
"svelte": "^5.1.
|
|
83
|
-
"svelte-check": "^4.0.
|
|
82
|
+
"svelte": "^5.1.15",
|
|
83
|
+
"svelte-check": "^4.0.7",
|
|
84
84
|
"typescript": "^5.6.3",
|
|
85
|
-
"vite": "^5.4.
|
|
85
|
+
"vite": "^5.4.11",
|
|
86
86
|
"vitest": "^2.1.4"
|
|
87
87
|
},
|
|
88
88
|
"overrides": {
|