myst-to-react 0.9.10 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MyST.d.ts +2 -0
- package/dist/MyST.d.ts.map +1 -1
- package/dist/MyST.js +11 -4
- package/dist/admonitions.d.ts +2 -1
- package/dist/admonitions.d.ts.map +1 -1
- package/dist/admonitions.js +6 -5
- package/dist/basic.js +2 -2
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -2
- package/dist/links/index.d.ts +7 -6
- package/dist/links/index.d.ts.map +1 -1
- package/dist/links/index.js +34 -18
- package/package.json +3 -3
package/dist/MyST.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { NodeRenderersValidated } from '@myst-theme/providers';
|
|
1
2
|
import type { GenericNode } from 'myst-common';
|
|
3
|
+
export declare function selectRenderer(renderers: NodeRenderersValidated, node: GenericNode): import("@myst-theme/providers").NodeRenderer<any>;
|
|
2
4
|
export declare function MyST({ ast }: {
|
|
3
5
|
ast?: GenericNode | GenericNode[];
|
|
4
6
|
}): import("react/jsx-runtime").JSX.Element | null;
|
package/dist/MyST.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyST.d.ts","sourceRoot":"","sources":["../src/MyST.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;CAAE,kDAelE"}
|
|
1
|
+
{"version":3,"file":"MyST.d.ts","sourceRoot":"","sources":["../src/MyST.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,wBAAgB,cAAc,CAAC,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,qDAMlF;AAED,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;CAAE,kDAelE"}
|
package/dist/MyST.js
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { matches } from 'unist-util-select';
|
|
2
3
|
import { useNodeRenderers } from '@myst-theme/providers';
|
|
3
4
|
function DefaultComponent({ node }) {
|
|
4
5
|
if (!node.children)
|
|
5
6
|
return _jsx("span", { children: node.value });
|
|
6
7
|
return (_jsx("div", { children: _jsx(MyST, { ast: node.children }) }));
|
|
7
8
|
}
|
|
9
|
+
export function selectRenderer(renderers, node) {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
const componentRenderers = (_a = renderers[node.type]) !== null && _a !== void 0 ? _a : renderers['DefaultComponent'];
|
|
12
|
+
const SpecificComponent = (_b = Object.entries(componentRenderers !== null && componentRenderers !== void 0 ? componentRenderers : {})
|
|
13
|
+
.reverse()
|
|
14
|
+
.find(([selector]) => selector !== 'base' && matches(selector, node))) === null || _b === void 0 ? void 0 : _b[1];
|
|
15
|
+
return (_c = SpecificComponent !== null && SpecificComponent !== void 0 ? SpecificComponent : componentRenderers === null || componentRenderers === void 0 ? void 0 : componentRenderers.base) !== null && _c !== void 0 ? _c : DefaultComponent;
|
|
16
|
+
}
|
|
8
17
|
export function MyST({ ast }) {
|
|
9
|
-
var _a, _b;
|
|
10
18
|
const renderers = useNodeRenderers();
|
|
11
19
|
if (!ast || ast.length === 0)
|
|
12
20
|
return null;
|
|
13
21
|
if (!Array.isArray(ast)) {
|
|
14
|
-
const Component = (
|
|
22
|
+
const Component = selectRenderer(renderers, ast);
|
|
15
23
|
return _jsx(Component, { node: ast }, ast.key);
|
|
16
24
|
}
|
|
17
25
|
return (_jsx(_Fragment, { children: ast === null || ast === void 0 ? void 0 : ast.map((node) => {
|
|
18
|
-
|
|
19
|
-
const Component = (_a = renderers[node.type]) !== null && _a !== void 0 ? _a : DefaultComponent;
|
|
26
|
+
const Component = selectRenderer(renderers, node);
|
|
20
27
|
return _jsx(Component, { node: node }, node.key);
|
|
21
28
|
}) }));
|
|
22
29
|
}
|
package/dist/admonitions.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare enum AdmonitionKind {
|
|
|
16
16
|
}
|
|
17
17
|
type Color = 'blue' | 'green' | 'yellow' | 'red';
|
|
18
18
|
export declare const AdmonitionTitle: NodeRenderer<AdmonitionTitleSpec>;
|
|
19
|
-
export declare function Admonition({ title, kind, color, simple, dropdown, children, hideIcon, className, }: {
|
|
19
|
+
export declare function Admonition({ title, kind, color, simple, dropdown, children, hideIcon, className, open, }: {
|
|
20
20
|
title?: React.ReactNode;
|
|
21
21
|
color?: Color;
|
|
22
22
|
kind?: AdmonitionKind;
|
|
@@ -25,6 +25,7 @@ export declare function Admonition({ title, kind, color, simple, dropdown, child
|
|
|
25
25
|
dropdown?: boolean;
|
|
26
26
|
hideIcon?: boolean;
|
|
27
27
|
className?: string;
|
|
28
|
+
open?: boolean;
|
|
28
29
|
}): import("react/jsx-runtime").JSX.Element;
|
|
29
30
|
export declare const AdmonitionRenderer: NodeRenderer<AdmonitionSpec>;
|
|
30
31
|
declare const ADMONITION_RENDERERS: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admonitions.d.ts","sourceRoot":"","sources":["../src/admonitions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAC5B,eAAe,IAAI,mBAAmB,EACvC,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAsB1D,oBAAY,cAAc;IACxB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAyEjD,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,mBAAmB,CAE7D,CAAC;
|
|
1
|
+
{"version":3,"file":"admonitions.d.ts","sourceRoot":"","sources":["../src/admonitions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAC5B,eAAe,IAAI,mBAAmB,EACvC,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAsB1D,oBAAY,cAAc;IACxB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAyEjD,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,mBAAmB,CAE7D,CAAC;AAmCF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,IAAI,GACL,EAAE;IACD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,2CAuEA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAyB3D,CAAC;AAEF,QAAA,MAAM,oBAAoB;;;CAGzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
package/dist/admonitions.js
CHANGED
|
@@ -86,9 +86,9 @@ function AdmonitionIcon({ kind, className }) {
|
|
|
86
86
|
export const AdmonitionTitle = ({ node }) => {
|
|
87
87
|
return _jsx(MyST, { ast: node.children });
|
|
88
88
|
};
|
|
89
|
-
const WrapperElement = ({ dropdown, className, children, }) => {
|
|
89
|
+
const WrapperElement = ({ dropdown, className, children, open, }) => {
|
|
90
90
|
if (dropdown)
|
|
91
|
-
return _jsx("details", { className: className, children: children });
|
|
91
|
+
return (_jsx("details", { className: className, open: open, children: children }));
|
|
92
92
|
return _jsx("aside", { className: className, children: children });
|
|
93
93
|
};
|
|
94
94
|
const HeaderElement = ({ dropdown, className, children, }) => {
|
|
@@ -96,8 +96,8 @@ const HeaderElement = ({ dropdown, className, children, }) => {
|
|
|
96
96
|
return _jsx("summary", { className: className, children: children });
|
|
97
97
|
return _jsx("div", { className: className, children: children });
|
|
98
98
|
};
|
|
99
|
-
export function Admonition({ title, kind, color, simple, dropdown, children, hideIcon, className, }) {
|
|
100
|
-
return (_jsxs(WrapperElement, { dropdown: dropdown, className: classNames('my-5 shadow-md dark:shadow-2xl dark:shadow-neutral-900', 'bg-gray-50/10 dark:bg-stone-800', 'overflow-hidden', {
|
|
99
|
+
export function Admonition({ title, kind, color, simple, dropdown, children, hideIcon, className, open, }) {
|
|
100
|
+
return (_jsxs(WrapperElement, { dropdown: dropdown, open: open, className: classNames('my-5 shadow-md dark:shadow-2xl dark:shadow-neutral-900', 'bg-gray-50/10 dark:bg-stone-800', 'overflow-hidden', {
|
|
101
101
|
'rounded border-l-4': !simple,
|
|
102
102
|
'border-l-2': simple,
|
|
103
103
|
'border-blue-500': !color || color === 'blue',
|
|
@@ -128,8 +128,9 @@ export const AdmonitionRenderer = ({ node }) => {
|
|
|
128
128
|
const isDropdown = classes.includes('dropdown');
|
|
129
129
|
const isSimple = classes.includes('simple');
|
|
130
130
|
const hideIcon = node.icon === false;
|
|
131
|
+
const isOpen = node.open === true;
|
|
131
132
|
const useTitle = (title === null || title === void 0 ? void 0 : title.type) === 'admonitionTitle';
|
|
132
|
-
return (_jsx(Admonition, { title: useTitle ? _jsx(MyST, { ast: [title] }) : undefined, kind: kind, color: color, dropdown: isDropdown, simple: isSimple, hideIcon: hideIcon, className: classNames(classes), children: useTitle ? _jsx(MyST, { ast: rest }) : _jsx(MyST, { ast: node.children }) }));
|
|
133
|
+
return (_jsx(Admonition, { title: useTitle ? _jsx(MyST, { ast: [title] }) : undefined, kind: kind, color: color, dropdown: isDropdown, open: isOpen, simple: isSimple, hideIcon: hideIcon, className: classNames(classes), children: useTitle ? _jsx(MyST, { ast: rest }) : _jsx(MyST, { ast: node.children }) }));
|
|
133
134
|
};
|
|
134
135
|
const ADMONITION_RENDERERS = {
|
|
135
136
|
admonition: AdmonitionRenderer,
|
package/dist/basic.js
CHANGED
|
@@ -16,10 +16,10 @@ const BASIC_RENDERERS = {
|
|
|
16
16
|
return (_jsx(_Fragment, { children: text.map((v, i) => (_jsxs(React.Fragment, { children: [v, i < text.length - 1 && _jsx("wbr", {})] }, i))) }));
|
|
17
17
|
},
|
|
18
18
|
span({ node }) {
|
|
19
|
-
return (_jsx("span", { className: node.class, style: node.style, children: _jsx(MyST, { ast: node.children }) }));
|
|
19
|
+
return (_jsx("span", { className: node.class, style: node.style, id: node.html_id, children: _jsx(MyST, { ast: node.children }) }));
|
|
20
20
|
},
|
|
21
21
|
div({ node }) {
|
|
22
|
-
return (_jsx("div", { className: node.class, style: node.style, children: _jsx(MyST, { ast: node.children }) }));
|
|
22
|
+
return (_jsx("div", { className: node.class, style: node.style, id: node.html_id, children: _jsx(MyST, { ast: node.children }) }));
|
|
23
23
|
},
|
|
24
24
|
delete({ node }) {
|
|
25
25
|
return (_jsx("del", { children: _jsx(MyST, { ast: node.children }) }));
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { NodeRenderer } from '@myst-theme/providers';
|
|
2
1
|
export { CopyIcon, HoverPopover, Tooltip, LinkCard } from './components/index.js';
|
|
3
2
|
export { CodeBlock } from './code.js';
|
|
4
3
|
export { HashLink, scrollToElement } from './hashLink.js';
|
|
@@ -6,6 +5,6 @@ export { Admonition, AdmonitionKind } from './admonitions.js';
|
|
|
6
5
|
export { Details } from './dropdown.js';
|
|
7
6
|
export { TabSet, TabItem } from './tabs.js';
|
|
8
7
|
export { useFetchMdast } from './crossReference.js';
|
|
9
|
-
export declare const DEFAULT_RENDERERS:
|
|
10
|
-
export { MyST } from './MyST.js';
|
|
8
|
+
export declare const DEFAULT_RENDERERS: import("@myst-theme/providers").NodeRenderersValidated;
|
|
9
|
+
export { MyST, selectRenderer } from './MyST.js';
|
|
11
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,eAAO,MAAM,iBAAiB,wDA0B7B,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mergeRenderers } from '@myst-theme/providers';
|
|
1
2
|
import BASIC_RENDERERS from './basic.js';
|
|
2
3
|
import ADMONITION_RENDERERS from './admonitions.js';
|
|
3
4
|
import DROPDOWN_RENDERERS from './dropdown.js';
|
|
@@ -27,5 +28,28 @@ export { Admonition, AdmonitionKind } from './admonitions.js';
|
|
|
27
28
|
export { Details } from './dropdown.js';
|
|
28
29
|
export { TabSet, TabItem } from './tabs.js';
|
|
29
30
|
export { useFetchMdast } from './crossReference.js';
|
|
30
|
-
export const DEFAULT_RENDERERS =
|
|
31
|
-
|
|
31
|
+
export const DEFAULT_RENDERERS = mergeRenderers([
|
|
32
|
+
BASIC_RENDERERS,
|
|
33
|
+
UNKNOWN_MYST_RENDERERS,
|
|
34
|
+
IMAGE_RENDERERS,
|
|
35
|
+
LINK_RENDERERS,
|
|
36
|
+
CODE_RENDERERS,
|
|
37
|
+
MATH_RENDERERS,
|
|
38
|
+
CITE_RENDERERS,
|
|
39
|
+
TAB_RENDERERS,
|
|
40
|
+
IFRAME_RENDERERS,
|
|
41
|
+
FOOTNOTE_RENDERERS,
|
|
42
|
+
ADMONITION_RENDERERS,
|
|
43
|
+
REACTIVE_RENDERERS,
|
|
44
|
+
HEADING_RENDERERS,
|
|
45
|
+
CROSS_REFERENCE_RENDERERS,
|
|
46
|
+
DROPDOWN_RENDERERS,
|
|
47
|
+
CARD_RENDERERS,
|
|
48
|
+
GRID_RENDERERS,
|
|
49
|
+
INLINE_EXPRESSION_RENDERERS,
|
|
50
|
+
EXT_RENDERERS,
|
|
51
|
+
PROOF_RENDERERS,
|
|
52
|
+
EXERCISE_RENDERERS,
|
|
53
|
+
ASIDE_RENDERERS,
|
|
54
|
+
], true);
|
|
55
|
+
export { MyST, selectRenderer } from './MyST.js';
|
package/dist/links/index.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { Link } from 'myst-spec';
|
|
2
|
-
import type { NodeRenderer } from '@myst-theme/providers';
|
|
2
|
+
import type { NodeRenderer, NodeRenderers } from '@myst-theme/providers';
|
|
3
3
|
type TransformedLink = Link & {
|
|
4
4
|
internal?: boolean;
|
|
5
5
|
protocol?: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const WikiLinkRenderer: NodeRenderer<TransformedLink>;
|
|
8
|
+
export declare const GithubLinkRenderer: NodeRenderer<TransformedLink>;
|
|
9
|
+
export declare const RRIDLinkRenderer: NodeRenderer<TransformedLink>;
|
|
10
|
+
export declare const RORLinkRenderer: NodeRenderer<TransformedLink>;
|
|
11
|
+
export declare const SimpleLink: NodeRenderer<TransformedLink>;
|
|
8
12
|
export declare const linkBlock: NodeRenderer<TransformedLink>;
|
|
9
|
-
declare const LINK_RENDERERS:
|
|
10
|
-
link: NodeRenderer<TransformedLink>;
|
|
11
|
-
linkBlock: NodeRenderer<TransformedLink>;
|
|
12
|
-
};
|
|
13
|
+
declare const LINK_RENDERERS: NodeRenderers;
|
|
13
14
|
export default LINK_RENDERERS;
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/links/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/links/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOtC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQzE,KAAK,eAAe,GAAG,IAAI,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA0CxE,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,eAAe,CAM1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,eAAe,CAgB5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,eAAe,CAE1D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,eAAe,CAEzD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,eAAe,CAcpD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,eAAe,CA8BnD,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,aAerB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
package/dist/links/index.js
CHANGED
|
@@ -28,25 +28,29 @@ function InternalLink({ url, children }) {
|
|
|
28
28
|
}
|
|
29
29
|
return (_jsx(HoverPopover, { card: _jsx(LinkCard, { internal: true, url: url, title: page.title, description: page.description, thumbnail: page.thumbnailOptimized || page.thumbnail }), children: _jsx(Link, { to: withBaseurl(url, baseurl), prefetch: "intent", children: children }) }));
|
|
30
30
|
}
|
|
31
|
-
export const
|
|
32
|
-
var _a, _b
|
|
31
|
+
export const WikiLinkRenderer = ({ node }) => {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
return (_jsx(WikiLink, { url: node.url, page: (_a = node.data) === null || _a === void 0 ? void 0 : _a.page, wiki: (_b = node.data) === null || _b === void 0 ? void 0 : _b.wiki, children: _jsx(MyST, { ast: node.children }) }));
|
|
34
|
+
};
|
|
35
|
+
export const GithubLinkRenderer = ({ node }) => {
|
|
36
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
37
|
+
return (_jsx(GithubLink, { kind: (_a = node.data) === null || _a === void 0 ? void 0 : _a.kind, url: node.url, org: (_b = node.data) === null || _b === void 0 ? void 0 : _b.org, repo: (_c = node.data) === null || _c === void 0 ? void 0 : _c.repo, raw: (_d = node.data) === null || _d === void 0 ? void 0 : _d.raw, file: (_e = node.data) === null || _e === void 0 ? void 0 : _e.file, from: (_f = node.data) === null || _f === void 0 ? void 0 : _f.from, to: (_g = node.data) === null || _g === void 0 ? void 0 : _g.to, issue_number: (_h = node.data) === null || _h === void 0 ? void 0 : _h.issue_number, children: _jsx(MyST, { ast: node.children }) }));
|
|
38
|
+
};
|
|
39
|
+
export const RRIDLinkRenderer = ({ node }) => {
|
|
40
|
+
var _a;
|
|
41
|
+
return (_jsx(RRIDLink, { rrid: (_a = node.data) === null || _a === void 0 ? void 0 : _a.rrid }));
|
|
42
|
+
};
|
|
43
|
+
export const RORLinkRenderer = ({ node }) => {
|
|
44
|
+
var _a;
|
|
45
|
+
return (_jsx(RORLink, { node: node, ror: (_a = node.data) === null || _a === void 0 ? void 0 : _a.ror }));
|
|
46
|
+
};
|
|
47
|
+
export const SimpleLink = ({ node }) => {
|
|
48
|
+
var _a;
|
|
33
49
|
const internal = (_a = node.internal) !== null && _a !== void 0 ? _a : false;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
case 'wiki':
|
|
37
|
-
return (_jsx(WikiLink, { url: node.url, page: (_b = node.data) === null || _b === void 0 ? void 0 : _b.page, wiki: (_c = node.data) === null || _c === void 0 ? void 0 : _c.wiki, children: _jsx(MyST, { ast: node.children }) }));
|
|
38
|
-
case 'github':
|
|
39
|
-
return (_jsx(GithubLink, { kind: (_d = node.data) === null || _d === void 0 ? void 0 : _d.kind, url: node.url, org: (_e = node.data) === null || _e === void 0 ? void 0 : _e.org, repo: (_f = node.data) === null || _f === void 0 ? void 0 : _f.repo, raw: (_g = node.data) === null || _g === void 0 ? void 0 : _g.raw, file: (_h = node.data) === null || _h === void 0 ? void 0 : _h.file, from: (_j = node.data) === null || _j === void 0 ? void 0 : _j.from, to: (_k = node.data) === null || _k === void 0 ? void 0 : _k.to, issue_number: (_l = node.data) === null || _l === void 0 ? void 0 : _l.issue_number, children: _jsx(MyST, { ast: node.children }) }));
|
|
40
|
-
case 'rrid':
|
|
41
|
-
return _jsx(RRIDLink, { rrid: (_m = node.data) === null || _m === void 0 ? void 0 : _m.rrid });
|
|
42
|
-
case 'ror':
|
|
43
|
-
return _jsx(RORLink, { node: node, ror: (_o = node.data) === null || _o === void 0 ? void 0 : _o.ror });
|
|
44
|
-
default:
|
|
45
|
-
if (internal) {
|
|
46
|
-
return (_jsx(InternalLink, { url: node.url, children: _jsx(MyST, { ast: node.children }) }));
|
|
47
|
-
}
|
|
48
|
-
return (_jsx("a", { target: "_blank", href: node.url, rel: "noreferrer", children: _jsx(MyST, { ast: node.children }) }));
|
|
50
|
+
if (internal) {
|
|
51
|
+
return (_jsx(InternalLink, { url: node.url, children: _jsx(MyST, { ast: node.children }) }));
|
|
49
52
|
}
|
|
53
|
+
return (_jsx("a", { target: "_blank", href: node.url, rel: "noreferrer", children: _jsx(MyST, { ast: node.children }) }));
|
|
50
54
|
};
|
|
51
55
|
export const linkBlock = ({ node }) => {
|
|
52
56
|
var _a;
|
|
@@ -60,7 +64,19 @@ export const linkBlock = ({ node }) => {
|
|
|
60
64
|
return (_jsx("a", { className: containerClass, target: "_blank", rel: "noopener noreferrer", href: node.url, children: nested }));
|
|
61
65
|
};
|
|
62
66
|
const LINK_RENDERERS = {
|
|
63
|
-
link
|
|
67
|
+
link: {
|
|
68
|
+
base: SimpleLink,
|
|
69
|
+
// Then duplicate the renderers for protocols
|
|
70
|
+
'link[protocol=github]': GithubLinkRenderer,
|
|
71
|
+
'link[protocol=wiki]': WikiLinkRenderer,
|
|
72
|
+
'link[protocol=rrid]': RRIDLinkRenderer,
|
|
73
|
+
'link[protocol=ror]': RORLinkRenderer,
|
|
74
|
+
// Put the kinds last as they will match first in the future
|
|
75
|
+
'link[kind=github]': GithubLinkRenderer,
|
|
76
|
+
'link[kind=wiki]': WikiLinkRenderer,
|
|
77
|
+
'link[kind=rrid]': RRIDLinkRenderer,
|
|
78
|
+
'link[kind=ror]': RORLinkRenderer,
|
|
79
|
+
},
|
|
64
80
|
linkBlock,
|
|
65
81
|
};
|
|
66
82
|
export default LINK_RENDERERS;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myst-to-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@heroicons/react": "^2.0.18",
|
|
24
|
-
"@myst-theme/providers": "^0.
|
|
24
|
+
"@myst-theme/providers": "^0.11.0",
|
|
25
25
|
"@scienceicons/react": "^0.0.6",
|
|
26
26
|
"@radix-ui/react-hover-card": "^1.0.6",
|
|
27
27
|
"buffer": "^6.0.3",
|
|
28
28
|
"classnames": "^2.3.2",
|
|
29
|
-
"myst-common": "^1.
|
|
29
|
+
"myst-common": "^1.6.0",
|
|
30
30
|
"myst-config": "^1.5.0",
|
|
31
31
|
"myst-spec": "^0.0.5",
|
|
32
32
|
"nanoid": "^4.0.2",
|