@hyperbook/markdown 0.1.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 (77) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +17 -0
  3. package/dist/Code.d.ts +2 -0
  4. package/dist/Headings.d.ts +3 -0
  5. package/dist/Image.d.ts +2 -0
  6. package/dist/Link.d.ts +2 -0
  7. package/dist/Markdown.d.ts +5 -0
  8. package/dist/Table.d.ts +5 -0
  9. package/dist/assets/fonts/KaTeX_AMS-Regular.ttf +0 -0
  10. package/dist/assets/fonts/KaTeX_AMS-Regular.woff +0 -0
  11. package/dist/assets/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  12. package/dist/assets/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  13. package/dist/assets/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  14. package/dist/assets/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  15. package/dist/assets/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  16. package/dist/assets/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  17. package/dist/assets/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  18. package/dist/assets/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  19. package/dist/assets/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  20. package/dist/assets/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  21. package/dist/assets/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  22. package/dist/assets/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  23. package/dist/assets/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  24. package/dist/assets/fonts/KaTeX_Main-Bold.ttf +0 -0
  25. package/dist/assets/fonts/KaTeX_Main-Bold.woff +0 -0
  26. package/dist/assets/fonts/KaTeX_Main-Bold.woff2 +0 -0
  27. package/dist/assets/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  28. package/dist/assets/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  29. package/dist/assets/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  30. package/dist/assets/fonts/KaTeX_Main-Italic.ttf +0 -0
  31. package/dist/assets/fonts/KaTeX_Main-Italic.woff +0 -0
  32. package/dist/assets/fonts/KaTeX_Main-Italic.woff2 +0 -0
  33. package/dist/assets/fonts/KaTeX_Main-Regular.ttf +0 -0
  34. package/dist/assets/fonts/KaTeX_Main-Regular.woff +0 -0
  35. package/dist/assets/fonts/KaTeX_Main-Regular.woff2 +0 -0
  36. package/dist/assets/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  37. package/dist/assets/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  38. package/dist/assets/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  39. package/dist/assets/fonts/KaTeX_Math-Italic.ttf +0 -0
  40. package/dist/assets/fonts/KaTeX_Math-Italic.woff +0 -0
  41. package/dist/assets/fonts/KaTeX_Math-Italic.woff2 +0 -0
  42. package/dist/assets/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  43. package/dist/assets/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  44. package/dist/assets/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  45. package/dist/assets/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  46. package/dist/assets/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  47. package/dist/assets/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  48. package/dist/assets/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  49. package/dist/assets/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  50. package/dist/assets/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  51. package/dist/assets/fonts/KaTeX_Script-Regular.ttf +0 -0
  52. package/dist/assets/fonts/KaTeX_Script-Regular.woff +0 -0
  53. package/dist/assets/fonts/KaTeX_Script-Regular.woff2 +0 -0
  54. package/dist/assets/fonts/KaTeX_Size1-Regular.ttf +0 -0
  55. package/dist/assets/fonts/KaTeX_Size1-Regular.woff +0 -0
  56. package/dist/assets/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  57. package/dist/assets/fonts/KaTeX_Size2-Regular.ttf +0 -0
  58. package/dist/assets/fonts/KaTeX_Size2-Regular.woff +0 -0
  59. package/dist/assets/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  60. package/dist/assets/fonts/KaTeX_Size3-Regular.ttf +0 -0
  61. package/dist/assets/fonts/KaTeX_Size3-Regular.woff +0 -0
  62. package/dist/assets/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  63. package/dist/assets/fonts/KaTeX_Size4-Regular.ttf +0 -0
  64. package/dist/assets/fonts/KaTeX_Size4-Regular.woff +0 -0
  65. package/dist/assets/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  66. package/dist/assets/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  67. package/dist/assets/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  68. package/dist/assets/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  69. package/dist/assets/katex.min.css +1105 -0
  70. package/dist/index.cjs.js +263 -0
  71. package/dist/index.cjs.js.map +7 -0
  72. package/dist/index.css +494 -0
  73. package/dist/index.css.map +7 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.esm.mjs +237 -0
  76. package/dist/index.esm.mjs.map +7 -0
  77. package/package.json +68 -0
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b ||= {})
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __export = (target, all) => {
26
+ for (var name in all)
27
+ __defProp(target, name, { get: all[name], enumerable: true });
28
+ };
29
+ var __copyProps = (to, from, except, desc) => {
30
+ if (from && typeof from === "object" || typeof from === "function") {
31
+ for (let key of __getOwnPropNames(from))
32
+ if (!__hasOwnProp.call(to, key) && key !== except)
33
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
34
+ }
35
+ return to;
36
+ };
37
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
38
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
39
+ mod
40
+ ));
41
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
42
+
43
+ // src/index.ts
44
+ var src_exports = {};
45
+ __export(src_exports, {
46
+ Markdown: () => Markdown
47
+ });
48
+ module.exports = __toCommonJS(src_exports);
49
+
50
+ // src/Markdown.tsx
51
+ var import_react_markdown = __toESM(require("react-markdown"));
52
+ var import_remark_directive = __toESM(require("remark-directive"));
53
+ var import_remark_directive_rehype = __toESM(require("remark-directive-rehype"));
54
+ var import_remark_gfm = __toESM(require("remark-gfm"));
55
+ var import_remark_math = __toESM(require("remark-math"));
56
+ var import_remark_gemoji = __toESM(require("remark-gemoji"));
57
+ var import_remark_unwrap_images = __toESM(require("remark-unwrap-images"));
58
+ var import_rehype_katex = __toESM(require("rehype-katex"));
59
+ var import_rehype_highlight = __toESM(require("rehype-highlight"));
60
+ var import_provider5 = require("@hyperbook/provider");
61
+
62
+ // src/Code.tsx
63
+ var import_provider = require("@hyperbook/provider");
64
+ var import_react = require("react");
65
+ var import_md = require("react-icons/md");
66
+ var import_jsx_runtime = require("react/jsx-runtime");
67
+ var Code = ({ children, className }) => {
68
+ const directives = (0, import_provider.useDirectives)();
69
+ if (className === "language-mermaid" && directives["mermaid"]) {
70
+ const Mermaid = directives["mermaid"];
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Mermaid, {
72
+ children
73
+ });
74
+ }
75
+ const ref = (0, import_react.useRef)(null);
76
+ const [copied, setCopied] = (0, import_react.useState)(false);
77
+ const copyCode = () => {
78
+ if (navigator.clipboard && ref.current) {
79
+ const text = ref.current.innerText;
80
+ navigator.clipboard.writeText(text);
81
+ setCopied(true);
82
+ setTimeout(() => setCopied(false), 2e3);
83
+ }
84
+ };
85
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react.Fragment, {
86
+ children: [
87
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("code", {
88
+ ref,
89
+ className,
90
+ children
91
+ }),
92
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
93
+ className: "copy",
94
+ onClick: copyCode,
95
+ "aria-label": "Copy Code",
96
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_md.MdDone, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_md.MdContentCopy, {})
97
+ })
98
+ ]
99
+ });
100
+ };
101
+
102
+ // src/Link.tsx
103
+ var import_provider2 = require("@hyperbook/provider");
104
+ var import_jsx_runtime2 = require("react/jsx-runtime");
105
+ var Link = ({ href, title, children }) => {
106
+ const L = (0, import_provider2.useLink)();
107
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(L, {
108
+ href,
109
+ title,
110
+ children
111
+ });
112
+ };
113
+
114
+ // src/Table.tsx
115
+ var import_jsx_runtime3 = require("react/jsx-runtime");
116
+ var tableHeaders = [];
117
+ var tdIndex = 0;
118
+ var Table = ({ children, style }) => {
119
+ tableHeaders = [];
120
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("table", {
121
+ style,
122
+ children
123
+ });
124
+ };
125
+ var Tr = ({ children, style }) => {
126
+ tdIndex = 0;
127
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("tr", {
128
+ style,
129
+ children
130
+ });
131
+ };
132
+ var Td = ({ children, style }) => {
133
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("td", {
134
+ "data-label": tableHeaders[tdIndex++],
135
+ style,
136
+ children
137
+ });
138
+ };
139
+ var Th = ({ children, style }) => {
140
+ tableHeaders.push(children);
141
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("th", {
142
+ style,
143
+ children
144
+ });
145
+ };
146
+
147
+ // src/Headings.tsx
148
+ var import_provider3 = require("@hyperbook/provider");
149
+ var import_jsx_runtime4 = require("react/jsx-runtime");
150
+ var makeAnchor = (heading) => {
151
+ let anchor = heading.toLowerCase();
152
+ anchor = anchor.replace(/[^a-zA-Z0-9 ]/g, "");
153
+ anchor = anchor.replace(/ /g, "-");
154
+ return anchor;
155
+ };
156
+ var Headings = ({ level, children }) => {
157
+ const heading = children[0];
158
+ let anchor = typeof heading === "string" ? makeAnchor(heading) : "";
159
+ const label = typeof heading === "string" ? heading : anchor;
160
+ const [bookmark, toggleBookmark] = (0, import_provider3.useBookmark)(anchor, label);
161
+ const container = (children2) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, {
162
+ children: [
163
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("a", {
164
+ className: "heading",
165
+ id: anchor,
166
+ href: `#${anchor}`,
167
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", {
168
+ children: children2
169
+ })
170
+ }),
171
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("button", {
172
+ className: bookmark ? "bookmark active" : "bookmark",
173
+ onClick: () => toggleBookmark(),
174
+ title: "Bookmark",
175
+ children: "\u{1F516}"
176
+ })
177
+ ]
178
+ });
179
+ switch (level) {
180
+ case 1:
181
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", {
182
+ children: container(children)
183
+ });
184
+ case 2:
185
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", {
186
+ children: container(children)
187
+ });
188
+ case 3:
189
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", {
190
+ children: container(children)
191
+ });
192
+ case 4:
193
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h4", {
194
+ children: container(children)
195
+ });
196
+ case 5:
197
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h5", {
198
+ children: container(children)
199
+ });
200
+ default:
201
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h6", {
202
+ children: container(children)
203
+ });
204
+ }
205
+ };
206
+
207
+ // src/Image.tsx
208
+ var import_provider4 = require("@hyperbook/provider");
209
+ var import_jsx_runtime5 = require("react/jsx-runtime");
210
+ var Image = ({ src, title, alt }) => {
211
+ const makeUrl = (0, import_provider4.useMakeUrl)();
212
+ src = makeUrl(src, "public");
213
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("figure", {
214
+ children: [
215
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("img", {
216
+ src,
217
+ alt
218
+ }),
219
+ title && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("figcaption", {
220
+ children: title
221
+ })
222
+ ]
223
+ });
224
+ };
225
+
226
+ // src/Markdown.tsx
227
+ var import_jsx_runtime6 = require("react/jsx-runtime");
228
+ var Markdown = ({ children }) => {
229
+ const directives = (0, import_provider5.useDirectives)();
230
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_markdown.default, {
231
+ className: "hyperbook-markdown",
232
+ components: __spreadProps(__spreadValues({}, directives), {
233
+ a: Link,
234
+ code: Code,
235
+ td: Td,
236
+ th: Th,
237
+ table: Table,
238
+ tr: Tr,
239
+ h1: Headings,
240
+ h2: Headings,
241
+ h3: Headings,
242
+ h4: Headings,
243
+ h5: Headings,
244
+ h6: Headings,
245
+ img: Image
246
+ }),
247
+ remarkPlugins: [
248
+ import_remark_directive.default,
249
+ import_remark_directive_rehype.default,
250
+ import_remark_gfm.default,
251
+ import_remark_math.default,
252
+ import_remark_gemoji.default,
253
+ import_remark_unwrap_images.default
254
+ ],
255
+ rehypePlugins: [
256
+ import_rehype_katex.default,
257
+ [import_rehype_highlight.default, { ignoreMissing: true, plainText: ["mermaid"] }]
258
+ ],
259
+ skipHtml: false,
260
+ children
261
+ });
262
+ };
263
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/Markdown.tsx", "../src/Code.tsx", "../src/Link.tsx", "../src/Table.tsx", "../src/Headings.tsx", "../src/Image.tsx"],
4
+ "sourcesContent": ["export * from \"./Markdown\";\n", "import ReactMarkdown from \"react-markdown\";\nimport remarkDirective from \"remark-directive\";\nimport remarkDirectiveRehype from \"remark-directive-rehype\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport remarkGemoji from \"remark-gemoji\";\nimport remarkUnwrapImages from \"remark-unwrap-images\";\nimport rehypeKatex from \"rehype-katex\";\nimport rehypeHighlight from \"rehype-highlight\";\nimport { useDirectives } from \"@hyperbook/provider\";\nimport { Code } from \"./Code\";\nimport { Link } from \"./Link\";\nimport { Table, Td, Th, Tr } from \"./Table\";\nimport { Headings } from \"./Headings\";\nimport { Image } from \"./Image\";\n\nimport \"./index.css\";\n\nexport type MarkdownProps = {\n children: string;\n};\n\nexport const Markdown = ({ children }: MarkdownProps) => {\n const directives = useDirectives();\n\n return (\n <ReactMarkdown\n className=\"hyperbook-markdown\"\n components={{\n ...directives,\n a: Link,\n code: Code,\n td: Td,\n th: Th,\n table: Table,\n tr: Tr,\n h1: Headings,\n h2: Headings,\n h3: Headings,\n h4: Headings,\n h5: Headings,\n h6: Headings,\n img: Image,\n }}\n remarkPlugins={[\n remarkDirective,\n remarkDirectiveRehype,\n remarkGfm,\n remarkMath,\n remarkGemoji,\n remarkUnwrapImages,\n ]}\n rehypePlugins={[\n rehypeKatex,\n [rehypeHighlight, { ignoreMissing: true, plainText: [\"mermaid\"] }],\n ]}\n skipHtml={false}\n >\n {children}\n </ReactMarkdown>\n );\n};\n", "import { useDirectives } from \"@hyperbook/provider\";\nimport React, { Fragment, useRef, useState } from \"react\";\nimport { Components } from \"react-markdown\";\nimport { MdContentCopy, MdDone } from \"react-icons/md\";\n\nexport const Code: Components[\"code\"] = ({ children, className }) => {\n const directives = useDirectives();\n if (className === \"language-mermaid\" && directives[\"mermaid\"]) {\n const Mermaid = directives[\"mermaid\"];\n return <Mermaid children={children} />;\n }\n\n const ref = useRef<HTMLElement>(null);\n const [copied, setCopied] = useState(false);\n const copyCode = () => {\n if (navigator.clipboard && ref.current) {\n const text = ref.current.innerText;\n navigator.clipboard.writeText(text);\n\n setCopied(true);\n\n setTimeout(() => setCopied(false), 2000);\n }\n };\n\n return (\n <Fragment>\n <code ref={ref} className={className}>\n {children}\n </code>\n <button className=\"copy\" onClick={copyCode} aria-label=\"Copy Code\">\n {copied ? <MdDone /> : <MdContentCopy />}\n </button>\n </Fragment>\n );\n};\n", "import { useLink } from \"@hyperbook/provider\";\nimport { Components } from \"react-markdown\";\n\nexport const Link: Components[\"a\"] = ({ href, title, children }) => {\n const L = useLink();\n return (\n <L href={href} title={title}>\n {children}\n </L>\n );\n};\n", "import { ReactNode } from \"react\";\nimport { Components } from \"react-markdown\";\n\nlet tableHeaders: ReactNode[][] = [];\nlet tdIndex = 0;\n\nexport const Table: Components[\"table\"] = ({ children, style }) => {\n tableHeaders = [];\n return <table style={style}>{children}</table>;\n};\n\nexport const Tr: Components[\"tr\"] = ({ children, style }) => {\n tdIndex = 0;\n return <tr style={style}>{children}</tr>;\n};\n\nexport const Td: Components[\"td\"] = ({ children, style }) => {\n return (\n <td data-label={tableHeaders[tdIndex++]} style={style}>\n {children}\n </td>\n );\n};\n\nexport const Th: Components[\"th\"] = ({ children, style }) => {\n tableHeaders.push(children);\n return <th style={style}>{children}</th>;\n};\n", "import { useBookmark } from \"@hyperbook/provider\";\nimport { Components } from \"react-markdown\";\n\nexport const makeAnchor = (heading: string) => {\n // If we have a heading, make it lower case\n let anchor = heading.toLowerCase();\n\n // Clean anchor (replace special characters whitespaces).\n // Alternatively, use encodeURIComponent() if you don't care about\n // pretty anchor links\n anchor = anchor.replace(/[^a-zA-Z0-9 ]/g, \"\");\n anchor = anchor.replace(/ /g, \"-\");\n\n return anchor;\n};\n\nexport const Headings: Components[\"h1\"] = ({ level, children }) => {\n // Access actual (string) value of heading\n const heading = children[0];\n\n // If we have a heading, make it lower case\n let anchor = typeof heading === \"string\" ? makeAnchor(heading) : \"\";\n\n const label = typeof heading === \"string\" ? heading : anchor;\n\n const [bookmark, toggleBookmark] = useBookmark(anchor, label);\n\n // Utility\n const container = (children: React.ReactNode): JSX.Element => (\n <>\n <a className=\"heading\" id={anchor} href={`#${anchor}`}>\n <span>{children}</span>\n </a>\n <button\n className={bookmark ? \"bookmark active\" : \"bookmark\"}\n onClick={() => toggleBookmark()}\n title=\"Bookmark\"\n >\n \uD83D\uDD16\n </button>\n </>\n );\n\n switch (level) {\n case 1:\n return <h1>{container(children)}</h1>;\n case 2:\n return <h2>{container(children)}</h2>;\n case 3:\n return <h3>{container(children)}</h3>;\n case 4:\n return <h4>{container(children)}</h4>;\n case 5:\n return <h5>{container(children)}</h5>;\n\n default:\n return <h6>{container(children)}</h6>;\n }\n};\n", "import { useMakeUrl } from \"@hyperbook/provider\";\nimport { Components } from \"react-markdown\";\n\nexport const Image: Components[\"img\"] = ({ src, title, alt }) => {\n const makeUrl = useMakeUrl();\n src = makeUrl(src, \"public\");\n\n return (\n <figure>\n <img src={src} alt={alt} />\n {title && <figcaption>{title}</figcaption>}\n </figure>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["import_provider", "import_provider", "import_jsx_runtime", "import_jsx_runtime", "import_provider", "import_jsx_runtime", "children", "import_provider", "import_jsx_runtime", "import_jsx_runtime", "ReactMarkdown", "remarkDirective", "remarkDirectiveRehype", "remarkGfm", "remarkMath", "remarkGemoji", "remarkUnwrapImages", "rehypeKatex", "rehypeHighlight"]
7
+ }