@hyperbook/markdown 0.9.1 → 0.9.3
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 +3 -3
- package/dist/index.css.map +2 -2
- package/dist/index.js +27 -42
- package/dist/index.js.map +3 -3
- package/package.json +14 -13
package/dist/index.css
CHANGED
|
@@ -70,15 +70,15 @@
|
|
|
70
70
|
border-bottom-color: var(--color-spacer);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
.hyperbook-markdown figure {
|
|
73
|
+
.hyperbook-markdown figure.normal {
|
|
74
74
|
text-align: center;
|
|
75
75
|
margin-top: 10px;
|
|
76
76
|
margin-bottom: 10px;
|
|
77
77
|
}
|
|
78
|
-
.hyperbook-markdown figure img {
|
|
78
|
+
.hyperbook-markdown figure.normal img {
|
|
79
79
|
cursor: zoom-in;
|
|
80
80
|
}
|
|
81
|
-
.hyperbook-markdown figcaption {
|
|
81
|
+
.hyperbook-markdown figure.normal figcaption {
|
|
82
82
|
font-style: italic;
|
|
83
83
|
font-size: 14px;
|
|
84
84
|
max-width: 400px;
|
package/dist/index.css.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.css"],
|
|
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;
|
|
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.normal {\n text-align: center;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n.hyperbook-markdown figure.normal img {\n cursor: zoom-in;\n}\n\n.hyperbook-markdown figure.normal 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": "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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
|
{
|
|
@@ -256,7 +234,7 @@ var Headings = (level) => ({ children, id }) => {
|
|
|
256
234
|
// src/Image.tsx
|
|
257
235
|
import { useMakeUrl } from "@hyperbook/provider";
|
|
258
236
|
import { useState as useState3 } from "react";
|
|
259
|
-
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
237
|
+
import { Fragment as Fragment3, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
260
238
|
var Image = ({
|
|
261
239
|
src,
|
|
262
240
|
title,
|
|
@@ -265,9 +243,15 @@ var Image = ({
|
|
|
265
243
|
const makeUrl = useMakeUrl();
|
|
266
244
|
const [full, setFull] = useState3(false);
|
|
267
245
|
src = makeUrl(src, "public");
|
|
268
|
-
return /* @__PURE__ */ jsxs3(
|
|
269
|
-
/* @__PURE__ */
|
|
270
|
-
|
|
246
|
+
return /* @__PURE__ */ jsxs3(Fragment3, { children: [
|
|
247
|
+
full && /* @__PURE__ */ jsxs3("figure", { className: "lightbox", children: [
|
|
248
|
+
/* @__PURE__ */ jsx5("img", { src, alt, onClick: () => setFull((f) => !f) }),
|
|
249
|
+
title && /* @__PURE__ */ jsx5("figcaption", { children: title })
|
|
250
|
+
] }),
|
|
251
|
+
/* @__PURE__ */ jsxs3("figure", { className: "normal", children: [
|
|
252
|
+
/* @__PURE__ */ jsx5("img", { src, alt, onClick: () => setFull((f) => !f) }),
|
|
253
|
+
title && /* @__PURE__ */ jsx5("figcaption", { children: title })
|
|
254
|
+
] })
|
|
271
255
|
] });
|
|
272
256
|
};
|
|
273
257
|
|
|
@@ -315,7 +299,7 @@ var remarkCustomHeadingIds = () => {
|
|
|
315
299
|
};
|
|
316
300
|
|
|
317
301
|
// src/useRemarkSync.ts
|
|
318
|
-
import { Fragment as
|
|
302
|
+
import { Fragment as Fragment4, createElement } from "react";
|
|
319
303
|
import { unified } from "unified";
|
|
320
304
|
import remarkParse from "remark-parse";
|
|
321
305
|
import remarkToRehype from "remark-rehype";
|
|
@@ -325,10 +309,11 @@ var useRemarkSync = (source, {
|
|
|
325
309
|
rehypeReactOptions,
|
|
326
310
|
remarkPlugins = [],
|
|
327
311
|
rehypePlugins = []
|
|
328
|
-
} = {}) => unified().use(remarkParse).use(remarkPlugins).use(remarkToRehype, remarkToRehypeOptions).use(rehypePlugins).use(rehypeReact,
|
|
312
|
+
} = {}) => unified().use(remarkParse).use(remarkPlugins).use(remarkToRehype, remarkToRehypeOptions).use(rehypePlugins).use(rehypeReact, {
|
|
329
313
|
createElement,
|
|
330
|
-
Fragment:
|
|
331
|
-
|
|
314
|
+
Fragment: Fragment4,
|
|
315
|
+
...rehypeReactOptions
|
|
316
|
+
}).processSync(source).result;
|
|
332
317
|
|
|
333
318
|
// src/useToc.ts
|
|
334
319
|
import remarkParse2 from "remark-parse";
|
|
@@ -339,8 +324,7 @@ import { unified as unified2 } from "unified";
|
|
|
339
324
|
import { visit as visit3 } from "unist-util-visit";
|
|
340
325
|
import { toString } from "mdast-util-to-string";
|
|
341
326
|
var getAnchor = (heading) => {
|
|
342
|
-
|
|
343
|
-
if ((_a = heading == null ? void 0 : heading.data) == null ? void 0 : _a.id) {
|
|
327
|
+
if (heading?.data?.id) {
|
|
344
328
|
return heading.data.id;
|
|
345
329
|
}
|
|
346
330
|
let anchor = toString(heading, { includeImageAlt: false }).toLowerCase();
|
|
@@ -368,11 +352,11 @@ var remarkHeadings = () => {
|
|
|
368
352
|
|
|
369
353
|
// src/useToc.ts
|
|
370
354
|
var useToc = (markdown) => {
|
|
371
|
-
return unified2().use(
|
|
355
|
+
return unified2().use(remarkParse2).use(remarkCustomHeadingIds).use(remarkHeadings).use(remarkStringify).processSync(markdown).data.headings;
|
|
372
356
|
};
|
|
373
357
|
|
|
374
358
|
// src/Markdown.tsx
|
|
375
|
-
import { Fragment as
|
|
359
|
+
import { Fragment as Fragment5, useState as useState4 } from "react";
|
|
376
360
|
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
377
361
|
var Markdown = ({ children, showToc = true }) => {
|
|
378
362
|
const directives = useDirectives2();
|
|
@@ -381,7 +365,8 @@ var Markdown = ({ children, showToc = true }) => {
|
|
|
381
365
|
const reactContent = useRemarkSync(children, {
|
|
382
366
|
rehypeReactOptions: {
|
|
383
367
|
passNode: true,
|
|
384
|
-
components:
|
|
368
|
+
components: {
|
|
369
|
+
...directives,
|
|
385
370
|
a: Link,
|
|
386
371
|
code: Code,
|
|
387
372
|
td: Td,
|
|
@@ -395,7 +380,7 @@ var Markdown = ({ children, showToc = true }) => {
|
|
|
395
380
|
h5: Headings(5),
|
|
396
381
|
h6: Headings(6),
|
|
397
382
|
img: Image
|
|
398
|
-
}
|
|
383
|
+
}
|
|
399
384
|
},
|
|
400
385
|
remarkPlugins: [
|
|
401
386
|
remarkRemoveComments,
|
|
@@ -413,7 +398,7 @@ var Markdown = ({ children, showToc = true }) => {
|
|
|
413
398
|
]
|
|
414
399
|
});
|
|
415
400
|
return /* @__PURE__ */ jsxs4("div", { className: "hyperbook-markdown", children: [
|
|
416
|
-
showToc && /* @__PURE__ */ jsxs4(
|
|
401
|
+
showToc && /* @__PURE__ */ jsxs4(Fragment5, { children: [
|
|
417
402
|
/* @__PURE__ */ jsxs4(
|
|
418
403
|
"button",
|
|
419
404
|
{
|
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 as any)?.[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 <>\n {full && (\n <figure className={\"lightbox\"}>\n <img src={src} alt={alt} onClick={() => setFull((f) => !f)} />\n {title && <figcaption>{title}</figcaption>}\n </figure>\n )}\n <figure className={\"normal\"}>\n <img src={src} alt={alt} onClick={() => setFull((f) => !f)} />\n {title && <figcaption>{title}</figcaption>}\n </figure>\n </>\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", "Fragment", "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.3",
|
|
4
4
|
"author": "Mike Barkmin",
|
|
5
5
|
"homepage": "https://github.com/openpatch/hyperbook#readme",
|
|
6
6
|
"license": "MIT",
|
|
@@ -28,40 +28,41 @@
|
|
|
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",
|
|
63
|
+
"ncp": "^2.0.0",
|
|
59
64
|
"react": "18.2.0",
|
|
60
65
|
"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
66
|
"vitest": "^0.30.0"
|
|
66
67
|
},
|
|
67
68
|
"scripts": {
|
|
@@ -69,7 +70,7 @@
|
|
|
69
70
|
"lint": "tsc --noEmit",
|
|
70
71
|
"test": "vitest",
|
|
71
72
|
"build": "rimraf dist && pnpm build:pkg && pnpm build:types",
|
|
72
|
-
"build:pkg": "node ../../scripts/build.mjs &&
|
|
73
|
+
"build:pkg": "node ../../scripts/build.mjs && ncp assets dist/assets",
|
|
73
74
|
"build:types": "tsc --project tsconfig.build.json --declaration --emitDeclarationOnly"
|
|
74
75
|
}
|
|
75
76
|
}
|