@brillout/docpress 0.5.39 → 0.5.40-commit-51be4fa
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/MobileHeader.tsx +68 -0
- package/PageLayout.css +42 -0
- package/PageLayout.tsx +39 -0
- package/algolia/DocSearch.css +34 -0
- package/algolia/DocSearch.ts +62 -0
- package/autoScrollNav.ts +36 -0
- package/components/CodeBlockTransformer.css +9 -0
- package/components/CodeBlockTransformer.tsx +18 -0
- package/components/Comment.tsx +7 -0
- package/components/Consulting.tsx +47 -0
- package/components/Contributors.tsx +113 -0
- package/components/EditPageNote.tsx +18 -0
- package/components/HorizontalLine.tsx +20 -0
- package/components/ImportMeta.tsx +11 -0
- package/components/Link.tsx +144 -0
- package/components/Note.css +54 -0
- package/components/Note.tsx +78 -0
- package/components/P.css +8 -0
- package/components/P.tsx +8 -0
- package/components/ReadingRecommendation.tsx +56 -0
- package/components/RepoLink.tsx +24 -0
- package/components/Sponsors/label.draft.svg +108 -0
- package/components/Sponsors.tsx +218 -0
- package/components/Supporters.tsx +136 -0
- package/{dist/components → components}/features/FeatureList.css +10 -2
- package/components/features/FeatureList.tsx +114 -0
- package/components/features/initFeatureList.ts +66 -0
- package/components/index.ts +15 -0
- package/config/getConfig.ts +18 -0
- package/config/resolveConfig/resolveHeading.ts +0 -0
- package/config/resolvePageContext.ts +186 -0
- package/css/button.css +7 -0
- package/css/code/block.css +36 -0
- package/css/code/inline.css +27 -0
- package/css/code.css +20 -0
- package/css/colorize-on-hover.css +29 -0
- package/css/font.css +25 -0
- package/css/heading.css +45 -0
- package/css/index.css +12 -0
- package/css/link.css +17 -0
- package/css/reset.css +12 -0
- package/css/table.css +14 -0
- package/css/tooltip.css +11 -0
- package/data/maintainersList.tsx +92 -0
- package/data/sponsorsList.ts +147 -0
- package/dist/markdownHeadingsVitePlugin.d.ts +13 -0
- package/dist/markdownHeadingsVitePlugin.js +170 -0
- package/dist/utils/assert.d.ts +6 -0
- package/dist/utils/assert.js +48 -0
- package/dist/utils/determineSectionUrlHash.d.ts +4 -0
- package/dist/utils/determineSectionUrlHash.js +38 -0
- package/dist/vite.config.d.ts +3 -0
- package/dist/vite.config.js +32 -0
- package/index.ts +4 -0
- package/installSectionUrlHashs.ts +60 -0
- package/markdownHeadingsVitePlugin.ts +150 -0
- package/navigation/Navigation-highlight.css +41 -0
- package/navigation/Navigation-items.css +119 -0
- package/navigation/Navigation-layout.css +127 -0
- package/navigation/Navigation.client.ts +43 -0
- package/navigation/Navigation.css +3 -0
- package/navigation/Navigation.tsx +211 -0
- package/navigation/NavigationHeader.tsx +111 -0
- package/navigation/navigation-fullscreen/NavigationFullscreenButton.css +32 -0
- package/navigation/navigation-fullscreen/NavigationFullscreenButton.tsx +44 -0
- package/navigation/navigation-fullscreen/initNavigationFullscreen.ts +116 -0
- package/package.json +26 -48
- package/parseEmojis.ts +35 -0
- package/parseTitle.ts +139 -0
- package/renderer/client.ts +4 -0
- package/renderer/onRenderHtml.tsx +69 -0
- package/renderer/usePageContext.tsx +25 -0
- package/tsconfig.json +15 -0
- package/tsconfig.vite-config.json +7 -0
- package/types/Config.ts +46 -0
- package/types/Heading.ts +49 -0
- package/utils/Emoji/Emoji.ts +224 -0
- package/utils/Emoji/assets.ts +9 -0
- package/utils/Emoji/index.ts +1 -0
- package/utils/Emoji/mountain.svg +1 -0
- package/utils/assert.ts +51 -0
- package/utils/client.ts +2 -0
- package/utils/determineSectionUrlHash.ts +44 -0
- package/utils/filesystemPathHandling.ts +42 -0
- package/utils/filter.ts +12 -0
- package/utils/isBrowser.ts +5 -0
- package/utils/jsxToTextContent.ts +11 -0
- package/utils/objectAssign.ts +9 -0
- package/utils/server.ts +7 -0
- package/vite.config.ts +36 -0
- package/bin.js +0 -3
- package/dist/chunk-2ZTPUQGS.js +0 -58
- package/dist/chunk-3QC7HYIF.js +0 -7
- package/dist/chunk-MGOI4AFO.js +0 -165
- package/dist/chunk-NVJING6T.js +0 -91
- package/dist/chunk-QWL3MA4E.js +0 -171
- package/dist/chunk-UN23G34B.js +0 -157
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +0 -34
- package/dist/components/features/FeatureList.d.ts +0 -13
- package/dist/components/features/FeatureList.js +0 -7
- package/dist/components/features/initFeatureList.d.ts +0 -3
- package/dist/components/features/initFeatureList.js +0 -59
- package/dist/devServer-JKH6U5PF.js +0 -36
- package/dist/index.css +0 -120
- package/dist/index.d.ts +0 -225
- package/dist/index.js +0 -948
- package/dist/renderer/_default.page.client.css +0 -318
- package/dist/renderer/_default.page.client.d.ts +0 -1
- package/dist/renderer/_default.page.client.js +0 -218
- package/dist/renderer/_default.page.server.css +0 -310
- package/dist/renderer/_default.page.server.d.ts +0 -22
- package/dist/renderer/_default.page.server.js +0 -665
- package/readme.md +0 -5
- /package/{dist/label-MP75CTIA.svg → components/Sponsors/label.svg} +0 -0
- /package/{dist/medalBronze-CO4CTUR4.svg → components/Sponsors/medalBronze.svg} +0 -0
- /package/{dist/medalGold-UP6A73FL.svg → components/Sponsors/medalGold.svg} +0 -0
- /package/{dist/medalSilver-FAPGGOBN.svg → components/Sponsors/medalSilver.svg} +0 -0
- /package/{dist/chevron-R2IYJD62.svg → components/features/chevron.svg} +0 -0
- /package/{dist/Inter-Var-IOAEQULN.ttf → css/Inter-Var.ttf} +0 -0
- /package/{dist/alignable-B4QZV4X7.svg → data/sponsorsList/companyLogos/alignable.svg} +0 -0
- /package/{dist/bluefin-JQABZFGV.svg → data/sponsorsList/companyLogos/bluefin.svg} +0 -0
- /package/{dist/burdaforward-EUGURYZY.png → data/sponsorsList/companyLogos/burdaforward.png} +0 -0
- /package/{dist/contra-WLZBOPBV.svg → data/sponsorsList/companyLogos/contra.svg} +0 -0
- /package/{dist/ecosia-OYRLTR5T.svg → data/sponsorsList/companyLogos/ecosia.svg} +0 -0
- /package/{dist/inlang-GFRWND6X.png → data/sponsorsList/companyLogos/inlang.png} +0 -0
- /package/{dist/optimizers-SFEZF3NW.svg → data/sponsorsList/companyLogos/optimizers.svg} +0 -0
- /package/{dist/sourcegraph-YR2HADLS.svg → data/sponsorsList/companyLogos/sourcegraph.svg} +0 -0
- /package/{dist/changelog-IPI5F42D.svg → icons/changelog.svg} +0 -0
- /package/{dist/discord-JD33TUSF.svg → icons/discord.svg} +0 -0
- /package/{dist/github-P5ZSKN2N.svg → icons/github.svg} +0 -0
- /package/{dist/heart-OINVKOXO.svg → icons/heart.svg} +0 -0
- /package/{dist/languages-KXPKJFQL.svg → icons/languages.svg} +0 -0
- /package/{dist/people-72KKQHU4.svg → icons/people.svg} +0 -0
- /package/{dist/twitter-I7DXDN3J.svg → icons/twitter.svg} +0 -0
- /package/{dist/chevron-K3WPYLOP.svg → navigation/navigation-fullscreen/chevron.svg} +0 -0
- /package/{dist/close-IQXTDOHV.svg → navigation/navigation-fullscreen/close.svg} +0 -0
- /package/{dist/compass-2RWQU3E4.svg → utils/Emoji/compass.svg} +0 -0
- /package/{dist/engine-6Q6VSCVA.png → utils/Emoji/engine.png} +0 -0
- /package/{dist/mechanical-arm-TR7IQQMG.svg → utils/Emoji/mechanical-arm.svg} +0 -0
- /package/{dist/road-fork-3WZLW3HB.svg → utils/Emoji/road-fork.svg} +0 -0
- /package/{dist/shield-CU45RG5C.svg → utils/Emoji/shield.svg} +0 -0
- /package/{dist/typescript-ALIPKLRM.svg → utils/Emoji/typescript.svg} +0 -0
package/dist/chunk-2ZTPUQGS.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// src/utils/assert.ts
|
|
2
|
-
function assert(condition, debugInfo) {
|
|
3
|
-
if (condition) {
|
|
4
|
-
return;
|
|
5
|
-
}
|
|
6
|
-
const hasDebugInfo = debugInfo !== void 0;
|
|
7
|
-
if (hasDebugInfo) {
|
|
8
|
-
console.log(debugInfo);
|
|
9
|
-
if (typeof debugInfo === "object") {
|
|
10
|
-
debugInfo = JSON.stringify(debugInfo);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
let errMsg = "[DocPress] Bug. Contact DocPress maintainer.";
|
|
14
|
-
if (hasDebugInfo) {
|
|
15
|
-
errMsg += " Debug info: " + String(debugInfo);
|
|
16
|
-
}
|
|
17
|
-
const err = new Error(errMsg);
|
|
18
|
-
if (isBrowserAndDev()) {
|
|
19
|
-
alert(err.stack);
|
|
20
|
-
}
|
|
21
|
-
throw err;
|
|
22
|
-
}
|
|
23
|
-
function assertUsage(condition, msg) {
|
|
24
|
-
if (condition) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const err = new Error("[DocPress][Wrong Usage] " + msg);
|
|
28
|
-
if (isBrowserAndDev()) {
|
|
29
|
-
alert(err.stack);
|
|
30
|
-
}
|
|
31
|
-
throw err;
|
|
32
|
-
}
|
|
33
|
-
function isBrowserAndDev() {
|
|
34
|
-
var _a;
|
|
35
|
-
return typeof window !== "undefined" && ((_a = window == null ? void 0 : window.location) == null ? void 0 : _a.port) !== "";
|
|
36
|
-
}
|
|
37
|
-
function assertWarning(condition, msg) {
|
|
38
|
-
if (condition) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
msg = "[DocPress][Warning] " + msg;
|
|
42
|
-
console.warn(msg);
|
|
43
|
-
if (isBrowserAndDev()) {
|
|
44
|
-
alert(msg);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// src/utils/isBrowser.ts
|
|
49
|
-
function isBrowser() {
|
|
50
|
-
return typeof window !== "undefined";
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export {
|
|
54
|
-
assert,
|
|
55
|
-
assertUsage,
|
|
56
|
-
assertWarning,
|
|
57
|
-
isBrowser
|
|
58
|
-
};
|
package/dist/chunk-3QC7HYIF.js
DELETED
package/dist/chunk-MGOI4AFO.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Emoji
|
|
3
|
-
} from "./chunk-UN23G34B.js";
|
|
4
|
-
import {
|
|
5
|
-
assert
|
|
6
|
-
} from "./chunk-2ZTPUQGS.js";
|
|
7
|
-
|
|
8
|
-
// src/components/RepoLink.tsx
|
|
9
|
-
import React2 from "react";
|
|
10
|
-
|
|
11
|
-
// src/renderer/usePageContext.tsx
|
|
12
|
-
import React, { useContext } from "react";
|
|
13
|
-
var Context = React.createContext(void 0);
|
|
14
|
-
function PageContextProvider({
|
|
15
|
-
pageContext,
|
|
16
|
-
children
|
|
17
|
-
}) {
|
|
18
|
-
return /* @__PURE__ */ React.createElement(Context.Provider, {
|
|
19
|
-
value: pageContext
|
|
20
|
-
}, children);
|
|
21
|
-
}
|
|
22
|
-
function usePageContext() {
|
|
23
|
-
const pageContext = useContext(Context);
|
|
24
|
-
return pageContext;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// src/components/RepoLink.tsx
|
|
28
|
-
function isRepoLink(href) {
|
|
29
|
-
return ["/examples/", "/docs/", "/boilerplates/", ".github/", "/test/"].some((start) => href.startsWith(start));
|
|
30
|
-
}
|
|
31
|
-
function RepoLink({ path, text, editMode }) {
|
|
32
|
-
const pageContext = usePageContext();
|
|
33
|
-
assert(isRepoLink(path), { path });
|
|
34
|
-
text = text || path;
|
|
35
|
-
if (!path.startsWith("/")) {
|
|
36
|
-
path = "/" + path;
|
|
37
|
-
}
|
|
38
|
-
const viewMode = path.endsWith("/") || editMode ? "tree" : "blob";
|
|
39
|
-
const { githubRepository } = pageContext.config.projectInfo;
|
|
40
|
-
assert(githubRepository.startsWith("https://github.com/"));
|
|
41
|
-
const href = `${githubRepository}/${viewMode}/main${path}`;
|
|
42
|
-
return /* @__PURE__ */ React2.createElement("a", {
|
|
43
|
-
href
|
|
44
|
-
}, text);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// src/parseTitle.ts
|
|
48
|
-
import React3 from "react";
|
|
49
|
-
function getHeadingsWithProcessedTitle(config) {
|
|
50
|
-
const headingsWithoutBreadcrumb = config.headings.map(
|
|
51
|
-
(heading) => {
|
|
52
|
-
const titleProcessed = parseTitle(heading.title);
|
|
53
|
-
const titleInNav = heading.titleInNav || heading.title;
|
|
54
|
-
let titleInNavProcessed;
|
|
55
|
-
titleInNavProcessed = parseTitle(titleInNav);
|
|
56
|
-
if ("titleEmoji" in heading) {
|
|
57
|
-
assert(heading.titleEmoji);
|
|
58
|
-
titleInNavProcessed = withEmoji(heading.titleEmoji, titleInNavProcessed);
|
|
59
|
-
}
|
|
60
|
-
const headingProcessed = {
|
|
61
|
-
...heading,
|
|
62
|
-
title: titleProcessed,
|
|
63
|
-
titleInNav: titleInNavProcessed
|
|
64
|
-
};
|
|
65
|
-
return headingProcessed;
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
const headingsProcessed = [];
|
|
69
|
-
headingsWithoutBreadcrumb.forEach((heading) => {
|
|
70
|
-
const headingsBreadcrumb = getHeadingsBreadcrumb(heading, headingsProcessed);
|
|
71
|
-
headingsProcessed.push({
|
|
72
|
-
...heading,
|
|
73
|
-
headingsBreadcrumb
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
const headingsDetachedProcessed = config.headingsDetached.map((headingsDetached) => {
|
|
77
|
-
const { url, title } = headingsDetached;
|
|
78
|
-
assert(
|
|
79
|
-
headingsProcessed.find((heading) => heading.url === url) === void 0,
|
|
80
|
-
`remove ${headingsDetached.url} from headingsDetached`
|
|
81
|
-
);
|
|
82
|
-
const titleProcessed = typeof title === "string" ? parseTitle(title) : title;
|
|
83
|
-
return {
|
|
84
|
-
...headingsDetached,
|
|
85
|
-
level: 2,
|
|
86
|
-
title: titleProcessed,
|
|
87
|
-
titleInNav: titleProcessed,
|
|
88
|
-
headingsBreadcrumb: null
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
assertHeadingsUrl([...headingsProcessed, ...headingsDetachedProcessed]);
|
|
92
|
-
return { headingsProcessed, headingsDetachedProcessed };
|
|
93
|
-
}
|
|
94
|
-
function getHeadingsBreadcrumb(heading, headings) {
|
|
95
|
-
const headingsBreadcrumb = [];
|
|
96
|
-
let levelCurrent = heading.level;
|
|
97
|
-
headings.slice().reverse().forEach((parentCandidate) => {
|
|
98
|
-
const isParent = parentCandidate.level < levelCurrent;
|
|
99
|
-
if (isParent) {
|
|
100
|
-
levelCurrent = parentCandidate.level;
|
|
101
|
-
headingsBreadcrumb.push(parentCandidate);
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
return headingsBreadcrumb;
|
|
105
|
-
}
|
|
106
|
-
function assertHeadingsUrl(headings) {
|
|
107
|
-
headings.forEach((heading) => {
|
|
108
|
-
if (heading.url) {
|
|
109
|
-
const { url } = heading;
|
|
110
|
-
assert(url.startsWith("/"));
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
function parseTitle(title) {
|
|
115
|
-
const parts = [];
|
|
116
|
-
let current;
|
|
117
|
-
title.split("").forEach((letter) => {
|
|
118
|
-
if (letter === "`") {
|
|
119
|
-
if ((current == null ? void 0 : current.nodeType) === "code") {
|
|
120
|
-
parts.push(current);
|
|
121
|
-
current = void 0;
|
|
122
|
-
} else {
|
|
123
|
-
if (current) {
|
|
124
|
-
parts.push(current);
|
|
125
|
-
}
|
|
126
|
-
current = { nodeType: "code", content: "" };
|
|
127
|
-
}
|
|
128
|
-
} else {
|
|
129
|
-
if (!current) {
|
|
130
|
-
current = { nodeType: "text", content: "" };
|
|
131
|
-
}
|
|
132
|
-
current.content += letter;
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
if (current) {
|
|
136
|
-
parts.push(current);
|
|
137
|
-
}
|
|
138
|
-
const titleJsx = React3.createElement(
|
|
139
|
-
React3.Fragment,
|
|
140
|
-
{},
|
|
141
|
-
...parts.map(
|
|
142
|
-
(part, i) => React3.createElement(part.nodeType === "code" ? "code" : React3.Fragment, { key: i }, part.content)
|
|
143
|
-
)
|
|
144
|
-
);
|
|
145
|
-
return titleJsx;
|
|
146
|
-
}
|
|
147
|
-
function withEmoji(name, title) {
|
|
148
|
-
const style = { fontSize: "1.4em" };
|
|
149
|
-
return React3.createElement(
|
|
150
|
-
"span",
|
|
151
|
-
{ style },
|
|
152
|
-
Emoji({ name }),
|
|
153
|
-
" ",
|
|
154
|
-
React3.createElement("span", { style: { fontSize: "1rem" } }, title)
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export {
|
|
159
|
-
PageContextProvider,
|
|
160
|
-
usePageContext,
|
|
161
|
-
isRepoLink,
|
|
162
|
-
RepoLink,
|
|
163
|
-
getHeadingsWithProcessedTitle,
|
|
164
|
-
parseTitle
|
|
165
|
-
};
|
package/dist/chunk-NVJING6T.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
// src/components/features/FeatureList.tsx
|
|
2
|
-
import React from "react";
|
|
3
|
-
|
|
4
|
-
// src/components/features/chevron.svg
|
|
5
|
-
var chevron_default = "/assets/chevron-R2IYJD62.svg";
|
|
6
|
-
|
|
7
|
-
// src/components/features/FeatureList.tsx
|
|
8
|
-
function FeatureList({ features }) {
|
|
9
|
-
const numberOfFeatures = features.length;
|
|
10
|
-
const numberOfRows = Math.ceil(numberOfFeatures / 2);
|
|
11
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
12
|
-
id: "features"
|
|
13
|
-
}, Array.from({ length: numberOfRows }, (_, i) => {
|
|
14
|
-
const feature1Id = 2 * i + 0;
|
|
15
|
-
const feature2Id = 2 * i + 1;
|
|
16
|
-
const feature1 = features[feature1Id];
|
|
17
|
-
const feature2 = features[feature2Id];
|
|
18
|
-
const className = ["features-row", feature2 ? "" : "single-column"].filter(Boolean).join(" ");
|
|
19
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
20
|
-
className,
|
|
21
|
-
key: i
|
|
22
|
-
}, /* @__PURE__ */ React.createElement(Feature, {
|
|
23
|
-
...{ ...feature1, featureId: feature1Id }
|
|
24
|
-
}), feature2 && /* @__PURE__ */ React.createElement(Feature, {
|
|
25
|
-
...{ ...feature2, featureId: feature2Id }
|
|
26
|
-
}));
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
function Feature({ title, desc, learnMore, isSecondaryFeature, featureId }) {
|
|
30
|
-
const name = `feature-${featureId}`;
|
|
31
|
-
const rightSide = featureId % 2 === 1;
|
|
32
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(FeatureHead, {
|
|
33
|
-
name,
|
|
34
|
-
hasLearnMore: !!learnMore,
|
|
35
|
-
isSecondaryFeature
|
|
36
|
-
}, " ", /* @__PURE__ */ React.createElement("h2", null, title), desc), !!learnMore && /* @__PURE__ */ React.createElement(LearnMore, {
|
|
37
|
-
name,
|
|
38
|
-
rightSide
|
|
39
|
-
}, learnMore));
|
|
40
|
-
}
|
|
41
|
-
function FeatureHead({
|
|
42
|
-
children,
|
|
43
|
-
name,
|
|
44
|
-
hasLearnMore,
|
|
45
|
-
isSecondaryFeature,
|
|
46
|
-
className = ""
|
|
47
|
-
}) {
|
|
48
|
-
return /* @__PURE__ */ React.createElement("summary", {
|
|
49
|
-
className: [
|
|
50
|
-
className,
|
|
51
|
-
"feature",
|
|
52
|
-
"colorize-on-hover",
|
|
53
|
-
hasLearnMore && "has-learn-more",
|
|
54
|
-
isSecondaryFeature && "secondary-feature"
|
|
55
|
-
].filter(Boolean).join(" "),
|
|
56
|
-
id: name && `feature-${name}`,
|
|
57
|
-
style: { cursor: hasLearnMore && "pointer" || void 0 }
|
|
58
|
-
}, children, hasLearnMore && /* @__PURE__ */ React.createElement("div", {
|
|
59
|
-
style: { textAlign: "center", marginTop: "1em" }
|
|
60
|
-
}, /* @__PURE__ */ React.createElement("button", {
|
|
61
|
-
type: "button",
|
|
62
|
-
style: {
|
|
63
|
-
textAlign: "center",
|
|
64
|
-
padding: "0 7px",
|
|
65
|
-
paddingTop: 3,
|
|
66
|
-
paddingBottom: 1,
|
|
67
|
-
display: "inline-block",
|
|
68
|
-
fontSize: "10px",
|
|
69
|
-
textTransform: "uppercase",
|
|
70
|
-
letterSpacing: "1px",
|
|
71
|
-
fontWeight: 600
|
|
72
|
-
}
|
|
73
|
-
}, /* @__PURE__ */ React.createElement("span", {
|
|
74
|
-
className: "decolorize-5"
|
|
75
|
-
}, "Learn more"), /* @__PURE__ */ React.createElement("br", null), /* @__PURE__ */ React.createElement("img", {
|
|
76
|
-
className: "decolorize-4 chevron",
|
|
77
|
-
src: chevron_default,
|
|
78
|
-
height: "7",
|
|
79
|
-
style: { marginTop: 2 }
|
|
80
|
-
}))));
|
|
81
|
-
}
|
|
82
|
-
function LearnMore({ children, name, rightSide }) {
|
|
83
|
-
return /* @__PURE__ */ React.createElement("aside", {
|
|
84
|
-
className: "learn-more " + (rightSide ? "right-side" : ""),
|
|
85
|
-
id: `learn-more-${name}`
|
|
86
|
-
}, children);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export {
|
|
90
|
-
FeatureList
|
|
91
|
-
};
|
package/dist/chunk-QWL3MA4E.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
determineSectionUrlHash
|
|
3
|
-
} from "./chunk-UN23G34B.js";
|
|
4
|
-
import {
|
|
5
|
-
assert
|
|
6
|
-
} from "./chunk-2ZTPUQGS.js";
|
|
7
|
-
|
|
8
|
-
// src/vite.config.ts
|
|
9
|
-
import mdx from "@mdx-js/rollup";
|
|
10
|
-
import react from "@vitejs/plugin-react-swc";
|
|
11
|
-
import ssr from "vike/plugin";
|
|
12
|
-
|
|
13
|
-
// src/markdownHeadingsVitePlugin.ts
|
|
14
|
-
import os from "os";
|
|
15
|
-
function markdownHeadingsVitePlugin() {
|
|
16
|
-
return {
|
|
17
|
-
name: "mdx-headings",
|
|
18
|
-
enforce: "pre",
|
|
19
|
-
transform: async (code, id) => {
|
|
20
|
-
if (!id.includes(".page.") || !id.endsWith(".mdx")) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const codeNew = transform(code);
|
|
24
|
-
return codeNew;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function transform(code) {
|
|
29
|
-
const headings = [];
|
|
30
|
-
let isCodeBlock = false;
|
|
31
|
-
let codeNew = code.split("\n").map((line) => {
|
|
32
|
-
if (line.startsWith("~~~") || line.startsWith("```")) {
|
|
33
|
-
isCodeBlock = !isCodeBlock;
|
|
34
|
-
return line;
|
|
35
|
-
}
|
|
36
|
-
if (isCodeBlock) {
|
|
37
|
-
return line;
|
|
38
|
-
}
|
|
39
|
-
if (line.startsWith("#")) {
|
|
40
|
-
const { headingId, headingLevel, title, headingHtml } = parseMarkdownHeading(line);
|
|
41
|
-
headings.push({ headingId, headingLevel, title });
|
|
42
|
-
return headingHtml;
|
|
43
|
-
}
|
|
44
|
-
return line;
|
|
45
|
-
}).join("\n");
|
|
46
|
-
const headingsExportCode = `export const headings = [${headings.map((heading) => JSON.stringify(heading)).join(", ")}];`;
|
|
47
|
-
codeNew += `
|
|
48
|
-
|
|
49
|
-
${headingsExportCode}
|
|
50
|
-
`;
|
|
51
|
-
return codeNew;
|
|
52
|
-
}
|
|
53
|
-
function parseMarkdownHeading(line) {
|
|
54
|
-
var _a;
|
|
55
|
-
const [lineBegin, ...lineWords] = line.split(" ");
|
|
56
|
-
assert(lineBegin.split("#").join("") === "", { line, lineWords });
|
|
57
|
-
const headingLevel = lineBegin.length;
|
|
58
|
-
const titleMdx = lineWords.join(" ");
|
|
59
|
-
assert(!titleMdx.startsWith(" "), { line, lineWords });
|
|
60
|
-
assert(titleMdx, { line, lineWords });
|
|
61
|
-
const headingMdx = {
|
|
62
|
-
title: titleMdx,
|
|
63
|
-
anchor: titleMdx
|
|
64
|
-
};
|
|
65
|
-
{
|
|
66
|
-
const customAnchor = (_a = /(?<={#).*(?=})/g.exec(titleMdx)) == null ? void 0 : _a[0];
|
|
67
|
-
if (customAnchor) {
|
|
68
|
-
headingMdx.anchor = customAnchor;
|
|
69
|
-
headingMdx.title = titleMdx.replace(/{#.*}/g, "");
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const headingId = determineSectionUrlHash(headingMdx.anchor);
|
|
73
|
-
const title = headingMdx.title;
|
|
74
|
-
const titleParsed = parseTitle(title);
|
|
75
|
-
assert(headingId === null || headingId.length > 0);
|
|
76
|
-
const headingAttrId = headingId === null ? "" : ` id="${headingId}"`;
|
|
77
|
-
const headingHtml = `<h${headingLevel}${headingAttrId}>${titleParsed}</h${headingLevel}>`;
|
|
78
|
-
const heading = { headingLevel, title, headingId, headingHtml };
|
|
79
|
-
return heading;
|
|
80
|
-
}
|
|
81
|
-
function parseTitle(titleMarkdown) {
|
|
82
|
-
const parts = [];
|
|
83
|
-
let current;
|
|
84
|
-
titleMarkdown.split("").forEach((letter) => {
|
|
85
|
-
if (letter === "`") {
|
|
86
|
-
if ((current == null ? void 0 : current.nodeType) === "code") {
|
|
87
|
-
parts.push(current);
|
|
88
|
-
current = void 0;
|
|
89
|
-
} else {
|
|
90
|
-
if (current) {
|
|
91
|
-
parts.push(current);
|
|
92
|
-
}
|
|
93
|
-
current = { nodeType: "code", content: "" };
|
|
94
|
-
}
|
|
95
|
-
} else {
|
|
96
|
-
if (!current) {
|
|
97
|
-
current = { nodeType: "text", content: "" };
|
|
98
|
-
}
|
|
99
|
-
current.content += letter;
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
if (current) {
|
|
103
|
-
parts.push(current);
|
|
104
|
-
}
|
|
105
|
-
const titleHtml = parts.map((part) => {
|
|
106
|
-
if (part.nodeType === "code") {
|
|
107
|
-
return `<code>${serializeText(part.content)}</code>`;
|
|
108
|
-
} else {
|
|
109
|
-
assert(part.nodeType === "text", { parts });
|
|
110
|
-
return serializeText(part.content);
|
|
111
|
-
}
|
|
112
|
-
}).join("");
|
|
113
|
-
return titleHtml;
|
|
114
|
-
function serializeText(text) {
|
|
115
|
-
let textEscaped = text.split("'").join("\\'");
|
|
116
|
-
if (isWindows()) {
|
|
117
|
-
textEscaped = textEscaped.replace(/\r/, "");
|
|
118
|
-
}
|
|
119
|
-
return `{'${textEscaped}'}`;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function isWindows() {
|
|
123
|
-
return os.platform() === "win32";
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// src/vite.config.ts
|
|
127
|
-
import rehypePrettyCode from "rehype-pretty-code";
|
|
128
|
-
import remarkGfm from "remark-gfm";
|
|
129
|
-
var root = process.cwd();
|
|
130
|
-
var prettyCode = [rehypePrettyCode, { theme: "github-light" }];
|
|
131
|
-
var rehypePlugins = [prettyCode];
|
|
132
|
-
var remarkPlugins = [remarkGfm];
|
|
133
|
-
var isDev = !process.argv[1].endsWith("/bin.js");
|
|
134
|
-
var extensionFiles = isDev ? { pageFilesSrc: "/src/renderer/*" } : {
|
|
135
|
-
pageFilesDist: [
|
|
136
|
-
"@brillout/docpress/renderer/_default.page.server.js",
|
|
137
|
-
"@brillout/docpress/renderer/_default.page.client.js"
|
|
138
|
-
],
|
|
139
|
-
assetsDir: "/dist/"
|
|
140
|
-
};
|
|
141
|
-
var config = {
|
|
142
|
-
root,
|
|
143
|
-
plugins: [
|
|
144
|
-
markdownHeadingsVitePlugin(),
|
|
145
|
-
mdx({ rehypePlugins, remarkPlugins }),
|
|
146
|
-
react(),
|
|
147
|
-
ssr({
|
|
148
|
-
prerender: {
|
|
149
|
-
noExtraDir: true
|
|
150
|
-
},
|
|
151
|
-
extensions: [
|
|
152
|
-
{
|
|
153
|
-
npmPackageName: "@brillout/docpress",
|
|
154
|
-
...extensionFiles
|
|
155
|
-
}
|
|
156
|
-
],
|
|
157
|
-
includeAssetsImportedByServer: true,
|
|
158
|
-
disableAutoFullBuild: true
|
|
159
|
-
})
|
|
160
|
-
],
|
|
161
|
-
optimizeDeps: { include: ["@mdx-js/react", "react-dom"] },
|
|
162
|
-
ssr: {
|
|
163
|
-
noExternal: ["@brillout/docpress"]
|
|
164
|
-
},
|
|
165
|
-
clearScreen: false
|
|
166
|
-
};
|
|
167
|
-
var vite_config_default = config;
|
|
168
|
-
|
|
169
|
-
export {
|
|
170
|
-
vite_config_default
|
|
171
|
-
};
|
package/dist/chunk-UN23G34B.js
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assert
|
|
3
|
-
} from "./chunk-2ZTPUQGS.js";
|
|
4
|
-
|
|
5
|
-
// src/utils/filter.ts
|
|
6
|
-
function filter(obj, predicate) {
|
|
7
|
-
const result = {};
|
|
8
|
-
Object.keys(obj).forEach((name) => {
|
|
9
|
-
if (predicate(obj[name], name)) {
|
|
10
|
-
result[name] = obj[name];
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
return result;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// src/utils/determineSectionUrlHash.ts
|
|
17
|
-
function determineSectionUrlHash(title) {
|
|
18
|
-
title = title.toLowerCase();
|
|
19
|
-
title = removeAccentsAndDiacritics(title);
|
|
20
|
-
const urlHash = title.split(/[^a-z0-9\u4E00-\u9FA5]+/).filter(Boolean).join("-");
|
|
21
|
-
if (urlHash === "")
|
|
22
|
-
return null;
|
|
23
|
-
return urlHash;
|
|
24
|
-
}
|
|
25
|
-
function removeAccentsAndDiacritics(str) {
|
|
26
|
-
return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
27
|
-
}
|
|
28
|
-
function determineSectionTitle(urlWithHash) {
|
|
29
|
-
assert(urlWithHash.includes("#"), { urlWithHash });
|
|
30
|
-
const urlHash = urlWithHash.split("#")[1];
|
|
31
|
-
const title = urlHash.split("-").map((word, i) => {
|
|
32
|
-
if (i === 0) {
|
|
33
|
-
return capitalizeFirstLetter(word);
|
|
34
|
-
}
|
|
35
|
-
return word;
|
|
36
|
-
}).join(" ");
|
|
37
|
-
return title;
|
|
38
|
-
}
|
|
39
|
-
function capitalizeFirstLetter(word) {
|
|
40
|
-
return word[0].toUpperCase() + word.slice(1);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// src/utils/jsxToTextContent.ts
|
|
44
|
-
function jsxToTextContent(node) {
|
|
45
|
-
if (["string", "number"].includes(typeof node))
|
|
46
|
-
return String(node);
|
|
47
|
-
if (node instanceof Array)
|
|
48
|
-
return node.map(jsxToTextContent).join("");
|
|
49
|
-
if (typeof node === "object" && node)
|
|
50
|
-
return jsxToTextContent(node.props.children);
|
|
51
|
-
assert(false);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// src/utils/objectAssign.ts
|
|
55
|
-
function objectAssign(obj, objAddendum) {
|
|
56
|
-
Object.assign(obj, objAddendum);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// src/utils/crawlAllFiles.ts
|
|
60
|
-
import path from "path";
|
|
61
|
-
import { promises as fsp } from "fs";
|
|
62
|
-
|
|
63
|
-
// src/utils/filesystemPathHandling.ts
|
|
64
|
-
import assert2 from "assert";
|
|
65
|
-
var sepPosix = "/";
|
|
66
|
-
var sepWin32 = "\\";
|
|
67
|
-
function toPosixPath(path2) {
|
|
68
|
-
if (isPosix()) {
|
|
69
|
-
assertPosixPath(path2);
|
|
70
|
-
return path2;
|
|
71
|
-
}
|
|
72
|
-
if (isWin32()) {
|
|
73
|
-
const pathPosix = path2.split(sepWin32).join(sepPosix);
|
|
74
|
-
assertPosixPath(pathPosix);
|
|
75
|
-
return pathPosix;
|
|
76
|
-
}
|
|
77
|
-
assert2(false);
|
|
78
|
-
}
|
|
79
|
-
function assertPosixPath(path2) {
|
|
80
|
-
assert2(path2 && !path2.includes(sepWin32), `Wrongly formatted path: ${path2}`);
|
|
81
|
-
}
|
|
82
|
-
function isWin32() {
|
|
83
|
-
return process.platform === "win32";
|
|
84
|
-
}
|
|
85
|
-
function isPosix() {
|
|
86
|
-
return !isWin32();
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// src/utils/crawlAllFiles.ts
|
|
90
|
-
async function crawlAllFiles(dir) {
|
|
91
|
-
const dirFiles = await fsp.readdir(dir, { withFileTypes: true });
|
|
92
|
-
const allFiles = await Promise.all(
|
|
93
|
-
dirFiles.map((file) => {
|
|
94
|
-
const filePath = path.resolve(dir, file.name);
|
|
95
|
-
return file.isDirectory() ? crawlAllFiles(filePath) : filePath;
|
|
96
|
-
})
|
|
97
|
-
);
|
|
98
|
-
return allFiles.flat().map(toPosixPath);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// src/utils/Emoji/Emoji.ts
|
|
102
|
-
import React from "react";
|
|
103
|
-
|
|
104
|
-
// src/utils/Emoji/mechanical-arm.svg
|
|
105
|
-
var mechanical_arm_default = "/assets/mechanical-arm-TR7IQQMG.svg";
|
|
106
|
-
|
|
107
|
-
// src/utils/Emoji/compass.svg
|
|
108
|
-
var compass_default = "/assets/compass-2RWQU3E4.svg";
|
|
109
|
-
|
|
110
|
-
// src/utils/Emoji/road-fork.svg
|
|
111
|
-
var road_fork_default = "/assets/road-fork-3WZLW3HB.svg";
|
|
112
|
-
|
|
113
|
-
// src/utils/Emoji/shield.svg
|
|
114
|
-
var shield_default = "/assets/shield-CU45RG5C.svg";
|
|
115
|
-
|
|
116
|
-
// src/utils/Emoji/typescript.svg
|
|
117
|
-
var typescript_default = "/assets/typescript-ALIPKLRM.svg";
|
|
118
|
-
|
|
119
|
-
// src/utils/Emoji/engine.png
|
|
120
|
-
var engine_default = "/assets/engine-6Q6VSCVA.png";
|
|
121
|
-
|
|
122
|
-
// src/utils/Emoji/Emoji.ts
|
|
123
|
-
function Emoji({ name, style }) {
|
|
124
|
-
const emoji = name === "warning" && Unicode(9888, { fontFamily: "emoji" }) || name === "lab" && Unicode(9879) || name === "info" && Unicode(8505, { fontFamily: "emoji" }) || name === "package" && Unicode(128230) || name === "gift" && Unicode(127873) || name === "sparkling-heart" && Unicode(128150) || name === "red-circle" && Unicode(11093) || name === "engine" && Img(engine_default) || name === "typescript" && Img(typescript_default) || name === "shield" && Img(shield_default) || name === "road-fork" && Img(road_fork_default, "1.4em") || name === "writing-hang" && Unicode(9997) || name === "dizzy" && Unicode(128171) || name === "mechanical-arm" && Img(mechanical_arm_default) || name === "rocket" && Unicode(128640) || name === "wrench" && Unicode(128295) || name === "compass" && Img(compass_default, "1.4em") || name === "seedling" && Unicode(127793) || name === "books" && Unicode(128218) || name === "plug" && Unicode(128268) || name === "earth" && Unicode(127757) || name === "gear" && Unicode(9881) || name === "red-heart" && Unicode(10084, { fontFamily: "emoji" }) || name === "high-voltage" && Unicode(9889) || name === "sparkles" && Unicode(10024) || name === "gem-stone" && Unicode(128142) || name === "trophy" && Unicode(127942) || name === "ribbon" && Unicode(127895, { fontFamily: "emoji" }) || false;
|
|
125
|
-
assert(emoji, { name });
|
|
126
|
-
return emoji;
|
|
127
|
-
function Unicode(codePoint, styleAddendum) {
|
|
128
|
-
const text = String.fromCodePoint(codePoint);
|
|
129
|
-
if (style || styleAddendum) {
|
|
130
|
-
return React.createElement("span", { style: { ...style, ...styleAddendum } }, text);
|
|
131
|
-
} else {
|
|
132
|
-
return React.createElement(React.Fragment, null, text);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
function Img(imgSrc, width = "1.15em") {
|
|
136
|
-
const props = {
|
|
137
|
-
src: imgSrc,
|
|
138
|
-
style: {
|
|
139
|
-
verticalAlign: "text-top",
|
|
140
|
-
fontSize: "1em",
|
|
141
|
-
width,
|
|
142
|
-
...style
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
return React.createElement("img", props);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export {
|
|
150
|
-
filter,
|
|
151
|
-
determineSectionUrlHash,
|
|
152
|
-
determineSectionTitle,
|
|
153
|
-
jsxToTextContent,
|
|
154
|
-
objectAssign,
|
|
155
|
-
crawlAllFiles,
|
|
156
|
-
Emoji
|
|
157
|
-
};
|
package/dist/cli/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
package/dist/cli/index.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
vite_config_default
|
|
3
|
-
} from "../chunk-QWL3MA4E.js";
|
|
4
|
-
import "../chunk-UN23G34B.js";
|
|
5
|
-
import "../chunk-2ZTPUQGS.js";
|
|
6
|
-
import "../chunk-3QC7HYIF.js";
|
|
7
|
-
|
|
8
|
-
// src/cli/index.ts
|
|
9
|
-
import { build, preview } from "vite";
|
|
10
|
-
import { prerender } from "vike/prerender";
|
|
11
|
-
var args = process.argv.filter(Boolean).slice(2);
|
|
12
|
-
var isDev = args.includes("dev");
|
|
13
|
-
var isPreview = args.includes("preview");
|
|
14
|
-
var isBuild = args.includes("build");
|
|
15
|
-
Error.stackTraceLimit = Infinity;
|
|
16
|
-
cli();
|
|
17
|
-
async function cli() {
|
|
18
|
-
if (isDev) {
|
|
19
|
-
await import("../devServer-JKH6U5PF.js");
|
|
20
|
-
} else if (isBuild) {
|
|
21
|
-
await build(vite_config_default);
|
|
22
|
-
await build({ ...vite_config_default, build: { ssr: true } });
|
|
23
|
-
await prerender({ viteConfig: vite_config_default });
|
|
24
|
-
} else if (isPreview) {
|
|
25
|
-
const server = await preview({ ...vite_config_default, preview: { host: true } });
|
|
26
|
-
server.printUrls();
|
|
27
|
-
} else {
|
|
28
|
-
throw new Error(
|
|
29
|
-
`DocPress: unknown command \`$ docpress ${args.join(
|
|
30
|
-
" "
|
|
31
|
-
)}\`. Known commands: \`$ docpress dev\` and \`$ docpress preview\`.`
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
type FeatureProps = {
|
|
4
|
-
title: React.ReactNode;
|
|
5
|
-
desc: React.ReactNode;
|
|
6
|
-
learnMore?: React.ReactNode;
|
|
7
|
-
isSecondaryFeature?: true;
|
|
8
|
-
};
|
|
9
|
-
declare function FeatureList({ features }: {
|
|
10
|
-
features: FeatureProps[];
|
|
11
|
-
}): JSX.Element;
|
|
12
|
-
|
|
13
|
-
export { FeatureList };
|