@hackersheet/react-document-content 0.1.0-alpha.13 → 0.1.0-alpha.14
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/component-resolvers/a-component-resolver.js +40 -1
- package/dist/component-resolvers/a-component-resolver.mjs +10 -1
- package/dist/component-resolvers/gist-component-resolver.js +57 -1
- package/dist/component-resolvers/gist-component-resolver.mjs +27 -1
- package/dist/component-resolvers/heading-component-resolver.js +46 -1
- package/dist/component-resolvers/heading-component-resolver.mjs +16 -1
- package/dist/component-resolvers/img-component-resolver.js +47 -1
- package/dist/component-resolvers/img-component-resolver.mjs +17 -1
- package/dist/component-resolvers/index.js +62 -1
- package/dist/component-resolvers/index.mjs +20 -1
- package/dist/component-resolvers/kifu-to-component-resolver.js +43 -1
- package/dist/component-resolvers/kifu-to-component-resolver.mjs +13 -1
- package/dist/component-resolvers/link-card-component-resolver.js +65 -1
- package/dist/component-resolvers/link-card-component-resolver.mjs +35 -1
- package/dist/component-resolvers/pre-component-resolver.js +73 -1
- package/dist/component-resolvers/pre-component-resolver.mjs +43 -1
- package/dist/component-resolvers/x-post-component-resolver.js +53 -1
- package/dist/component-resolvers/x-post-component-resolver.mjs +23 -1
- package/dist/component-resolvers/youtube-component-resolver.js +61 -1
- package/dist/component-resolvers/youtube-component-resolver.mjs +31 -1
- package/dist/components/code-block/code-block.js +37 -1
- package/dist/components/code-block/code-block.mjs +7 -1
- package/dist/components/gist/gist.js +37 -1
- package/dist/components/gist/gist.mjs +7 -1
- package/dist/components/heading/heading.js +37 -1
- package/dist/components/heading/heading.mjs +7 -1
- package/dist/components/image/image.js +37 -1
- package/dist/components/image/image.mjs +7 -1
- package/dist/components/index.js +62 -1
- package/dist/components/index.mjs +20 -1
- package/dist/components/kifu-to/kifu-to.js +40 -1
- package/dist/components/kifu-to/kifu-to.mjs +10 -1
- package/dist/components/link/link.js +37 -1
- package/dist/components/link/link.mjs +7 -1
- package/dist/components/link-card/link-card.js +37 -1
- package/dist/components/link-card/link-card.mjs +7 -1
- package/dist/components/x-post/x-post.js +37 -1
- package/dist/components/x-post/x-post.mjs +7 -1
- package/dist/components/youtube/youtube.js +37 -1
- package/dist/components/youtube/youtube.mjs +7 -1
- package/dist/document-content.js +109 -1
- package/dist/document-content.mjs +85 -1
- package/dist/index.js +28 -1
- package/dist/index.mjs +4 -1
- package/dist/rehype-plugins/index.js +44 -1
- package/dist/rehype-plugins/index.mjs +8 -1
- package/dist/rehype-plugins/process-internal-links.js +76 -1
- package/dist/rehype-plugins/process-internal-links.mjs +46 -1
- package/dist/rehype-plugins/rehype-clobber-url-decode.js +35 -1
- package/dist/rehype-plugins/rehype-clobber-url-decode.mjs +15 -1
- package/dist/rehype-plugins/rehype-footnote-links.js +37 -1
- package/dist/rehype-plugins/rehype-footnote-links.mjs +17 -1
- package/dist/utils/index.js +38 -1
- package/dist/utils/index.mjs +4 -1
- package/dist/utils/is-url.js +31 -1
- package/dist/utils/is-url.mjs +11 -1
- package/package.json +5 -5
- package/dist/chunk-3T5XKKF2.mjs +0 -1
- package/dist/chunk-3VNFD2PT.mjs +0 -1
- package/dist/chunk-4AECATS3.mjs +0 -1
- package/dist/chunk-73TKYZKK.mjs +0 -0
- package/dist/chunk-BKU6TR65.mjs +0 -1
- package/dist/chunk-DMHUI7N4.mjs +0 -1
- package/dist/chunk-EW2BRESH.mjs +0 -0
- package/dist/chunk-GBGPKOHZ.mjs +0 -1
- package/dist/chunk-HZCV33BD.mjs +0 -1
- package/dist/chunk-IBSO6OTV.mjs +0 -1
- package/dist/chunk-KBFID3JF.mjs +0 -1
- package/dist/chunk-KHY6ACRD.mjs +0 -1
- package/dist/chunk-KWMHEAK7.mjs +0 -1
- package/dist/chunk-LH6PDTY7.mjs +0 -1
- package/dist/chunk-LSMKHHUW.mjs +0 -1
- package/dist/chunk-N7IDTKXU.mjs +0 -1
- package/dist/chunk-O2ZRKYA4.mjs +0 -0
- package/dist/chunk-O73IQILA.mjs +0 -1
- package/dist/chunk-PRANC7GD.mjs +0 -1
- package/dist/chunk-Q5S4HHFX.mjs +0 -1
- package/dist/chunk-SZ4JBPX3.mjs +0 -1
- package/dist/chunk-T5IU4GT3.mjs +0 -1
- package/dist/chunk-V3EETEZ2.mjs +0 -1
- package/dist/chunk-VAJW32XH.mjs +0 -1
- package/dist/chunk-VQ6LMBM5.mjs +0 -1
- package/dist/chunk-WCR2TQ7A.mjs +0 -1
- package/dist/chunk-X6VPHWKN.mjs +0 -0
|
@@ -1 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var link_card_exports = {};
|
|
30
|
+
__export(link_card_exports, {
|
|
31
|
+
default: () => LinkCard
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(link_card_exports);
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
function LinkCard({ url, title }) {
|
|
36
|
+
return /* @__PURE__ */ import_react.default.createElement("p", null, /* @__PURE__ */ import_react.default.createElement("a", { href: url }, title));
|
|
37
|
+
}
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
|
+
function LinkCard({ url, title }) {
|
|
3
|
+
return /* @__PURE__ */ React.createElement("p", null, /* @__PURE__ */ React.createElement("a", { href: url }, title));
|
|
4
|
+
}
|
|
5
|
+
export {
|
|
6
|
+
LinkCard as default
|
|
7
|
+
};
|
|
@@ -1 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var x_post_exports = {};
|
|
30
|
+
__export(x_post_exports, {
|
|
31
|
+
default: () => XPost
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(x_post_exports);
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
function XPost({ children }) {
|
|
36
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, children);
|
|
37
|
+
}
|
|
@@ -1 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var youtube_exports = {};
|
|
30
|
+
__export(youtube_exports, {
|
|
31
|
+
default: () => Youtube
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(youtube_exports);
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
function Youtube({ children }) {
|
|
36
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, children);
|
|
37
|
+
}
|
package/dist/document-content.js
CHANGED
|
@@ -1 +1,109 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var document_content_exports = {};
|
|
30
|
+
__export(document_content_exports, {
|
|
31
|
+
DocumentContent: () => DocumentContent
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(document_content_exports);
|
|
34
|
+
var import_deepmerge = __toESM(require("deepmerge"));
|
|
35
|
+
var import_react = __toESM(require("react"));
|
|
36
|
+
var import_react_markdown = __toESM(require("react-markdown"));
|
|
37
|
+
var import_rehype_github_alerts = require("rehype-github-alerts");
|
|
38
|
+
var import_rehype_katex = __toESM(require("rehype-katex"));
|
|
39
|
+
var import_rehype_raw = __toESM(require("rehype-raw"));
|
|
40
|
+
var import_rehype_sanitize = __toESM(require("rehype-sanitize"));
|
|
41
|
+
var import_rehype_slug = __toESM(require("rehype-slug"));
|
|
42
|
+
var import_remark_directive = __toESM(require("remark-directive"));
|
|
43
|
+
var import_remark_directive_rehype = __toESM(require("remark-directive-rehype"));
|
|
44
|
+
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
45
|
+
var import_remark_math = __toESM(require("remark-math"));
|
|
46
|
+
var import_component_resolvers = require("./component-resolvers");
|
|
47
|
+
var import_components = require("./components");
|
|
48
|
+
var import_rehype_plugins = require("./rehype-plugins");
|
|
49
|
+
function DocumentContent({ document, tree, permaLinkFormat, style, components }) {
|
|
50
|
+
const sanitizeSchema = (0, import_deepmerge.default)(import_rehype_sanitize.defaultSchema, {
|
|
51
|
+
attributes: { div: [["className", /^sr-only$/]], gist: [["filename"]] },
|
|
52
|
+
tagNames: ["gist", "link-card", "x-post", "youtube", "kifu-to"]
|
|
53
|
+
});
|
|
54
|
+
const CodeBlockComponent = components?.codeBlock ?? import_components.CodeBlock;
|
|
55
|
+
const DirectoryTreeComponent = components?.directoryTree;
|
|
56
|
+
const GistComponent = components?.gist ?? import_components.Gist;
|
|
57
|
+
const HeadingComponent = components?.heading ?? import_components.Heading;
|
|
58
|
+
const ImageComponent = components?.image ?? import_components.Image;
|
|
59
|
+
const KifuComponent = components?.kifu;
|
|
60
|
+
const KifuToComponent = components?.kifuTo ?? import_components.KifuTo;
|
|
61
|
+
const LinkCardComponent = components?.linkCard ?? import_components.LinkCard;
|
|
62
|
+
const LinkComponent = components?.link ?? import_components.Link;
|
|
63
|
+
const MermaidComponent = components?.mermaid;
|
|
64
|
+
const XPostComponent = components?.xPost ?? import_components.XPost;
|
|
65
|
+
const YoutubeComponent = components?.youtube ?? import_components.Youtube;
|
|
66
|
+
const docTree = tree;
|
|
67
|
+
const options = {
|
|
68
|
+
remarkRehypeOptions: { footnoteLabelTagName: "div", clobberPrefix: "" },
|
|
69
|
+
remarkPlugins: [import_remark_gfm.default, import_remark_math.default, import_remark_directive.default, import_remark_directive_rehype.default],
|
|
70
|
+
rehypePlugins: [
|
|
71
|
+
import_rehype_raw.default,
|
|
72
|
+
[import_rehype_sanitize.default, sanitizeSchema],
|
|
73
|
+
import_rehype_slug.default,
|
|
74
|
+
import_rehype_katex.default,
|
|
75
|
+
[import_rehype_plugins.processInternalLinks, { document, permaLinkFormat, docTree }],
|
|
76
|
+
import_rehype_plugins.rehypeFootnoteLinks,
|
|
77
|
+
import_rehype_plugins.rehypeClobberUrlDecode,
|
|
78
|
+
import_rehype_github_alerts.rehypeGithubAlerts
|
|
79
|
+
],
|
|
80
|
+
components: {
|
|
81
|
+
"kifu-to": (props) => (0, import_component_resolvers.KifuToComponentResolver)({ ...props, document, KifuToComponent }),
|
|
82
|
+
"link-card": (props) => (0, import_component_resolvers.LinkCardComponentResolver)({ ...props, document, LinkCardComponent }),
|
|
83
|
+
"x-post": (props) => (0, import_component_resolvers.XPostComponentResolver)({ ...props, document, XPostComponent }),
|
|
84
|
+
a: (props) => (0, import_component_resolvers.AComponentResolver)({ ...props, document, LinkComponent }),
|
|
85
|
+
gist: (props) => (0, import_component_resolvers.GistComponentResolver)({ ...props, document, GistComponent }),
|
|
86
|
+
h1: (props) => (0, import_component_resolvers.HeadingComponentResolver)({ ...props, document, HeadingComponent }),
|
|
87
|
+
h2: (props) => (0, import_component_resolvers.HeadingComponentResolver)({ ...props, document, HeadingComponent }),
|
|
88
|
+
h3: (props) => (0, import_component_resolvers.HeadingComponentResolver)({ ...props, document, HeadingComponent }),
|
|
89
|
+
h4: (props) => (0, import_component_resolvers.HeadingComponentResolver)({ ...props, document, HeadingComponent }),
|
|
90
|
+
h5: (props) => (0, import_component_resolvers.HeadingComponentResolver)({ ...props, document, HeadingComponent }),
|
|
91
|
+
h6: (props) => (0, import_component_resolvers.HeadingComponentResolver)({ ...props, document, HeadingComponent }),
|
|
92
|
+
img: (props) => (0, import_component_resolvers.ImgComponentResolver)({ ...props, document, ImageComponent }),
|
|
93
|
+
pre: (props) => (0, import_component_resolvers.PreComponentResolver)({
|
|
94
|
+
...props,
|
|
95
|
+
document,
|
|
96
|
+
CodeBlockComponent,
|
|
97
|
+
KifuComponent,
|
|
98
|
+
MermaidComponent,
|
|
99
|
+
DirectoryTreeComponent
|
|
100
|
+
}),
|
|
101
|
+
youtube: (props) => (0, import_component_resolvers.YoutubeComponentResolver)({ ...props, document, YoutubeComponent })
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { className: style && style.main }, /* @__PURE__ */ import_react.default.createElement(import_react_markdown.default, { ...options }, document.content));
|
|
105
|
+
}
|
|
106
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
107
|
+
0 && (module.exports = {
|
|
108
|
+
DocumentContent
|
|
109
|
+
});
|
|
@@ -1 +1,85 @@
|
|
|
1
|
-
import
|
|
1
|
+
import deepmerge from "deepmerge";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import Markdown from "react-markdown";
|
|
4
|
+
import { rehypeGithubAlerts } from "rehype-github-alerts";
|
|
5
|
+
import rehypeKatex from "rehype-katex";
|
|
6
|
+
import rehypeRaw from "rehype-raw";
|
|
7
|
+
import rehypeSanitize, { defaultSchema } from "rehype-sanitize";
|
|
8
|
+
import rehypeSlug from "rehype-slug";
|
|
9
|
+
import remarkDirective from "remark-directive";
|
|
10
|
+
import remarkDirectiveRehype from "remark-directive-rehype";
|
|
11
|
+
import remarkGfm from "remark-gfm";
|
|
12
|
+
import remarkMath from "remark-math";
|
|
13
|
+
import {
|
|
14
|
+
AComponentResolver,
|
|
15
|
+
GistComponentResolver,
|
|
16
|
+
HeadingComponentResolver,
|
|
17
|
+
ImgComponentResolver,
|
|
18
|
+
KifuToComponentResolver,
|
|
19
|
+
LinkCardComponentResolver,
|
|
20
|
+
PreComponentResolver,
|
|
21
|
+
XPostComponentResolver,
|
|
22
|
+
YoutubeComponentResolver
|
|
23
|
+
} from "./component-resolvers";
|
|
24
|
+
import { Gist, Link, Heading, Image, CodeBlock, KifuTo, LinkCard, XPost, Youtube } from "./components";
|
|
25
|
+
import { processInternalLinks, rehypeClobberUrlDecode, rehypeFootnoteLinks } from "./rehype-plugins";
|
|
26
|
+
function DocumentContent({ document, tree, permaLinkFormat, style, components }) {
|
|
27
|
+
const sanitizeSchema = deepmerge(defaultSchema, {
|
|
28
|
+
attributes: { div: [["className", /^sr-only$/]], gist: [["filename"]] },
|
|
29
|
+
tagNames: ["gist", "link-card", "x-post", "youtube", "kifu-to"]
|
|
30
|
+
});
|
|
31
|
+
const CodeBlockComponent = components?.codeBlock ?? CodeBlock;
|
|
32
|
+
const DirectoryTreeComponent = components?.directoryTree;
|
|
33
|
+
const GistComponent = components?.gist ?? Gist;
|
|
34
|
+
const HeadingComponent = components?.heading ?? Heading;
|
|
35
|
+
const ImageComponent = components?.image ?? Image;
|
|
36
|
+
const KifuComponent = components?.kifu;
|
|
37
|
+
const KifuToComponent = components?.kifuTo ?? KifuTo;
|
|
38
|
+
const LinkCardComponent = components?.linkCard ?? LinkCard;
|
|
39
|
+
const LinkComponent = components?.link ?? Link;
|
|
40
|
+
const MermaidComponent = components?.mermaid;
|
|
41
|
+
const XPostComponent = components?.xPost ?? XPost;
|
|
42
|
+
const YoutubeComponent = components?.youtube ?? Youtube;
|
|
43
|
+
const docTree = tree;
|
|
44
|
+
const options = {
|
|
45
|
+
remarkRehypeOptions: { footnoteLabelTagName: "div", clobberPrefix: "" },
|
|
46
|
+
remarkPlugins: [remarkGfm, remarkMath, remarkDirective, remarkDirectiveRehype],
|
|
47
|
+
rehypePlugins: [
|
|
48
|
+
rehypeRaw,
|
|
49
|
+
[rehypeSanitize, sanitizeSchema],
|
|
50
|
+
rehypeSlug,
|
|
51
|
+
rehypeKatex,
|
|
52
|
+
[processInternalLinks, { document, permaLinkFormat, docTree }],
|
|
53
|
+
rehypeFootnoteLinks,
|
|
54
|
+
rehypeClobberUrlDecode,
|
|
55
|
+
rehypeGithubAlerts
|
|
56
|
+
],
|
|
57
|
+
components: {
|
|
58
|
+
"kifu-to": (props) => KifuToComponentResolver({ ...props, document, KifuToComponent }),
|
|
59
|
+
"link-card": (props) => LinkCardComponentResolver({ ...props, document, LinkCardComponent }),
|
|
60
|
+
"x-post": (props) => XPostComponentResolver({ ...props, document, XPostComponent }),
|
|
61
|
+
a: (props) => AComponentResolver({ ...props, document, LinkComponent }),
|
|
62
|
+
gist: (props) => GistComponentResolver({ ...props, document, GistComponent }),
|
|
63
|
+
h1: (props) => HeadingComponentResolver({ ...props, document, HeadingComponent }),
|
|
64
|
+
h2: (props) => HeadingComponentResolver({ ...props, document, HeadingComponent }),
|
|
65
|
+
h3: (props) => HeadingComponentResolver({ ...props, document, HeadingComponent }),
|
|
66
|
+
h4: (props) => HeadingComponentResolver({ ...props, document, HeadingComponent }),
|
|
67
|
+
h5: (props) => HeadingComponentResolver({ ...props, document, HeadingComponent }),
|
|
68
|
+
h6: (props) => HeadingComponentResolver({ ...props, document, HeadingComponent }),
|
|
69
|
+
img: (props) => ImgComponentResolver({ ...props, document, ImageComponent }),
|
|
70
|
+
pre: (props) => PreComponentResolver({
|
|
71
|
+
...props,
|
|
72
|
+
document,
|
|
73
|
+
CodeBlockComponent,
|
|
74
|
+
KifuComponent,
|
|
75
|
+
MermaidComponent,
|
|
76
|
+
DirectoryTreeComponent
|
|
77
|
+
}),
|
|
78
|
+
youtube: (props) => YoutubeComponentResolver({ ...props, document, YoutubeComponent })
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return /* @__PURE__ */ React.createElement("div", { className: style && style.main }, /* @__PURE__ */ React.createElement(Markdown, { ...options }, document.content));
|
|
82
|
+
}
|
|
83
|
+
export {
|
|
84
|
+
DocumentContent
|
|
85
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -1 +1,28 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var index_exports = {};
|
|
20
|
+
__export(index_exports, {
|
|
21
|
+
DocumentContent: () => import_document_content.DocumentContent
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(index_exports);
|
|
24
|
+
var import_document_content = require("./document-content");
|
|
25
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
26
|
+
0 && (module.exports = {
|
|
27
|
+
DocumentContent
|
|
28
|
+
});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1,4 @@
|
|
|
1
|
-
import{DocumentContent
|
|
1
|
+
import { DocumentContent } from "./document-content";
|
|
2
|
+
export {
|
|
3
|
+
DocumentContent
|
|
4
|
+
};
|
|
@@ -1 +1,44 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var rehype_plugins_exports = {};
|
|
30
|
+
__export(rehype_plugins_exports, {
|
|
31
|
+
processInternalLinks: () => import_process_internal_links.default,
|
|
32
|
+
rehypeClobberUrlDecode: () => import_rehype_clobber_url_decode.default,
|
|
33
|
+
rehypeFootnoteLinks: () => import_rehype_footnote_links.default
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(rehype_plugins_exports);
|
|
36
|
+
var import_process_internal_links = __toESM(require("./process-internal-links"));
|
|
37
|
+
var import_rehype_clobber_url_decode = __toESM(require("./rehype-clobber-url-decode"));
|
|
38
|
+
var import_rehype_footnote_links = __toESM(require("./rehype-footnote-links"));
|
|
39
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
+
0 && (module.exports = {
|
|
41
|
+
processInternalLinks,
|
|
42
|
+
rehypeClobberUrlDecode,
|
|
43
|
+
rehypeFootnoteLinks
|
|
44
|
+
});
|
|
@@ -1 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import processInternalLinks from "./process-internal-links";
|
|
2
|
+
import rehypeClobberUrlDecode from "./rehype-clobber-url-decode";
|
|
3
|
+
import rehypeFootnoteLinks from "./rehype-footnote-links";
|
|
4
|
+
export {
|
|
5
|
+
processInternalLinks,
|
|
6
|
+
rehypeClobberUrlDecode,
|
|
7
|
+
rehypeFootnoteLinks
|
|
8
|
+
};
|
|
@@ -1 +1,76 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var process_internal_links_exports = {};
|
|
30
|
+
__export(process_internal_links_exports, {
|
|
31
|
+
default: () => processInternalLinks
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(process_internal_links_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_mustache = __toESM(require("mustache"));
|
|
36
|
+
var import_unist_util_visit = require("unist-util-visit");
|
|
37
|
+
var import_utils = require("../utils");
|
|
38
|
+
function processInternalLinks({ document, permaLinkFormat, docTree }) {
|
|
39
|
+
return (tree) => {
|
|
40
|
+
(0, import_unist_util_visit.visit)(tree, "element", (element) => {
|
|
41
|
+
const link = element.properties.href || element.properties.src;
|
|
42
|
+
const tagName = element.tagName;
|
|
43
|
+
if (!link || typeof link !== "string" || (0, import_utils.isUrl)(link) || !document.path) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const baseDirname = `/${import_path.default.dirname(document.path)}`;
|
|
47
|
+
const [fullPath, anchor] = import_path.default.resolve(baseDirname, decodeURI(link)).replace(/^\//, "").split("#");
|
|
48
|
+
if (tagName === "a") {
|
|
49
|
+
if (docTree) {
|
|
50
|
+
const treeNode = docTree.flatNodes.find(
|
|
51
|
+
(node) => node.nodeDocuments.find((nodeDoc) => {
|
|
52
|
+
return nodeDoc.document?.path === fullPath;
|
|
53
|
+
})
|
|
54
|
+
);
|
|
55
|
+
if (treeNode) {
|
|
56
|
+
element.properties.href = import_mustache.default.render(permaLinkFormat, { slug: treeNode.fullSlug }) + (anchor ? `#${anchor}` : "");
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
const doc = document.outboundLinkDocuments.find((doc2) => doc2.path === fullPath);
|
|
60
|
+
if (doc) {
|
|
61
|
+
element.properties.href = import_mustache.default.render(permaLinkFormat, doc) + (anchor ? `#${anchor}` : "");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (tagName === "img") {
|
|
66
|
+
const asset = document.assets.find((asset2) => asset2.path === fullPath);
|
|
67
|
+
if (asset) {
|
|
68
|
+
element.properties.src = asset.fileUrl;
|
|
69
|
+
element.properties.height = asset.height;
|
|
70
|
+
element.properties.width = asset.width;
|
|
71
|
+
element.properties.alt = element.properties.alt || asset.name;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -1 +1,46 @@
|
|
|
1
|
-
import
|
|
1
|
+
import path from "path";
|
|
2
|
+
import Mustache from "mustache";
|
|
3
|
+
import { visit } from "unist-util-visit";
|
|
4
|
+
import { isUrl } from "../utils";
|
|
5
|
+
function processInternalLinks({ document, permaLinkFormat, docTree }) {
|
|
6
|
+
return (tree) => {
|
|
7
|
+
visit(tree, "element", (element) => {
|
|
8
|
+
const link = element.properties.href || element.properties.src;
|
|
9
|
+
const tagName = element.tagName;
|
|
10
|
+
if (!link || typeof link !== "string" || isUrl(link) || !document.path) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const baseDirname = `/${path.dirname(document.path)}`;
|
|
14
|
+
const [fullPath, anchor] = path.resolve(baseDirname, decodeURI(link)).replace(/^\//, "").split("#");
|
|
15
|
+
if (tagName === "a") {
|
|
16
|
+
if (docTree) {
|
|
17
|
+
const treeNode = docTree.flatNodes.find(
|
|
18
|
+
(node) => node.nodeDocuments.find((nodeDoc) => {
|
|
19
|
+
return nodeDoc.document?.path === fullPath;
|
|
20
|
+
})
|
|
21
|
+
);
|
|
22
|
+
if (treeNode) {
|
|
23
|
+
element.properties.href = Mustache.render(permaLinkFormat, { slug: treeNode.fullSlug }) + (anchor ? `#${anchor}` : "");
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
const doc = document.outboundLinkDocuments.find((doc2) => doc2.path === fullPath);
|
|
27
|
+
if (doc) {
|
|
28
|
+
element.properties.href = Mustache.render(permaLinkFormat, doc) + (anchor ? `#${anchor}` : "");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (tagName === "img") {
|
|
33
|
+
const asset = document.assets.find((asset2) => asset2.path === fullPath);
|
|
34
|
+
if (asset) {
|
|
35
|
+
element.properties.src = asset.fileUrl;
|
|
36
|
+
element.properties.height = asset.height;
|
|
37
|
+
element.properties.width = asset.width;
|
|
38
|
+
element.properties.alt = element.properties.alt || asset.name;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export {
|
|
45
|
+
processInternalLinks as default
|
|
46
|
+
};
|