@hyperbook/markdown 0.9.1 → 0.9.2
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/index.css.map +1 -1
- package/dist/index.js +14 -35
- package/dist/index.js.map +3 -3
- package/package.json +12 -12
package/dist/index.css.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.css"],
|
|
4
4
|
"sourcesContent": [".hyperbook-markdown {\n background: var(--color-background);\n color: var(--color-text);\n font-family: hyperbook-body, sans-serif;\n}\n\n.hyperbook-markdown a {\n color: var(--color-brand);\n}\n\n/**\n * IE 8\u201311 and Prince don\u2019t recognize the `wbr` element,\n * but a pseudo-element can achieve the same effect with IE 9+ and Prince.\n */\n.hyperbook-markdown wbr:before {\n /* Unicode zero width space */\n content: \"\\200B\";\n white-space: normal;\n}\n\n.hyperbook-markdown .copy {\n color: var(--color-text);\n}\n\n.hyperbook-markdown .hljs {\n background: var(--color-nav) !important;\n border-color: var(--color-spacer);\n}\n\n.hyperbook-markdown p > code {\n background: var(--color-nav) !important;\n border-color: var(--color-spacer);\n}\n\n.hyperbook-markdown img {\n max-width: 100%;\n}\n\n.hyperbook-markdown figure.lightbox {\n position: fixed;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n padding: 1em;\n z-index: 10000;\n margin: 0px;\n background: rgba(0, 0, 0, 0.5);\n}\n\n.hyperbook-markdown figure.lightbox img {\n min-width: 100%;\n min-height: 100%;\n cursor: zoom-out;\n object-fit: contain;\n}\n\n.hyperbook-markdown table {\n border-color: var(--color-spacer);\n}\n\n.hyperbook-markdown table tr {\n background-color: var(--color-nav);\n border-color: var(--color-spacer);\n}\n\n.hyperbook-markdown h2 {\n border-bottom-color: var(--color-spacer);\n}\n\n.hyperbook-markdown ul.bookmarks li {\n border-color: var(--color-spacer);\n}\n\n.hyperbook-markdown ul.bookmarks li:hover {\n background: var(--color-nav);\n}\n\n.hyperbook-markdown ul.bookmarks li:last-of-type {\n border-color: var(--color-spacer);\n}\n\n@media screen and (max-width: 600px) {\n .hyperbook-markdown table td {\n border-bottom-color: var(--color-spacer);\n }\n}\n\n.hyperbook-markdown figure {\n text-align: center;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n.hyperbook-markdown figure img {\n cursor: zoom-in;\n}\n\n.hyperbook-markdown figcaption {\n font-style: italic;\n font-size: 14px;\n max-width: 400px;\n margin: 0 auto;\n}\n\n.hyperbook-markdown a.heading {\n position: relative;\n text-decoration: none;\n padding-left: 16px;\n margin-left: -16px;\n}\n\n.hyperbook-markdown a.heading:hover::before {\n position: absolute;\n content: \"\uD83D\uDCCE\";\n font-size: 12px;\n top: 50%;\n transform: translateY(-50%);\n left: 0px;\n}\n\n.hyperbook-markdown code {\n font-family: hyperbook-code, monospace;\n font-size: 85%;\n padding: 0.2em 0.4em;\n border-radius: 6px;\n}\n\n.hyperbook-markdown .inline {\n display: inline-flex;\n align-items: center;\n color: var(--color-text);\n border-width: 1px;\n border-style: solid;\n background: var(--color-nav) !important;\n border-color: var(--color-spacer);\n font-family: hyperbook-code, monospace;\n padding: 0em 0.4em 0em 0em;\n border-radius: 6px;\n}\n\n.hyperbook-markdown ul,\n.hyperbook-markdown ol {\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 2em;\n}\n\n.hyperbook-markdown ol ol,\n.hyperbook-markdown ul ol {\n list-style-type: lower-roman;\n}\n\n.hyperbook-markdown ul ul ol,\n.hyperbook-markdown ul ol ol,\n.hyperbook-markdown ol ul ol,\n.hyperbook-markdown ol ol ol {\n list-style-type: lower-alpha;\n}\n\n.hyperbook-markdown ul ul,\n.hyperbook-markdown ul ol,\n.hyperbook-markdown ol ol,\n.hyperbook-markdown ol ul {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.hyperbook-markdown li + li {\n margin-top: 0.25em;\n}\n\n.hyperbook-markdown li > p {\n margin-top: 16px;\n}\n\n.hyperbook-markdown p,\n.hyperbook-markdown blockquote,\n.hyperbook-markdown ol,\n.hyperbook-markdown ul,\n.hyperbook-markdown table,\n.hyperbook-markdown pre,\n.hyperbook-markdown details {\n margin-top: 0;\n margin-bottom: 10px;\n}\n\n.hyperbook-markdown blockquote {\n width: 90%;\n margin: 20px auto;\n font-style: italic;\n padding: 1.2em 30px 1.2em 75px;\n border-left: 8px solid var(--color-brand);\n line-height: 1.5;\n position: relative;\n background: var(--color-nav);\n}\n\n.hyperbook-markdown blockquote::before {\n content: \"\\201C\";\n color: var(--color-brand);\n font-size: 4em;\n position: absolute;\n left: 10px;\n top: -10px;\n}\n\n.hyperbook-markdown blockquote::after {\n content: \"\";\n}\n\n.hyperbook-markdown table {\n border-width: 1px;\n border-style: solid;\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.hyperbook-markdown table caption {\n font-size: 1.5em;\n margin: 0.5em 0 0.75em;\n}\n\n.hyperbook-markdown table tr {\n border-width: 1px;\n border-style: solid;\n padding: 0.35em;\n}\n\n.hyperbook-markdown table th,\n.hyperbook-markdown table td {\n padding: 0.625em;\n}\n\n.hyperbook-markdown table th {\n font-size: 0.85em;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n}\n\n@media screen and (max-width: 600px) {\n .hyperbook-markdown table {\n border: 0;\n }\n\n .hyperbook-markdown table caption {\n font-size: 1.3em;\n }\n\n .hyperbook-markdown table thead {\n border: none;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n }\n\n .hyperbook-markdown table tr {\n border-bottom-width: 3px;\n display: block;\n margin-bottom: 0.625em;\n }\n\n .hyperbook-markdown table td {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n display: block;\n font-size: 0.8em;\n text-align: right;\n }\n\n .hyperbook-markdown table td::before {\n /*\n * aria-label has no advantage, it won't be read inside a table\n content: attr(aria-label);\n */\n content: attr(data-label);\n float: left;\n font-weight: bold;\n text-transform: uppercase;\n margin-right: 8px;\n }\n\n .hyperbook-markdown table td:last-child {\n border-bottom: 0;\n }\n}\n\n.hyperbook-markdown h1,\n.hyperbook-markdown h2,\n.hyperbook-markdown h3,\n.hyperbook-markdown h4,\n.hyperbook-markdown h5,\n.hyperbook-markdown h6 {\n font-family: hyperbook-heading, sans-serif;\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n\n.hyperbook-markdown h1 {\n font-size: 1.75em;\n font-weight: 700;\n}\n\n.hyperbook-markdown h2 {\n font-weight: 600;\n padding-bottom: 0.3em;\n font-size: 1.5em;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n}\n\n.hyperbook-markdown h3 {\n font-weight: 600;\n font-size: 1.25em;\n}\n\n.hyperbook-markdown h4 {\n font-weight: 600;\n font-size: 1em;\n}\n\n.hyperbook-markdown h5 {\n font-weight: 600;\n font-size: 0.875em;\n}\n\n.hyperbook-markdown h6 {\n font-weight: 600;\n font-size: 0.85em;\n}\n\n.hyperbook-markdown p {\n margin-top: 0;\n margin-bottom: 10px;\n}\n\n.hyperbook-markdown h1,\n.hyperbook-markdown h2,\n.hyperbook-markdown h3,\n.hyperbook-markdown h4,\n.hyperbook-markdown h5,\n.hyperbook-markdown h6 {\n display: flex;\n align-items: center;\n}\n\n.hyperbook-markdown .bookmark {\n margin-left: 10px;\n background: none;\n border: none;\n opacity: 0.5;\n font-size: 16px;\n}\n\n.hyperbook-markdown .bookmark:hover {\n opacity: 1;\n}\n\n.hyperbook-markdown .bookmark.active {\n opacity: 1;\n}\n\n.hyperbook-markdown ul.bookmarks {\n padding-left: 0;\n}\n\n.hyperbook-markdown ul.bookmarks li {\n list-style-type: none;\n}\n\n.hyperbook-markdown pre {\n position: relative;\n}\n\n.hyperbook-markdown pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\n.hyperbook-markdown pre code {\n display: inline-flex;\n align-items: center;\n color: var(--color-text);\n border-width: 1px;\n border-style: solid;\n}\n\n.hyperbook-markdown button.copy {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n background: var(--color-nav);\n border: none;\n padding: 0;\n border-radius: 4px;\n opacity: 0.9;\n}\n\n.hyperbook-markdown button.copy:hover {\n opacity: 1;\n}\n\n.hyperbook-markdown pre > button.copy {\n position: absolute;\n right: 10px;\n top: 10px;\n}\n\n.hyperbook-markdown .toc-toggle > .bar1,\n.hyperbook-markdown .toc-toggle > .bar2,\n.hyperbook-markdown .toc-toggle > .bar3,\n.hyperbook-markdown .toc-toggle > .bar4 {\n background-color: var(--color-text);\n}\n\n.hyperbook-markdown .toc-toggle {\n background: var(--color-background);\n border-color: var(--color-nav-border);\n}\n\n#toc-sidebar {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: calc(var(--app-height) - 80px);\n border-left-width: 1px;\n border-left-style: solid;\n overflow-y: auto;\n}\n\n#toc-sidebar > nav {\n padding: 20px;\n flex: 1;\n}\n\n#toc-sidebar > nav li a {\n display: block;\n}\n\n#toc-sidebar > nav li a:hover {\n text-decoration: underline;\n}\n\n.hyperbook-markdown .toc-toggle {\n position: fixed;\n padding: 4px;\n top: 90px;\n right: 20px;\n border-radius: 50%;\n height: 40px;\n width: 40px;\n border-style: solid;\n border-width: 1px;\n opacity: 0.7;\n z-index: 1000;\n}\n\n.hyperbook-markdown .toc-toggle:hover {\n opacity: 1;\n}\n\n.hyperbook-markdown .toc-toggle > .bar1,\n.hyperbook-markdown .toc-toggle > .bar3 {\n width: 20px;\n height: 2px;\n margin: 2px 3px;\n transition: 0.4s;\n}\n\n.hyperbook-markdown .toc-toggle > .bar2,\n.hyperbook-markdown .toc-toggle > .bar4 {\n width: 25px;\n height: 2px;\n margin: 2px 3px;\n transition: 0.4s;\n}\n\n/*!\n Theme: GitHub\n Description: Light theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-light\n Current colors taken from GitHub's CSS\n*/\n\n.hljs {\n color: #24292e;\n background: #ffffff;\n}\n\n.hljs-doctag,\n.hljs-keyword,\n.hljs-meta .hljs-keyword,\n.hljs-template-tag,\n.hljs-template-variable,\n.hljs-type,\n.hljs-variable.language_ {\n /* prettylights-syntax-keyword */\n color: #d73a49;\n}\n\n.hljs-title,\n.hljs-title.class_,\n.hljs-title.class_.inherited__,\n.hljs-title.function_ {\n /* prettylights-syntax-entity */\n color: #6f42c1;\n}\n\n.hljs-attr,\n.hljs-attribute,\n.hljs-literal,\n.hljs-meta,\n.hljs-number,\n.hljs-operator,\n.hljs-variable,\n.hljs-selector-attr,\n.hljs-selector-class,\n.hljs-selector-id {\n /* prettylights-syntax-constant */\n color: #005cc5;\n}\n\n.hljs-regexp,\n.hljs-string,\n.hljs-meta .hljs-string {\n /* prettylights-syntax-string */\n color: #032f62;\n}\n\n.hljs-built_in,\n.hljs-symbol {\n /* prettylights-syntax-variable */\n color: #e36209;\n}\n\n.hljs-comment,\n.hljs-code,\n.hljs-formula {\n /* prettylights-syntax-comment */\n color: #6a737d;\n}\n\n.hljs-name,\n.hljs-quote,\n.hljs-selector-tag,\n.hljs-selector-pseudo {\n /* prettylights-syntax-entity-tag */\n color: #22863a;\n}\n\n.hljs-subst {\n /* prettylights-syntax-storage-modifier-import */\n color: #24292e;\n}\n\n.hljs-section {\n /* prettylights-syntax-markup-heading */\n color: #005cc5;\n font-weight: bold;\n}\n\n.hljs-bullet {\n /* prettylights-syntax-markup-list */\n color: #735c0f;\n}\n\n.hljs-emphasis {\n /* prettylights-syntax-markup-italic */\n color: #24292e;\n font-style: italic;\n}\n\n.hljs-strong {\n /* prettylights-syntax-markup-bold */\n color: #24292e;\n font-weight: bold;\n}\n\n.hljs-addition {\n /* prettylights-syntax-markup-inserted */\n color: #22863a;\n background-color: #f0fff4;\n}\n\n.hljs-deletion {\n /* prettylights-syntax-markup-deleted */\n color: #b31d28;\n background-color: #ffeef0;\n}\n\n.hljs-char.escape_,\n.hljs-link,\n.hljs-params,\n.hljs-property,\n.hljs-punctuation,\n.hljs-tag {\n /* purposely ignored */\n}\n\n/*!\n Theme: GitHub Dark\n Description: Dark theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-dark\n Current colors taken from GitHub's CSS\n*/\n\n@media (prefers-color-scheme: dark) {\n .hljs {\n color: #c9d1d9;\n background: #0d1117;\n }\n\n .hljs-doctag,\n .hljs-keyword,\n .hljs-meta .hljs-keyword,\n .hljs-template-tag,\n .hljs-template-variable,\n .hljs-type,\n .hljs-variable.language_ {\n /* prettylights-syntax-keyword */\n color: #ff7b72;\n }\n\n .hljs-title,\n .hljs-title.class_,\n .hljs-title.class_.inherited__,\n .hljs-title.function_ {\n /* prettylights-syntax-entity */\n color: #d2a8ff;\n }\n\n .hljs-attr,\n .hljs-attribute,\n .hljs-literal,\n .hljs-meta,\n .hljs-number,\n .hljs-operator,\n .hljs-variable,\n .hljs-selector-attr,\n .hljs-selector-class,\n .hljs-selector-id {\n /* prettylights-syntax-constant */\n color: #79c0ff;\n }\n\n .hljs-regexp,\n .hljs-string,\n .hljs-meta .hljs-string {\n /* prettylights-syntax-string */\n color: #a5d6ff;\n }\n\n .hljs-built_in,\n .hljs-symbol {\n /* prettylights-syntax-variable */\n color: #ffa657;\n }\n\n .hljs-comment,\n .hljs-code,\n .hljs-formula {\n /* prettylights-syntax-comment */\n color: #8b949e;\n }\n\n .hljs-name,\n .hljs-quote,\n .hljs-selector-tag,\n .hljs-selector-pseudo {\n /* prettylights-syntax-entity-tag */\n color: #7ee787;\n }\n\n .hljs-subst {\n /* prettylights-syntax-storage-modifier-import */\n color: #c9d1d9;\n }\n\n .hljs-section {\n /* prettylights-syntax-markup-heading */\n color: #1f6feb;\n font-weight: bold;\n }\n\n .hljs-bullet {\n /* prettylights-syntax-markup-list */\n color: #f2cc60;\n }\n\n .hljs-emphasis {\n /* prettylights-syntax-markup-italic */\n color: #c9d1d9;\n font-style: italic;\n }\n\n .hljs-strong {\n /* prettylights-syntax-markup-bold */\n color: #c9d1d9;\n font-weight: bold;\n }\n\n .hljs-addition {\n /* prettylights-syntax-markup-inserted */\n color: #aff5b4;\n background-color: #033a16;\n }\n\n .hljs-deletion {\n /* prettylights-syntax-markup-deleted */\n color: #ffdcd7;\n background-color: #67060c;\n }\n\n .hljs-char.escape_,\n .hljs-link,\n .hljs-params,\n .hljs-property,\n .hljs-punctuation,\n .hljs-tag {\n /* purposely ignored */\n }\n}\n"],
|
|
5
|
-
"mappings": ";AAAA;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b ||= {})
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
|
|
21
1
|
// src/Markdown.tsx
|
|
22
2
|
import remarkDirective from "remark-directive";
|
|
23
3
|
import remarkDirectiveRehype from "remark-directive-rehype";
|
|
@@ -142,7 +122,7 @@ function formatUrl(url) {
|
|
|
142
122
|
var formatted = doubleSlash.map(
|
|
143
123
|
(str) => (
|
|
144
124
|
// Insert a word break opportunity after a colon
|
|
145
|
-
str.replace(
|
|
125
|
+
str.replace(/(?<after>:)/giu, "$1<wbr>").replace(/(?<before>[/~.,\-_?#%])/giu, "<wbr>$1").replace(/(?<beforeAndAfter>[=&])/giu, "<wbr>$1<wbr>")
|
|
146
126
|
)
|
|
147
127
|
// Reconnect the strings with word break opportunities after double slashes
|
|
148
128
|
).join("//<wbr>");
|
|
@@ -157,13 +137,12 @@ var Link = ({
|
|
|
157
137
|
const config = useConfig();
|
|
158
138
|
const [isExternal, setIsExternal] = useState2(false);
|
|
159
139
|
useEffect(() => {
|
|
160
|
-
var _a;
|
|
161
140
|
if (href) {
|
|
162
141
|
const tmp = document.createElement("a");
|
|
163
142
|
tmp.href = href;
|
|
164
143
|
if (tmp.host !== window.location.host) {
|
|
165
144
|
setIsExternal(true);
|
|
166
|
-
} else if (config.basePath && !
|
|
145
|
+
} else if (config.basePath && !window.location.pathname?.startsWith(config.basePath)) {
|
|
167
146
|
setIsExternal(true);
|
|
168
147
|
} else {
|
|
169
148
|
setIsExternal(false);
|
|
@@ -218,15 +197,14 @@ var makeAnchor = (heading) => {
|
|
|
218
197
|
return anchor;
|
|
219
198
|
};
|
|
220
199
|
var Headings = (level) => ({ children, id }) => {
|
|
221
|
-
var _a;
|
|
222
200
|
const config = useConfig2();
|
|
223
|
-
const bookmarksConfig =
|
|
224
|
-
const heading =
|
|
201
|
+
const bookmarksConfig = config?.elements?.bookmarks;
|
|
202
|
+
const heading = children?.[0] || "";
|
|
225
203
|
let anchor = typeof heading === "string" ? makeAnchor(heading) : "";
|
|
226
204
|
const label = typeof heading === "string" ? heading : anchor;
|
|
227
205
|
const [bookmark, toggleBookmark] = useBookmark(anchor, label);
|
|
228
206
|
const container = (children2) => /* @__PURE__ */ jsxs2(Fragment2, { children: [
|
|
229
|
-
/* @__PURE__ */ jsx4("a", { className: "heading", id: id
|
|
207
|
+
/* @__PURE__ */ jsx4("a", { className: "heading", id: id ?? anchor, href: `#${id ?? anchor}`, children: /* @__PURE__ */ jsx4("span", { children: children2 }) }),
|
|
230
208
|
bookmarksConfig !== false && /* @__PURE__ */ jsx4(
|
|
231
209
|
"button",
|
|
232
210
|
{
|
|
@@ -325,10 +303,11 @@ var useRemarkSync = (source, {
|
|
|
325
303
|
rehypeReactOptions,
|
|
326
304
|
remarkPlugins = [],
|
|
327
305
|
rehypePlugins = []
|
|
328
|
-
} = {}) => unified().use(remarkParse).use(remarkPlugins).use(remarkToRehype, remarkToRehypeOptions).use(rehypePlugins).use(rehypeReact,
|
|
306
|
+
} = {}) => unified().use(remarkParse).use(remarkPlugins).use(remarkToRehype, remarkToRehypeOptions).use(rehypePlugins).use(rehypeReact, {
|
|
329
307
|
createElement,
|
|
330
|
-
Fragment: Fragment3
|
|
331
|
-
|
|
308
|
+
Fragment: Fragment3,
|
|
309
|
+
...rehypeReactOptions
|
|
310
|
+
}).processSync(source).result;
|
|
332
311
|
|
|
333
312
|
// src/useToc.ts
|
|
334
313
|
import remarkParse2 from "remark-parse";
|
|
@@ -339,8 +318,7 @@ import { unified as unified2 } from "unified";
|
|
|
339
318
|
import { visit as visit3 } from "unist-util-visit";
|
|
340
319
|
import { toString } from "mdast-util-to-string";
|
|
341
320
|
var getAnchor = (heading) => {
|
|
342
|
-
|
|
343
|
-
if ((_a = heading == null ? void 0 : heading.data) == null ? void 0 : _a.id) {
|
|
321
|
+
if (heading?.data?.id) {
|
|
344
322
|
return heading.data.id;
|
|
345
323
|
}
|
|
346
324
|
let anchor = toString(heading, { includeImageAlt: false }).toLowerCase();
|
|
@@ -368,7 +346,7 @@ var remarkHeadings = () => {
|
|
|
368
346
|
|
|
369
347
|
// src/useToc.ts
|
|
370
348
|
var useToc = (markdown) => {
|
|
371
|
-
return unified2().use(
|
|
349
|
+
return unified2().use(remarkParse2).use(remarkCustomHeadingIds).use(remarkHeadings).use(remarkStringify).processSync(markdown).data.headings;
|
|
372
350
|
};
|
|
373
351
|
|
|
374
352
|
// src/Markdown.tsx
|
|
@@ -381,7 +359,8 @@ var Markdown = ({ children, showToc = true }) => {
|
|
|
381
359
|
const reactContent = useRemarkSync(children, {
|
|
382
360
|
rehypeReactOptions: {
|
|
383
361
|
passNode: true,
|
|
384
|
-
components:
|
|
362
|
+
components: {
|
|
363
|
+
...directives,
|
|
385
364
|
a: Link,
|
|
386
365
|
code: Code,
|
|
387
366
|
td: Td,
|
|
@@ -395,7 +374,7 @@ var Markdown = ({ children, showToc = true }) => {
|
|
|
395
374
|
h5: Headings(5),
|
|
396
375
|
h6: Headings(6),
|
|
397
376
|
img: Image
|
|
398
|
-
}
|
|
377
|
+
}
|
|
399
378
|
},
|
|
400
379
|
remarkPlugins: [
|
|
401
380
|
remarkRemoveComments,
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/Markdown.tsx", "../src/Code.tsx", "../src/Link.tsx", "../src/Table.tsx", "../src/Headings.tsx", "../src/Image.tsx", "../src/remarkRemoveComments.ts", "../src/remarkCustomHeadingIds.ts", "../src/useRemarkSync.ts", "../src/useToc.ts", "../src/remarkHeadings.ts"],
|
|
4
|
-
"sourcesContent": ["import 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 { Drawer } from \"@hyperbook/drawer\";\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\";\nimport { remarkRemoveComments } from \"./remarkRemoveComments\";\nimport { remarkCustomHeadingIds } from \"./remarkCustomHeadingIds\";\nimport { useRemarkSync } from \"./useRemarkSync\";\nimport { useToc } from \"./useToc\";\nimport { Fragment, useState } from \"react\";\n\nexport type MarkdownProps = {\n children: string;\n showToc?: boolean;\n};\n\nexport const Markdown = ({ children, showToc = true }: MarkdownProps) => {\n const directives = useDirectives();\n\n const toc = useToc(children);\n const [isTocOpen, setIsTocOpen] = useState(false);\n const reactContent = useRemarkSync(children, {\n rehypeReactOptions: {\n passNode: true,\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(1),\n h2: Headings(2),\n h3: Headings(3),\n h4: Headings(4),\n h5: Headings(5),\n h6: Headings(6),\n img: Image,\n },\n },\n remarkPlugins: [\n remarkRemoveComments,\n remarkCustomHeadingIds,\n remarkGfm,\n remarkDirective,\n remarkDirectiveRehype,\n remarkMath,\n remarkGemoji,\n remarkUnwrapImages,\n ],\n rehypePlugins: [\n rehypeKatex,\n [rehypeHighlight, { ignoreMissing: true, plainText: [\"mermaid\"] }],\n ],\n });\n\n return (\n <div className=\"hyperbook-markdown\">\n {showToc && (\n <Fragment>\n <button\n className={isTocOpen ? \"toc-toggle open\" : \"toc-toggle\"}\n onClick={() => setIsTocOpen(!isTocOpen)}\n title=\"Table of Contents\"\n >\n <div className=\"bar1\"></div>\n <div className=\"bar2\"></div>\n <div className=\"bar3\"></div>\n <div className=\"bar4\"></div>\n </button>\n <Drawer\n isOpen={isTocOpen}\n onClose={() => setIsTocOpen(false)}\n position=\"right\"\n >\n <div id=\"toc-sidebar\">\n <nav className=\"toc\">\n <ul>\n {toc.map((h, i) => (\n <li key={i} className={`level-${h.level}`}>\n <a href={`#${h.anchor}`}>{h.label}</a>\n </li>\n ))}\n </ul>\n </nav>\n </div>\n </Drawer>\n </Fragment>\n )}\n {reactContent}\n </div>\n );\n};\n", "import { useDirectives } from \"@hyperbook/provider\";\nimport { ComponentType, Fragment, useRef, useState } from \"react\";\n\nconst MdContentCopy = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n height=\"1em\"\n width=\"1em\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\" />\n </svg>\n );\n};\n\nconst MdDone = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n height=\"1em\"\n width=\"1em\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\" />\n </svg>\n );\n};\n\nconst copyNoNavigator = (text: string) => {\n const isIos = navigator.userAgent.match(/ipad|iphone/i);\n const textarea = document.createElement(\"textarea\");\n\n // create textarea\n textarea.value = text;\n\n // ios will zoom in on the input if the font-size is < 16px\n textarea.style.fontSize = \"20px\";\n document.body.appendChild(textarea);\n\n // select text\n if (isIos) {\n const range = document.createRange();\n range.selectNodeContents(textarea);\n\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n textarea.setSelectionRange(0, 999999);\n } else {\n textarea.select();\n }\n\n // copy selection\n document.execCommand(\"copy\");\n\n // cleanup\n document.body.removeChild(textarea);\n};\n\nexport const Code: ComponentType<JSX.IntrinsicElements[\"code\"]> = ({\n children,\n className,\n}) => {\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 (ref.current) {\n const text = ref.current.innerText;\n if (navigator.clipboard) {\n navigator.clipboard\n .writeText(text)\n .then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n })\n .catch(() => {\n copyNoNavigator(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n } else {\n copyNoNavigator(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n }\n };\n\n return !className ? (\n <span className=\"inline\">\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 </span>\n ) : (\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 { useConfig, useLink } from \"@hyperbook/provider\";\nimport { ComponentType, ReactNode, useEffect, useState } from \"react\";\n\n// see: https://css-tricks.com/better-line-breaks-for-long-urls/\nfunction formatUrl(url: ReactNode) {\n if (typeof url !== \"string\") {\n return url;\n }\n // Split the URL into an array to distinguish double slashes from single slashes\n var doubleSlash = url.split(\"//\");\n\n // Format the strings on either side of double slashes separately\n var formatted = doubleSlash\n .map(\n (str) =>\n // Insert a word break opportunity after a colon\n str\n .replace(/(?<after>:)/giu, \"$1<wbr>\")\n // Before a single slash, tilde, period, comma, hyphen, underline, question mark, number sign, or percent symbol\n .replace(/(?<before>[/~.,\\-_?#%])/giu, \"<wbr>$1\")\n // Before and after an equals sign or ampersand\n .replace(/(?<beforeAndAfter>[=&])/giu, \"<wbr>$1<wbr>\")\n // Reconnect the strings with word break opportunities after double slashes\n )\n .join(\"//<wbr>\");\n\n return formatted;\n}\n\nexport const Link: ComponentType<JSX.IntrinsicElements[\"a\"]> = ({\n href,\n title,\n children,\n}) => {\n const L = useLink();\n const config = useConfig();\n const [isExternal, setIsExternal] = useState(false);\n\n useEffect(() => {\n if (href) {\n const tmp = document.createElement(\"a\");\n tmp.href = href;\n if (tmp.host !== window.location.host) {\n setIsExternal(true);\n } else if (\n config.basePath &&\n !window.location.pathname?.startsWith(config.basePath)\n ) {\n setIsExternal(true);\n } else {\n setIsExternal(false);\n }\n }\n }, [href, config]);\n\n if (isExternal) {\n <L href={href} title={title} target=\"_blank\">\n {formatUrl(children)}\n </L>;\n }\n\n return (\n <L href={href} title={title}>\n {formatUrl(children)}\n </L>\n );\n};\n", "import { ComponentType, ReactNode } from \"react\";\n\nlet tableHeaders: ReactNode[] = [];\nlet tdIndex = 0;\n\nexport const Table: ComponentType<JSX.IntrinsicElements[\"table\"]> = ({\n children,\n style,\n}) => {\n tableHeaders = [];\n return <table style={style}>{children}</table>;\n};\n\nexport const Tr: ComponentType<JSX.IntrinsicElements[\"tr\"]> = ({\n children,\n style,\n}) => {\n tdIndex = 0;\n return <tr style={style}>{children}</tr>;\n};\n\nexport const Td: ComponentType<JSX.IntrinsicElements[\"td\"]> = ({\n children,\n style,\n}) => {\n return (\n <td data-label={tableHeaders[tdIndex++]} style={style}>\n {children}\n </td>\n );\n};\n\nexport const Th: ComponentType<JSX.IntrinsicElements[\"th\"]> = ({\n children,\n style,\n}) => {\n tableHeaders.push(children);\n return <th style={style}>{children}</th>;\n};\n", "import { useBookmark, useConfig } from \"@hyperbook/provider\";\nimport { ComponentType } from \"react\";\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 =\n (level: number): ComponentType<JSX.IntrinsicElements[\"h1\"]> =>\n ({ children, id }) => {\n const config = useConfig();\n const bookmarksConfig = config?.elements?.bookmarks;\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={id ?? anchor} href={`#${id ?? anchor}`}>\n <span>{children}</span>\n </a>\n {bookmarksConfig !== false && (\n <button\n className={bookmark ? \"bookmark active\" : \"bookmark\"}\n onClick={() => toggleBookmark()}\n title=\"Bookmark\"\n >\n \uD83D\uDD16\n </button>\n )}\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 { ComponentType, useState } from \"react\";\n\nexport const Image: ComponentType<JSX.IntrinsicElements[\"img\"]> = ({\n src,\n title,\n alt,\n}) => {\n const makeUrl = useMakeUrl();\n const [full, setFull] = useState(false);\n src = makeUrl(src, \"public\");\n\n return (\n <figure className={full ? \"lightbox\" : undefined}>\n <img src={src} alt={alt} onClick={() => setFull((f) => !f)} />\n {title && <figcaption>{title}</figcaption>}\n </figure>\n );\n};\n", "//@ts-nocheck\nimport { visit, SKIP } from \"unist-util-visit\";\nimport { Transformer } from \"unified\";\nimport { BuildVisitor } from \"unist-util-visit/complex-types\";\n\nexport const remarkRemoveComments: () => Transformer = () => (tree) => {\n const htmlCommentRegex = /<!--([\\s\\S]*?)-->/g;\n\n const handler: BuildVisitor = (node, index, parent) => {\n const isComment = node.value.match(htmlCommentRegex);\n\n if (isComment) {\n // remove node\n parent.children.splice(index, 1);\n // Do not traverse `node`, continue at the node *now* at `index`. http://unifiedjs.com/learn/recipe/remove-node/\n return [SKIP, index];\n }\n };\n\n visit(tree, \"html\", handler);\n\n visit(tree, \"jsx\", handler);\n};\n", "import { visit } from \"unist-util-visit\";\nimport { Transformer } from \"unified\";\n\nexport const remarkCustomHeadingIds: () => Transformer = () => {\n return function (node) {\n visit(node, \"heading\", (node) => {\n let lastChild = node.children[node.children.length - 1];\n if (lastChild && lastChild.type === \"text\") {\n let string = lastChild.value.replace(/ +$/, \"\");\n let matched = string.match(/ {#([^]+?)}$/);\n\n if (matched) {\n let id = matched[1];\n if (!!id.length) {\n if (!node.data) {\n node.data = {};\n }\n if (!node.data.hProperties) {\n node.data.hProperties = {};\n }\n node.data.id = node.data.hProperties.id = id;\n\n string = string.substring(0, matched.index);\n lastChild.value = string;\n }\n }\n }\n });\n };\n};\n", "import { Fragment, ReactElement, createElement } from \"react\";\nimport { PluggableList, unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport { Options as RemarkRehypeOptions } from \"mdast-util-to-hast\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\n\ntype PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport interface UseRemarkSyncOptions {\n remarkToRehypeOptions?: RemarkRehypeOptions;\n rehypeReactOptions?: PartialBy<RehypeReactOptions, \"createElement\">;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n}\n\nexport const useRemarkSync = (\n source: string,\n {\n remarkToRehypeOptions,\n rehypeReactOptions,\n remarkPlugins = [],\n rehypePlugins = [],\n }: UseRemarkSyncOptions = {}\n): ReactElement =>\n unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkToRehype, remarkToRehypeOptions)\n .use(rehypePlugins)\n .use(rehypeReact, {\n createElement,\n Fragment,\n ...rehypeReactOptions,\n } as RehypeReactOptions)\n .processSync(source).result as ReactElement;\n", "import remarkParse from \"remark-parse\";\nimport remarkStringify from \"remark-stringify\";\nimport { unified } from \"unified\";\nimport { remarkCustomHeadingIds } from \"./remarkCustomHeadingIds\";\nimport { Heading, remarkHeadings } from \"./remarkHeadings\";\n\nexport const useToc = (markdown: string): Heading[] => {\n return unified()\n .use(remarkCustomHeadingIds)\n .use(remarkParse)\n .use(remarkStringify)\n .use(remarkHeadings)\n .processSync(markdown).data.headings;\n};\n", "import { Plugin } from \"unified\";\nimport { Root as MdastRoot, Heading as AstHeading } from \"mdast\";\nimport { Root as HastRoot } from \"hast\";\nimport { visit } from \"unist-util-visit\";\nimport { toString } from \"mdast-util-to-string\";\n\nexport interface Heading {\n level: number;\n label: string;\n anchor: string;\n}\n\nconst getAnchor = (heading: AstHeading): string => {\n // If we have a heading, make it lower case\n if (heading?.data?.id) {\n return heading.data.id as string;\n }\n\n let anchor = toString(heading, { includeImageAlt: false }).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\nconst headings = (root: MdastRoot) => {\n const headingList: Heading[] = [];\n\n visit(root, \"heading\", (node: AstHeading) => {\n const heading: Heading = {\n level: node.depth,\n label: toString(node, { includeImageAlt: false }),\n anchor: getAnchor(node),\n };\n\n headingList.push(heading);\n });\n\n return headingList;\n};\n\nexport const remarkHeadings: Plugin<[], MdastRoot, HastRoot> = () => {\n return (tree, file) => {\n file.data.headings = headings(tree);\n };\n};\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["useDirectives", "useState", "jsx", "jsx", "useConfig", "Fragment", "jsx", "jsxs", "children", "useState", "jsx", "jsxs", "visit", "node", "Fragment", "
|
|
4
|
+
"sourcesContent": ["import 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 { Drawer } from \"@hyperbook/drawer\";\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\";\nimport { remarkRemoveComments } from \"./remarkRemoveComments\";\nimport { remarkCustomHeadingIds } from \"./remarkCustomHeadingIds\";\nimport { useRemarkSync } from \"./useRemarkSync\";\nimport { useToc } from \"./useToc\";\nimport { Fragment, useState } from \"react\";\n\nexport type MarkdownProps = {\n children: string;\n showToc?: boolean;\n};\n\nexport const Markdown = ({ children, showToc = true }: MarkdownProps) => {\n const directives = useDirectives();\n\n const toc = useToc(children);\n const [isTocOpen, setIsTocOpen] = useState(false);\n const reactContent = useRemarkSync(children, {\n rehypeReactOptions: {\n passNode: true,\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(1),\n h2: Headings(2),\n h3: Headings(3),\n h4: Headings(4),\n h5: Headings(5),\n h6: Headings(6),\n img: Image,\n },\n },\n remarkPlugins: [\n remarkRemoveComments,\n remarkCustomHeadingIds,\n remarkGfm,\n remarkDirective,\n remarkDirectiveRehype,\n remarkMath,\n remarkGemoji,\n remarkUnwrapImages,\n ],\n rehypePlugins: [\n rehypeKatex,\n [rehypeHighlight, { ignoreMissing: true, plainText: [\"mermaid\"] }],\n ],\n });\n\n return (\n <div className=\"hyperbook-markdown\">\n {showToc && (\n <Fragment>\n <button\n className={isTocOpen ? \"toc-toggle open\" : \"toc-toggle\"}\n onClick={() => setIsTocOpen(!isTocOpen)}\n title=\"Table of Contents\"\n >\n <div className=\"bar1\"></div>\n <div className=\"bar2\"></div>\n <div className=\"bar3\"></div>\n <div className=\"bar4\"></div>\n </button>\n <Drawer\n isOpen={isTocOpen}\n onClose={() => setIsTocOpen(false)}\n position=\"right\"\n >\n <div id=\"toc-sidebar\">\n <nav className=\"toc\">\n <ul>\n {toc.map((h, i) => (\n <li key={i} className={`level-${h.level}`}>\n <a href={`#${h.anchor}`}>{h.label}</a>\n </li>\n ))}\n </ul>\n </nav>\n </div>\n </Drawer>\n </Fragment>\n )}\n {reactContent}\n </div>\n );\n};\n", "import { useDirectives } from \"@hyperbook/provider\";\nimport { ComponentType, Fragment, useRef, useState } from \"react\";\n\nconst MdContentCopy = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n height=\"1em\"\n width=\"1em\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\" />\n </svg>\n );\n};\n\nconst MdDone = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n height=\"1em\"\n width=\"1em\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\" />\n </svg>\n );\n};\n\nconst copyNoNavigator = (text: string) => {\n const isIos = navigator.userAgent.match(/ipad|iphone/i);\n const textarea = document.createElement(\"textarea\");\n\n // create textarea\n textarea.value = text;\n\n // ios will zoom in on the input if the font-size is < 16px\n textarea.style.fontSize = \"20px\";\n document.body.appendChild(textarea);\n\n // select text\n if (isIos) {\n const range = document.createRange();\n range.selectNodeContents(textarea);\n\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n textarea.setSelectionRange(0, 999999);\n } else {\n textarea.select();\n }\n\n // copy selection\n document.execCommand(\"copy\");\n\n // cleanup\n document.body.removeChild(textarea);\n};\n\nexport const Code: ComponentType<JSX.IntrinsicElements[\"code\"]> = ({\n children,\n className,\n}) => {\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 (ref.current) {\n const text = ref.current.innerText;\n if (navigator.clipboard) {\n navigator.clipboard\n .writeText(text)\n .then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n })\n .catch(() => {\n copyNoNavigator(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n } else {\n copyNoNavigator(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n }\n };\n\n return !className ? (\n <span className=\"inline\">\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 </span>\n ) : (\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 { useConfig, useLink } from \"@hyperbook/provider\";\nimport { ComponentType, ReactNode, useEffect, useState } from \"react\";\n\n// see: https://css-tricks.com/better-line-breaks-for-long-urls/\nfunction formatUrl(url: ReactNode) {\n if (typeof url !== \"string\") {\n return url;\n }\n // Split the URL into an array to distinguish double slashes from single slashes\n var doubleSlash = url.split(\"//\");\n\n // Format the strings on either side of double slashes separately\n var formatted = doubleSlash\n .map(\n (str) =>\n // Insert a word break opportunity after a colon\n str\n .replace(/(?<after>:)/giu, \"$1<wbr>\")\n // Before a single slash, tilde, period, comma, hyphen, underline, question mark, number sign, or percent symbol\n .replace(/(?<before>[/~.,\\-_?#%])/giu, \"<wbr>$1\")\n // Before and after an equals sign or ampersand\n .replace(/(?<beforeAndAfter>[=&])/giu, \"<wbr>$1<wbr>\")\n // Reconnect the strings with word break opportunities after double slashes\n )\n .join(\"//<wbr>\");\n\n return formatted;\n}\n\nexport const Link: ComponentType<JSX.IntrinsicElements[\"a\"]> = ({\n href,\n title,\n children,\n}) => {\n const L = useLink();\n const config = useConfig();\n const [isExternal, setIsExternal] = useState(false);\n\n useEffect(() => {\n if (href) {\n const tmp = document.createElement(\"a\");\n tmp.href = href;\n if (tmp.host !== window.location.host) {\n setIsExternal(true);\n } else if (\n config.basePath &&\n !window.location.pathname?.startsWith(config.basePath)\n ) {\n setIsExternal(true);\n } else {\n setIsExternal(false);\n }\n }\n }, [href, config]);\n\n if (isExternal) {\n <L href={href} title={title} target=\"_blank\">\n {formatUrl(children)}\n </L>;\n }\n\n return (\n <L href={href} title={title}>\n {formatUrl(children)}\n </L>\n );\n};\n", "import { ComponentType, ReactNode } from \"react\";\n\nlet tableHeaders: ReactNode[] = [];\nlet tdIndex = 0;\n\nexport const Table: ComponentType<JSX.IntrinsicElements[\"table\"]> = ({\n children,\n style,\n}) => {\n tableHeaders = [];\n return <table style={style}>{children}</table>;\n};\n\nexport const Tr: ComponentType<JSX.IntrinsicElements[\"tr\"]> = ({\n children,\n style,\n}) => {\n tdIndex = 0;\n return <tr style={style}>{children}</tr>;\n};\n\nexport const Td: ComponentType<JSX.IntrinsicElements[\"td\"]> = ({\n children,\n style,\n}) => {\n return (\n <td data-label={tableHeaders[tdIndex++]} style={style}>\n {children}\n </td>\n );\n};\n\nexport const Th: ComponentType<JSX.IntrinsicElements[\"th\"]> = ({\n children,\n style,\n}) => {\n tableHeaders.push(children);\n return <th style={style}>{children}</th>;\n};\n", "import { useBookmark, useConfig } from \"@hyperbook/provider\";\nimport { ComponentType } from \"react\";\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 =\n (level: number): ComponentType<JSX.IntrinsicElements[\"h1\"]> =>\n ({ children, id }) => {\n const config = useConfig();\n const bookmarksConfig = config?.elements?.bookmarks;\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={id ?? anchor} href={`#${id ?? anchor}`}>\n <span>{children}</span>\n </a>\n {bookmarksConfig !== false && (\n <button\n className={bookmark ? \"bookmark active\" : \"bookmark\"}\n onClick={() => toggleBookmark()}\n title=\"Bookmark\"\n >\n \uD83D\uDD16\n </button>\n )}\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 { ComponentType, useState } from \"react\";\n\nexport const Image: ComponentType<JSX.IntrinsicElements[\"img\"]> = ({\n src,\n title,\n alt,\n}) => {\n const makeUrl = useMakeUrl();\n const [full, setFull] = useState(false);\n src = makeUrl(src, \"public\");\n\n return (\n <figure className={full ? \"lightbox\" : undefined}>\n <img src={src} alt={alt} onClick={() => setFull((f) => !f)} />\n {title && <figcaption>{title}</figcaption>}\n </figure>\n );\n};\n", "//@ts-nocheck\nimport { visit, SKIP } from \"unist-util-visit\";\nimport { Transformer } from \"unified\";\nimport { BuildVisitor } from \"unist-util-visit/complex-types\";\n\nexport const remarkRemoveComments: () => Transformer = () => (tree) => {\n const htmlCommentRegex = /<!--([\\s\\S]*?)-->/g;\n\n const handler: BuildVisitor = (node, index, parent) => {\n const isComment = node.value.match(htmlCommentRegex);\n\n if (isComment) {\n // remove node\n parent.children.splice(index, 1);\n // Do not traverse `node`, continue at the node *now* at `index`. http://unifiedjs.com/learn/recipe/remove-node/\n return [SKIP, index];\n }\n };\n\n visit(tree, \"html\", handler);\n\n visit(tree, \"jsx\", handler);\n};\n", "import { visit } from \"unist-util-visit\";\nimport { Transformer } from \"unified\";\nimport { Heading } from \"mdast\";\n\nexport const remarkCustomHeadingIds: () => Transformer = () => {\n return function (node) {\n visit(node, \"heading\", (node: Heading) => {\n let lastChild = node.children[node.children.length - 1];\n if (lastChild && lastChild.type === \"text\") {\n let string = lastChild.value.replace(/ +$/, \"\");\n let matched = string.match(/ {#([^]+?)}$/);\n\n if (matched) {\n let id = matched[1];\n if (!!id.length) {\n if (!node.data) {\n node.data = {};\n }\n if (!node.data.hProperties) {\n node.data.hProperties = {};\n }\n node.data.id = node.data.hProperties.id = id;\n\n string = string.substring(0, matched.index);\n lastChild.value = string;\n }\n }\n }\n });\n };\n};\n", "import { Fragment, ReactElement, createElement } from \"react\";\nimport { PluggableList, unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport { Options as RemarkRehypeOptions } from \"mdast-util-to-hast\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\n\ntype PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport interface UseRemarkSyncOptions {\n remarkToRehypeOptions?: RemarkRehypeOptions;\n rehypeReactOptions?: PartialBy<RehypeReactOptions, \"createElement\">;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n}\n\nexport const useRemarkSync = (\n source: string,\n {\n remarkToRehypeOptions,\n rehypeReactOptions,\n remarkPlugins = [],\n rehypePlugins = [],\n }: UseRemarkSyncOptions = {}\n): ReactElement =>\n unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkToRehype, remarkToRehypeOptions)\n .use(rehypePlugins)\n .use(rehypeReact, {\n createElement,\n Fragment,\n ...rehypeReactOptions,\n } as RehypeReactOptions)\n .processSync(source).result as ReactElement;\n", "import remarkParse from \"remark-parse\";\nimport remarkStringify from \"remark-stringify\";\nimport { unified } from \"unified\";\nimport { remarkCustomHeadingIds } from \"./remarkCustomHeadingIds\";\nimport { Heading, remarkHeadings } from \"./remarkHeadings\";\n\nexport const useToc = (markdown: string): Heading[] => {\n return unified()\n .use(remarkParse)\n .use(remarkCustomHeadingIds)\n .use(remarkHeadings)\n .use(remarkStringify)\n .processSync(markdown).data.headings;\n};\n", "import { Plugin } from \"unified\";\nimport { Root as MdastRoot, Heading as AstHeading } from \"mdast\";\nimport { Root as HastRoot } from \"hast\";\nimport { visit } from \"unist-util-visit\";\nimport { toString } from \"mdast-util-to-string\";\n\nexport interface Heading {\n level: number;\n label: string;\n anchor: string;\n}\n\nconst getAnchor = (heading: AstHeading): string => {\n // If we have a heading, make it lower case\n if (heading?.data?.id) {\n return heading.data.id as string;\n }\n\n let anchor = toString(heading, { includeImageAlt: false }).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\nconst headings = (root: MdastRoot) => {\n const headingList: Heading[] = [];\n\n visit(root, \"heading\", (node: AstHeading) => {\n const heading: Heading = {\n level: node.depth,\n label: toString(node, { includeImageAlt: false }),\n anchor: getAnchor(node),\n };\n\n headingList.push(heading);\n });\n\n return headingList;\n};\n\nexport const remarkHeadings: Plugin<[], MdastRoot, HastRoot> = () => {\n return (tree, file) => {\n file.data.headings = headings(tree);\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useDirectives", "useState", "jsx", "jsx", "useConfig", "Fragment", "jsx", "jsxs", "children", "useState", "jsx", "jsxs", "visit", "node", "Fragment", "remarkParse", "unified", "visit", "unified", "remarkParse", "Fragment", "useState", "jsx", "jsxs", "useDirectives"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperbook/markdown",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"author": "Mike Barkmin",
|
|
5
5
|
"homepage": "https://github.com/openpatch/hyperbook#readme",
|
|
6
6
|
"license": "MIT",
|
|
@@ -28,40 +28,40 @@
|
|
|
28
28
|
"url": "https://github.com/openpatch/hyperbook/issues"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"mdast-util-to-hast": "^12.3.0",
|
|
32
|
-
"mdast-util-to-string": "^3.2.0",
|
|
33
31
|
"rehype-highlight": "5.0.2",
|
|
34
32
|
"rehype-katex": "6.0.3",
|
|
35
33
|
"rehype-parse": "^8.0.4",
|
|
36
34
|
"rehype-raw": "^6.1.1",
|
|
37
35
|
"rehype-react": "^7.2.0",
|
|
36
|
+
"rehype-stringify": "^9.0.3",
|
|
38
37
|
"remark-directive": "2.0.1",
|
|
39
38
|
"remark-directive-rehype": "0.4.2",
|
|
40
39
|
"remark-gemoji": "7.0.1",
|
|
40
|
+
"remark-gfm": "3.0.1",
|
|
41
41
|
"remark-math": "5.1.1",
|
|
42
|
+
"remark-parse": "^10.0.2",
|
|
43
|
+
"remark-rehype": "^10.1.0",
|
|
42
44
|
"remark-stringify": "^10.0.3",
|
|
43
45
|
"remark-unwrap-images": "3.0.1",
|
|
44
|
-
"unist-util-visit": "^4.1.1",
|
|
45
46
|
"unified": "^10.1.2",
|
|
46
|
-
"
|
|
47
|
-
"@hyperbook/drawer": "0.1.1"
|
|
47
|
+
"unist-util-visit": "^5.0.0",
|
|
48
|
+
"@hyperbook/drawer": "0.1.1",
|
|
49
|
+
"@hyperbook/provider": "0.4.0"
|
|
48
50
|
},
|
|
49
51
|
"peerDependencies": {
|
|
50
52
|
"react": "18.x",
|
|
51
53
|
"react-dom": "18.x"
|
|
52
54
|
},
|
|
53
55
|
"devDependencies": {
|
|
54
|
-
"@types/hast": "
|
|
55
|
-
"@types/mdast": "^
|
|
56
|
+
"@types/hast": "3.0.0",
|
|
57
|
+
"@types/mdast": "^4.0.0",
|
|
56
58
|
"@types/react": "18.2.12",
|
|
57
59
|
"@types/react-dom": "18.2.5",
|
|
58
60
|
"@types/unist": "2.0.6",
|
|
61
|
+
"mdast-util-to-hast": "^13.0.0",
|
|
62
|
+
"mdast-util-to-string": "^4.0.0",
|
|
59
63
|
"react": "18.2.0",
|
|
60
64
|
"react-dom": "18.2.0",
|
|
61
|
-
"rehype-stringify": "^9.0.3",
|
|
62
|
-
"remark-gfm": "3.0.1",
|
|
63
|
-
"remark-parse": "^10.0.1",
|
|
64
|
-
"remark-rehype": "^10.1.0",
|
|
65
65
|
"vitest": "^0.30.0"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|