@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.
Files changed (202) hide show
  1. package/dist/Parser.svelte +29 -9
  2. package/dist/Parser.svelte.d.ts +1 -0
  3. package/dist/SvelteMarkdown.svelte +15 -5
  4. package/dist/SvelteMarkdown.svelte.d.ts +3 -2
  5. package/dist/renderers/Blockquote.svelte.d.ts +1 -0
  6. package/dist/renderers/Br.svelte.d.ts +1 -0
  7. package/dist/renderers/Code.svelte.d.ts +1 -0
  8. package/dist/renderers/Codespan.svelte.d.ts +1 -0
  9. package/dist/renderers/Del.svelte.d.ts +1 -0
  10. package/dist/renderers/Em.svelte.d.ts +1 -0
  11. package/dist/renderers/Heading.svelte.d.ts +1 -0
  12. package/dist/renderers/Image.svelte.d.ts +1 -0
  13. package/dist/renderers/Link.svelte.d.ts +1 -0
  14. package/dist/renderers/List.svelte.d.ts +1 -0
  15. package/dist/renderers/ListItem.svelte.d.ts +1 -0
  16. package/dist/renderers/Paragraph.svelte.d.ts +1 -0
  17. package/dist/renderers/Strong.svelte.d.ts +1 -0
  18. package/dist/renderers/Table.svelte.d.ts +1 -0
  19. package/dist/renderers/TableBody.svelte.d.ts +1 -0
  20. package/dist/renderers/TableCell.svelte.d.ts +1 -0
  21. package/dist/renderers/TableHead.svelte.d.ts +1 -0
  22. package/dist/renderers/TableRow.svelte.d.ts +1 -0
  23. package/dist/renderers/Text.svelte.d.ts +1 -0
  24. package/dist/renderers/html/A.svelte +12 -0
  25. package/dist/renderers/html/A.svelte.d.ts +7 -0
  26. package/dist/renderers/html/Abbr.svelte +12 -0
  27. package/dist/renderers/html/Abbr.svelte.d.ts +7 -0
  28. package/dist/renderers/html/Address.svelte +12 -0
  29. package/dist/renderers/html/Address.svelte.d.ts +7 -0
  30. package/dist/renderers/html/Article.svelte +12 -0
  31. package/dist/renderers/html/Article.svelte.d.ts +7 -0
  32. package/dist/renderers/html/Aside.svelte +12 -0
  33. package/dist/renderers/html/Aside.svelte.d.ts +7 -0
  34. package/dist/renderers/html/Audio.svelte +12 -0
  35. package/dist/renderers/html/Audio.svelte.d.ts +7 -0
  36. package/dist/renderers/html/B.svelte +12 -0
  37. package/dist/renderers/html/B.svelte.d.ts +7 -0
  38. package/dist/renderers/html/Bdi.svelte +12 -0
  39. package/dist/renderers/html/Bdi.svelte.d.ts +7 -0
  40. package/dist/renderers/html/Bdo.svelte +12 -0
  41. package/dist/renderers/html/Bdo.svelte.d.ts +7 -0
  42. package/dist/renderers/html/Blockquote.svelte +12 -0
  43. package/dist/renderers/html/Blockquote.svelte.d.ts +7 -0
  44. package/dist/renderers/html/Button.svelte +12 -0
  45. package/dist/renderers/html/Button.svelte.d.ts +7 -0
  46. package/dist/renderers/html/Canvas.svelte +12 -0
  47. package/dist/renderers/html/Canvas.svelte.d.ts +7 -0
  48. package/dist/renderers/html/Cite.svelte +12 -0
  49. package/dist/renderers/html/Cite.svelte.d.ts +7 -0
  50. package/dist/renderers/html/Code.svelte +12 -0
  51. package/dist/renderers/html/Code.svelte.d.ts +7 -0
  52. package/dist/renderers/html/Datalist.svelte +12 -0
  53. package/dist/renderers/html/Datalist.svelte.d.ts +7 -0
  54. package/dist/renderers/html/Dd.svelte +12 -0
  55. package/dist/renderers/html/Dd.svelte.d.ts +7 -0
  56. package/dist/renderers/html/Del.svelte +12 -0
  57. package/dist/renderers/html/Del.svelte.d.ts +7 -0
  58. package/dist/renderers/html/Details.svelte +12 -0
  59. package/dist/renderers/html/Details.svelte.d.ts +7 -0
  60. package/dist/renderers/html/Dfn.svelte +12 -0
  61. package/dist/renderers/html/Dfn.svelte.d.ts +7 -0
  62. package/dist/renderers/html/Dialog.svelte +12 -0
  63. package/dist/renderers/html/Dialog.svelte.d.ts +7 -0
  64. package/dist/renderers/html/Div.svelte +12 -0
  65. package/dist/renderers/html/Div.svelte.d.ts +7 -0
  66. package/dist/renderers/html/Dl.svelte +12 -0
  67. package/dist/renderers/html/Dl.svelte.d.ts +7 -0
  68. package/dist/renderers/html/Dt.svelte +12 -0
  69. package/dist/renderers/html/Dt.svelte.d.ts +7 -0
  70. package/dist/renderers/html/Em.svelte +12 -0
  71. package/dist/renderers/html/Em.svelte.d.ts +7 -0
  72. package/dist/renderers/html/Embed.svelte +9 -0
  73. package/dist/renderers/html/Embed.svelte.d.ts +5 -0
  74. package/dist/renderers/html/Fieldset.svelte +12 -0
  75. package/dist/renderers/html/Fieldset.svelte.d.ts +7 -0
  76. package/dist/renderers/html/Footer.svelte +12 -0
  77. package/dist/renderers/html/Footer.svelte.d.ts +7 -0
  78. package/dist/renderers/html/Form.svelte +12 -0
  79. package/dist/renderers/html/Form.svelte.d.ts +7 -0
  80. package/dist/renderers/html/H1.svelte +12 -0
  81. package/dist/renderers/html/H1.svelte.d.ts +7 -0
  82. package/dist/renderers/html/H2.svelte +12 -0
  83. package/dist/renderers/html/H2.svelte.d.ts +7 -0
  84. package/dist/renderers/html/H3.svelte +12 -0
  85. package/dist/renderers/html/H3.svelte.d.ts +7 -0
  86. package/dist/renderers/html/H4.svelte +12 -0
  87. package/dist/renderers/html/H4.svelte.d.ts +7 -0
  88. package/dist/renderers/html/H5.svelte +12 -0
  89. package/dist/renderers/html/H5.svelte.d.ts +7 -0
  90. package/dist/renderers/html/H6.svelte +12 -0
  91. package/dist/renderers/html/H6.svelte.d.ts +7 -0
  92. package/dist/renderers/html/Header.svelte +12 -0
  93. package/dist/renderers/html/Header.svelte.d.ts +7 -0
  94. package/dist/renderers/html/Hgroup.svelte +12 -0
  95. package/dist/renderers/html/Hgroup.svelte.d.ts +7 -0
  96. package/dist/renderers/html/Hr.svelte +11 -0
  97. package/dist/renderers/html/Hr.svelte.d.ts +5 -0
  98. package/dist/renderers/html/I.svelte +12 -0
  99. package/dist/renderers/html/I.svelte.d.ts +7 -0
  100. package/dist/renderers/html/Iframe.svelte +12 -0
  101. package/dist/renderers/html/Iframe.svelte.d.ts +7 -0
  102. package/dist/renderers/html/Img.svelte +11 -0
  103. package/dist/renderers/html/Img.svelte.d.ts +5 -0
  104. package/dist/renderers/html/Input.svelte +9 -0
  105. package/dist/renderers/html/Input.svelte.d.ts +5 -0
  106. package/dist/renderers/html/Kbd.svelte +12 -0
  107. package/dist/renderers/html/Kbd.svelte.d.ts +7 -0
  108. package/dist/renderers/html/Label.svelte +12 -0
  109. package/dist/renderers/html/Label.svelte.d.ts +7 -0
  110. package/dist/renderers/html/Legend.svelte +12 -0
  111. package/dist/renderers/html/Legend.svelte.d.ts +7 -0
  112. package/dist/renderers/html/Li.svelte +12 -0
  113. package/dist/renderers/html/Li.svelte.d.ts +7 -0
  114. package/dist/renderers/html/Main.svelte +12 -0
  115. package/dist/renderers/html/Main.svelte.d.ts +7 -0
  116. package/dist/renderers/html/Mark.svelte +12 -0
  117. package/dist/renderers/html/Mark.svelte.d.ts +7 -0
  118. package/dist/renderers/html/Menu.svelte +12 -0
  119. package/dist/renderers/html/Menu.svelte.d.ts +7 -0
  120. package/dist/renderers/html/Meter.svelte +12 -0
  121. package/dist/renderers/html/Meter.svelte.d.ts +7 -0
  122. package/dist/renderers/html/Nav.svelte +12 -0
  123. package/dist/renderers/html/Nav.svelte.d.ts +7 -0
  124. package/dist/renderers/html/Object.svelte +12 -0
  125. package/dist/renderers/html/Object.svelte.d.ts +7 -0
  126. package/dist/renderers/html/Ol.svelte +12 -0
  127. package/dist/renderers/html/Ol.svelte.d.ts +7 -0
  128. package/dist/renderers/html/Optgroup.svelte +12 -0
  129. package/dist/renderers/html/Optgroup.svelte.d.ts +7 -0
  130. package/dist/renderers/html/Option.svelte +12 -0
  131. package/dist/renderers/html/Option.svelte.d.ts +7 -0
  132. package/dist/renderers/html/Output.svelte +12 -0
  133. package/dist/renderers/html/Output.svelte.d.ts +7 -0
  134. package/dist/renderers/html/P.svelte +12 -0
  135. package/dist/renderers/html/P.svelte.d.ts +7 -0
  136. package/dist/renderers/html/Param.svelte +9 -0
  137. package/dist/renderers/html/Param.svelte.d.ts +5 -0
  138. package/dist/renderers/html/Picture.svelte +12 -0
  139. package/dist/renderers/html/Picture.svelte.d.ts +7 -0
  140. package/dist/renderers/html/Pre.svelte +12 -0
  141. package/dist/renderers/html/Pre.svelte.d.ts +7 -0
  142. package/dist/renderers/html/Progress.svelte +12 -0
  143. package/dist/renderers/html/Progress.svelte.d.ts +7 -0
  144. package/dist/renderers/html/S.svelte +12 -0
  145. package/dist/renderers/html/S.svelte.d.ts +7 -0
  146. package/dist/renderers/html/Samp.svelte +12 -0
  147. package/dist/renderers/html/Samp.svelte.d.ts +7 -0
  148. package/dist/renderers/html/Section.svelte +12 -0
  149. package/dist/renderers/html/Section.svelte.d.ts +7 -0
  150. package/dist/renderers/html/Select.svelte +12 -0
  151. package/dist/renderers/html/Select.svelte.d.ts +7 -0
  152. package/dist/renderers/html/Small.svelte +12 -0
  153. package/dist/renderers/html/Small.svelte.d.ts +7 -0
  154. package/dist/renderers/html/Source.svelte +9 -0
  155. package/dist/renderers/html/Source.svelte.d.ts +5 -0
  156. package/dist/renderers/html/Span.svelte +12 -0
  157. package/dist/renderers/html/Span.svelte.d.ts +7 -0
  158. package/dist/renderers/html/Strong.svelte +12 -0
  159. package/dist/renderers/html/Strong.svelte.d.ts +7 -0
  160. package/dist/renderers/html/Sub.svelte +12 -0
  161. package/dist/renderers/html/Sub.svelte.d.ts +7 -0
  162. package/dist/renderers/html/Summary.svelte +12 -0
  163. package/dist/renderers/html/Summary.svelte.d.ts +7 -0
  164. package/dist/renderers/html/Sup.svelte +12 -0
  165. package/dist/renderers/html/Sup.svelte.d.ts +7 -0
  166. package/dist/renderers/html/Table.svelte +12 -0
  167. package/dist/renderers/html/Table.svelte.d.ts +7 -0
  168. package/dist/renderers/html/Tbody.svelte +12 -0
  169. package/dist/renderers/html/Tbody.svelte.d.ts +7 -0
  170. package/dist/renderers/html/Td.svelte +12 -0
  171. package/dist/renderers/html/Td.svelte.d.ts +7 -0
  172. package/dist/renderers/html/Textarea.svelte +11 -0
  173. package/dist/renderers/html/Textarea.svelte.d.ts +5 -0
  174. package/dist/renderers/html/Tfoot.svelte +12 -0
  175. package/dist/renderers/html/Tfoot.svelte.d.ts +7 -0
  176. package/dist/renderers/html/Th.svelte +12 -0
  177. package/dist/renderers/html/Th.svelte.d.ts +7 -0
  178. package/dist/renderers/html/Thead.svelte +12 -0
  179. package/dist/renderers/html/Thead.svelte.d.ts +7 -0
  180. package/dist/renderers/html/Tr.svelte +12 -0
  181. package/dist/renderers/html/Tr.svelte.d.ts +7 -0
  182. package/dist/renderers/html/Track.svelte +9 -0
  183. package/dist/renderers/html/Track.svelte.d.ts +5 -0
  184. package/dist/renderers/html/U.svelte +12 -0
  185. package/dist/renderers/html/U.svelte.d.ts +7 -0
  186. package/dist/renderers/html/Ul.svelte +12 -0
  187. package/dist/renderers/html/Ul.svelte.d.ts +7 -0
  188. package/dist/renderers/html/Var.svelte +12 -0
  189. package/dist/renderers/html/Var.svelte.d.ts +7 -0
  190. package/dist/renderers/html/Video.svelte +12 -0
  191. package/dist/renderers/html/Video.svelte.d.ts +7 -0
  192. package/dist/renderers/html/index.d.ts +6 -0
  193. package/dist/renderers/html/index.js +61 -0
  194. package/dist/renderers/index.d.ts +1 -1
  195. package/dist/renderers/index.js +1 -1
  196. package/dist/utils/markdown-parser.d.ts +5 -2
  197. package/dist/utils/markdown-parser.js +1 -0
  198. package/dist/utils/token-cleanup.d.ts +6 -0
  199. package/dist/utils/token-cleanup.js +72 -0
  200. package/package.json +14 -14
  201. package/dist/renderers/Html.svelte +0 -9
  202. package/dist/renderers/Html.svelte.d.ts +0 -4
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+
4
+ interface Props {
5
+ attributes?: Record<string, any>
6
+ }
7
+
8
+ const { attributes }: Props = $props()
9
+ </script>
10
+
11
+ <textarea {...attributes}></textarea>
@@ -0,0 +1,5 @@
1
+ declare const Textarea: import("svelte").Component<{
2
+ attributes?: Record<string, any>;
3
+ }, {}, "">;
4
+ type Textarea = ReturnType<typeof Textarea>;
5
+ export default Textarea;
@@ -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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const Tfoot: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type Tfoot = ReturnType<typeof Tfoot>;
7
+ export default 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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const Th: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type Th = ReturnType<typeof Th>;
7
+ export default 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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const Thead: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type Thead = ReturnType<typeof Thead>;
7
+ export default 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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const Tr: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type Tr = ReturnType<typeof Tr>;
7
+ export default Tr;
@@ -0,0 +1,9 @@
1
+ <script lang="ts">
2
+ interface Props {
3
+ attributes?: Record<string, any>
4
+ }
5
+
6
+ const { attributes }: Props = $props()
7
+ </script>
8
+
9
+ <track {...attributes} />
@@ -0,0 +1,5 @@
1
+ declare const Track: import("svelte").Component<{
2
+ attributes?: Record<string, any>;
3
+ }, {}, "">;
4
+ type Track = ReturnType<typeof Track>;
5
+ export default Track;
@@ -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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const U: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type U = ReturnType<typeof U>;
7
+ export default 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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const Ul: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type Ul = ReturnType<typeof Ul>;
7
+ export default 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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const Var: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type Var = ReturnType<typeof Var>;
7
+ export default 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,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ declare const Video: import("svelte").Component<{
3
+ children?: Snippet;
4
+ attributes?: Record<string, any>;
5
+ }, {}, "">;
6
+ type Video = ReturnType<typeof Video>;
7
+ export default Video;
@@ -0,0 +1,6 @@
1
+ import type { Component } from 'svelte';
2
+ export interface HtmlRenderers {
3
+ [key: string]: Component<any, any, any> | null;
4
+ }
5
+ export declare const Html: HtmlRenderers;
6
+ export default Html;
@@ -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 './Html.svelte';
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';
@@ -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 './Html.svelte';
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 interface Renderers {
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,6 @@
1
+ import type { Token, TokensList } from 'marked';
2
+ export declare const isHtmlOpenTag: (raw: string) => {
3
+ tag: string;
4
+ isOpening: boolean;
5
+ } | null;
6
+ export declare const shrinkHtmlTokens: (tokens: Token[] | TokensList) => Token[];
@@ -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.5.4",
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": "^14.1.3"
56
+ "marked": "^15.0.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@eslint/eslintrc": "^3.1.0",
60
- "@eslint/js": "^9.13.0",
60
+ "@eslint/js": "^9.14.0",
61
61
  "@sveltejs/adapter-auto": "^3.3.1",
62
- "@sveltejs/kit": "^2.7.3",
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.2",
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.8.4",
69
- "@typescript-eslint/eslint-plugin": "^8.12.2",
70
- "@typescript-eslint/parser": "^8.12.2",
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.13.0",
72
+ "eslint": "^9.14.0",
73
73
  "eslint-config-prettier": "^9.1.0",
74
74
  "eslint-plugin-svelte": "^2.46.0",
75
- "globals": "^15.11.0",
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.7",
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.4",
83
- "svelte-check": "^4.0.5",
82
+ "svelte": "^5.1.15",
83
+ "svelte-check": "^4.0.7",
84
84
  "typescript": "^5.6.3",
85
- "vite": "^5.4.10",
85
+ "vite": "^5.4.11",
86
86
  "vitest": "^2.1.4"
87
87
  },
88
88
  "overrides": {
@@ -1,9 +0,0 @@
1
- <script lang="ts">
2
- interface Props {
3
- text: string
4
- }
5
-
6
- const { text }: Props = $props()
7
- </script>
8
-
9
- {@html text}
@@ -1,4 +0,0 @@
1
- declare const Html: import("svelte").Component<{
2
- text: string;
3
- }, {}, "">;
4
- export default Html;