@brillout/docpress 0.1.20 → 0.2.1

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.
Files changed (144) hide show
  1. package/bin.js +1 -1
  2. package/{src/css/Inter-Var.ttf → dist/Inter-Var-IOAEQULN.ttf} +0 -0
  3. package/{src/components/Sponsors/companyLogos/ccoli.svg → dist/ccoli-CHW3TQKS.svg} +0 -0
  4. package/{src/icons/changelog.svg → dist/changelog-IPI5F42D.svg} +0 -0
  5. package/{src/navigation/navigation-fullscreen/chevron.svg → dist/chevron-K3WPYLOP.svg} +0 -0
  6. package/{src/components/features/chevron.svg → dist/chevron-R2IYJD62.svg} +0 -0
  7. package/dist/chunk-7HKDCMSZ.js +154 -0
  8. package/dist/chunk-7HKDCMSZ.js.map +1 -0
  9. package/dist/chunk-C3OIVLKV.js +75 -0
  10. package/dist/chunk-C3OIVLKV.js.map +1 -0
  11. package/dist/chunk-G2A5MZJA.js +48 -0
  12. package/dist/chunk-G2A5MZJA.js.map +1 -0
  13. package/dist/chunk-H5CO4N2X.js +174 -0
  14. package/dist/chunk-H5CO4N2X.js.map +1 -0
  15. package/dist/chunk-TTLAZ2T2.js +8 -0
  16. package/dist/chunk-TTLAZ2T2.js.map +1 -0
  17. package/dist/{chunk-ZYYJWJMY.js → chunk-XUTBTIEE.js} +15 -42
  18. package/dist/chunk-XUTBTIEE.js.map +1 -0
  19. package/dist/cli/index.d.ts +1 -0
  20. package/dist/cli/index.js +35 -0
  21. package/dist/cli/index.js.map +1 -0
  22. package/{src/navigation/navigation-fullscreen/close.svg → dist/close-IQXTDOHV.svg} +0 -0
  23. package/{src/utils/Emoji/compass.svg → dist/compass-2RWQU3E4.svg} +0 -0
  24. package/{src → dist}/components/features/FeatureList.css +2 -7
  25. package/dist/components/features/FeatureList.css.map +1 -0
  26. package/dist/components/features/FeatureList.d.ts +13 -0
  27. package/dist/components/features/FeatureList.js +8 -0
  28. package/dist/components/features/FeatureList.js.map +1 -0
  29. package/dist/components/features/initFeatureList.d.ts +3 -0
  30. package/dist/components/features/initFeatureList.js +60 -0
  31. package/dist/components/features/initFeatureList.js.map +1 -0
  32. package/{src/components/Sponsors/companyLogos/contra.svg → dist/contra-WLZBOPBV.svg} +0 -0
  33. package/dist/{devServer-J2XJQJGT.js → devServer-534L4U45.js} +5 -2
  34. package/dist/{devServer-J2XJQJGT.js.map → devServer-534L4U45.js.map} +1 -1
  35. package/{src/icons/discord.svg → dist/discord-JD33TUSF.svg} +0 -0
  36. package/{src/utils/Emoji/engine.png → dist/engine-6Q6VSCVA.png} +0 -0
  37. package/{src/icons/github.svg → dist/github-P5ZSKN2N.svg} +0 -0
  38. package/{src/icons/heart.svg → dist/heart-OINVKOXO.svg} +0 -0
  39. package/dist/index.css +121 -0
  40. package/dist/index.css.map +1 -0
  41. package/dist/index.d.ts +136 -0
  42. package/dist/index.js +459 -26
  43. package/dist/index.js.map +1 -1
  44. package/{src/components/Sponsors/label.svg → dist/label-MP75CTIA.svg} +0 -0
  45. package/{src/utils/Emoji/mechanical-arm.svg → dist/mechanical-arm-TR7IQQMG.svg} +0 -0
  46. package/{src/components/Sponsors/medalBronze.svg → dist/medalBronze-CO4CTUR4.svg} +0 -0
  47. package/{src/components/Sponsors/medalGold.svg → dist/medalGold-UP6A73FL.svg} +0 -0
  48. package/{src/components/Sponsors/medalSilver.svg → dist/medalSilver-FAPGGOBN.svg} +0 -0
  49. package/{src/components/Sponsors/companyLogos/mfqs.svg → dist/mfqs-2EAEE7N6.svg} +0 -0
  50. package/dist/renderer/_default.page.client.css +264 -0
  51. package/dist/renderer/_default.page.client.css.map +1 -0
  52. package/dist/renderer/_default.page.client.d.ts +1 -0
  53. package/dist/renderer/_default.page.client.js +180 -0
  54. package/dist/renderer/_default.page.client.js.map +1 -0
  55. package/dist/renderer/_default.page.server.css +312 -0
  56. package/dist/renderer/_default.page.server.css.map +1 -0
  57. package/dist/renderer/_default.page.server.d.ts +22 -0
  58. package/dist/renderer/_default.page.server.js +591 -0
  59. package/dist/renderer/_default.page.server.js.map +1 -0
  60. package/{src/utils/Emoji/road-fork.svg → dist/road-fork-3WZLW3HB.svg} +0 -0
  61. package/{src/utils/Emoji/shield.svg → dist/shield-CU45RG5C.svg} +0 -0
  62. package/{src/icons/twitter.svg → dist/twitter-I7DXDN3J.svg} +0 -0
  63. package/{src/utils/Emoji/typescript.svg → dist/typescript-ALIPKLRM.svg} +0 -0
  64. package/package.json +12 -9
  65. package/dist/chunk-ZYYJWJMY.js.map +0 -1
  66. package/src/MobileHeader.tsx +0 -68
  67. package/src/PageLayout.css +0 -41
  68. package/src/PageLayout.tsx +0 -37
  69. package/src/algolia/DocSearch.css +0 -29
  70. package/src/algolia/DocSearch.ts +0 -37
  71. package/src/autoScrollNav.ts +0 -22
  72. package/src/cli/devServer.ts +0 -31
  73. package/src/cli/index.ts +0 -29
  74. package/src/components/CodeBlock.tsx +0 -22
  75. package/src/components/DocLink.tsx +0 -108
  76. package/src/components/EditPageNote.tsx +0 -18
  77. package/src/components/HorizontalLine.tsx +0 -20
  78. package/src/components/ImportMeta.tsx +0 -11
  79. package/src/components/Info.tsx +0 -12
  80. package/src/components/Link.tsx +0 -18
  81. package/src/components/Note.tsx +0 -31
  82. package/src/components/P.css +0 -8
  83. package/src/components/P.tsx +0 -8
  84. package/src/components/ReadingRecommendation.tsx +0 -53
  85. package/src/components/RepoLink.tsx +0 -24
  86. package/src/components/Sponsors/companyLogos/ccoli-logo.svg +0 -1
  87. package/src/components/Sponsors/companyLogos/ccoli-text.svg +0 -1
  88. package/src/components/Sponsors/label.draft.svg +0 -108
  89. package/src/components/Sponsors.tsx +0 -242
  90. package/src/components/features/FeatureList.tsx +0 -114
  91. package/src/components/features/initFeatureList.ts +0 -66
  92. package/src/components/index.ts +0 -13
  93. package/src/config/Config.ts +0 -30
  94. package/src/config/getConfig.ts +0 -18
  95. package/src/config/resolveConfig/resolveHeading.ts +0 -0
  96. package/src/config/resolvePageContext.ts +0 -157
  97. package/src/css/button.css +0 -7
  98. package/src/css/code/block.css +0 -36
  99. package/src/css/code/inline.css +0 -27
  100. package/src/css/code.css +0 -20
  101. package/src/css/colorize-on-hover.css +0 -29
  102. package/src/css/font.css +0 -19
  103. package/src/css/heading.css +0 -25
  104. package/src/css/index.css +0 -11
  105. package/src/css/link.css +0 -17
  106. package/src/css/note.css +0 -26
  107. package/src/css/reset.css +0 -12
  108. package/src/css/table.css +0 -14
  109. package/src/css/tooltip.css +0 -11
  110. package/src/headings.ts +0 -200
  111. package/src/index.ts +0 -3
  112. package/src/installSectionUrlHashs.ts +0 -50
  113. package/src/markdownHeadingsVitePlugin.ts +0 -128
  114. package/src/navigation/Navigation-highlight.css +0 -41
  115. package/src/navigation/Navigation-items.css +0 -122
  116. package/src/navigation/Navigation-layout.css +0 -118
  117. package/src/navigation/Navigation.client.old.ts +0 -303
  118. package/src/navigation/Navigation.client.ts +0 -19
  119. package/src/navigation/Navigation.css +0 -12
  120. package/src/navigation/Navigation.tsx +0 -228
  121. package/src/navigation/NavigationHeader.tsx +0 -97
  122. package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.css +0 -32
  123. package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.tsx +0 -44
  124. package/src/navigation/navigation-fullscreen/initNavigationFullscreen.ts +0 -115
  125. package/src/parseEmojis.ts +0 -33
  126. package/src/renderer/_default.page.client.ts +0 -4
  127. package/src/renderer/_default.page.server.tsx +0 -69
  128. package/src/renderer/usePageContext.tsx +0 -25
  129. package/src/types.ts +0 -2
  130. package/src/utils/Emoji/Emoji.ts +0 -216
  131. package/src/utils/Emoji/assets.ts +0 -9
  132. package/src/utils/Emoji/index.ts +0 -1
  133. package/src/utils/Emoji/mountain.svg +0 -1
  134. package/src/utils/assert.ts +0 -39
  135. package/src/utils/client.ts +0 -2
  136. package/src/utils/crawlAllFiles.ts +0 -17
  137. package/src/utils/determineSectionUrlHash.ts +0 -35
  138. package/src/utils/filesystemPathHandling.ts +0 -42
  139. package/src/utils/filter.ts +0 -12
  140. package/src/utils/isBrowser.ts +0 -5
  141. package/src/utils/jsxToTextContent.ts +0 -11
  142. package/src/utils/objectAssign.ts +0 -9
  143. package/src/utils/server.ts +0 -8
  144. package/src/vite.config.ts +0 -44
package/dist/index.js CHANGED
@@ -1,32 +1,465 @@
1
1
  import {
2
- vite_config_default
3
- } from "./chunk-ZYYJWJMY.js";
4
-
5
- // src/cli/index.ts
6
- import { build, preview } from "vite";
7
- import { prerender } from "vite-plugin-ssr/prerender";
8
- var args = process.argv.filter(Boolean).slice(2);
9
- var isDev = args.includes("dev");
10
- var isPreview = args.includes("preview");
11
- var isBuild = args.includes("build");
12
- Error.stackTraceLimit = Infinity;
13
- cli();
14
- async function cli() {
15
- if (isDev) {
16
- await import("./devServer-J2XJQJGT.js");
17
- } else if (isBuild) {
18
- await build(vite_config_default);
19
- await build({ ...vite_config_default, build: { ssr: true } });
20
- await prerender({ viteConfig: vite_config_default });
21
- } else if (isPreview) {
22
- const server = await preview({ ...vite_config_default, preview: { host: true } });
23
- server.printUrls();
2
+ RepoLink,
3
+ getHeadings,
4
+ isRepoLink,
5
+ parseTitle,
6
+ usePageContext
7
+ } from "./chunk-H5CO4N2X.js";
8
+ import {
9
+ FeatureList
10
+ } from "./chunk-C3OIVLKV.js";
11
+ import {
12
+ Emoji,
13
+ crawlAllFiles,
14
+ determineSectionTitle,
15
+ determineSectionUrlHash,
16
+ filter,
17
+ jsxToTextContent,
18
+ objectAssign
19
+ } from "./chunk-7HKDCMSZ.js";
20
+ import {
21
+ assert,
22
+ assertUsage,
23
+ isBrowser
24
+ } from "./chunk-G2A5MZJA.js";
25
+ import "./chunk-TTLAZ2T2.js";
26
+
27
+ // src/components/Link.tsx
28
+ import React2 from "react";
29
+
30
+ // src/components/DocLink.tsx
31
+ import React from "react";
32
+ function DocLink({
33
+ href,
34
+ text,
35
+ noBreadcrumb,
36
+ doNotInferSectionTitle
37
+ }) {
38
+ const pageContext = usePageContext();
39
+ return /* @__PURE__ */ React.createElement("a", { href }, text || getTitle({ href, noBreadcrumb, pageContext, doNotInferSectionTitle }));
40
+ }
41
+ function getTitle({
42
+ href,
43
+ noBreadcrumb,
44
+ pageContext,
45
+ doNotInferSectionTitle
46
+ }) {
47
+ let urlHash = null;
48
+ let hrefWithoutHash = href;
49
+ if (href.includes("#")) {
50
+ ;
51
+ [hrefWithoutHash, urlHash] = href.split("#");
52
+ }
53
+ const heading = findHeading(hrefWithoutHash, pageContext);
54
+ const breadcrumbs = [];
55
+ if ("parentHeadings" in heading) {
56
+ breadcrumbs.push(
57
+ ...heading.parentHeadings.slice().reverse().map(({ title }) => title)
58
+ );
59
+ }
60
+ breadcrumbs.push(heading.title);
61
+ if (urlHash) {
62
+ let sectionTitle = void 0;
63
+ if ("sectionTitles" in heading && heading.sectionTitles) {
64
+ heading.sectionTitles.forEach((title) => {
65
+ if (determineSectionUrlHash(title) === urlHash) {
66
+ sectionTitle = parseTitle(title);
67
+ }
68
+ });
69
+ }
70
+ if (!sectionTitle) {
71
+ assertUsage(
72
+ !doNotInferSectionTitle,
73
+ `Page section title not found for <Link href="\`${href}\`" doNotInferSectionTitle={true} />.`
74
+ );
75
+ sectionTitle = determineSectionTitle(href, pageContext.config.titleNormalCase);
76
+ }
77
+ breadcrumbs.push(sectionTitle);
78
+ }
79
+ {
80
+ const linkIsOnSamePage = heading.url === pageContext.urlPathname;
81
+ if (noBreadcrumb || linkIsOnSamePage) {
82
+ return breadcrumbs[breadcrumbs.length - 1];
83
+ }
84
+ }
85
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, breadcrumbs.map((title, i) => {
86
+ const seperator = i === 0 ? /* @__PURE__ */ React.createElement(React.Fragment, null) : " > ";
87
+ return /* @__PURE__ */ React.createElement(React.Fragment, { key: i }, seperator, title);
88
+ }));
89
+ }
90
+ function findHeading(href, pageContext) {
91
+ assert(href.startsWith("/"), `\`href==='${href}'\` but should start with \`/\`.`);
92
+ const { headings, headingsWithoutLink } = getHeadings(pageContext.config);
93
+ {
94
+ const heading2 = headingsWithoutLink.find(({ url }) => href === url);
95
+ if (heading2) {
96
+ return heading2;
97
+ }
98
+ }
99
+ const heading = headings.find(({ url }) => href === url);
100
+ assert(heading, `Could not find page \`${href}\`. Does it exist?`);
101
+ return heading;
102
+ }
103
+
104
+ // src/components/Link.tsx
105
+ function Link(props) {
106
+ if (isRepoLink(props.href)) {
107
+ return /* @__PURE__ */ React2.createElement(RepoLink, { path: props.href, text: props.text });
24
108
  } else {
25
- throw new Error(
26
- `DocPress: unknown command \`$ docpress ${args.join(
27
- " "
28
- )}\`. Known commands: \`$ docpress dev\` and \`$ docpress preview\`.`
109
+ return /* @__PURE__ */ React2.createElement(DocLink, { ...props });
110
+ }
111
+ }
112
+
113
+ // src/components/P.tsx
114
+ import React3 from "react";
115
+ function P(props) {
116
+ return /* @__PURE__ */ React3.createElement("div", { ...props, className: "paragraph" });
117
+ }
118
+
119
+ // src/components/Info.tsx
120
+ import React4 from "react";
121
+ function Info({ children }) {
122
+ return /* @__PURE__ */ React4.createElement("blockquote", null, /* @__PURE__ */ React4.createElement(P, null, children));
123
+ }
124
+
125
+ // src/components/ReadingRecommendation.tsx
126
+ import React5 from "react";
127
+ function ReadingRecommendation({ tour, links }) {
128
+ const multiple = links.length + (tour ? 1 : 0) > 1;
129
+ return /* @__PURE__ */ React5.createElement(Info, null, multiple ? " " : "", /* @__PURE__ */ React5.createElement("b", null, "Reading Recommendation", multiple ? "." : ": "), (() => {
130
+ if (!multiple) {
131
+ const link = tour ? /* @__PURE__ */ React5.createElement(TourLink, null) : /* @__PURE__ */ React5.createElement(Link, { href: links[0] });
132
+ return /* @__PURE__ */ React5.createElement(React5.Fragment, null, link, ".");
133
+ }
134
+ return /* @__PURE__ */ React5.createElement(
135
+ "ul",
136
+ {
137
+ style: {
138
+ marginLeft: 18,
139
+ marginTop: 11
140
+ }
141
+ },
142
+ tour && /* @__PURE__ */ React5.createElement("li", null, /* @__PURE__ */ React5.createElement(TourLink, null)),
143
+ links.map((link, i) => /* @__PURE__ */ React5.createElement("li", { key: i }, /* @__PURE__ */ React5.createElement(Link, { href: link })))
29
144
  );
145
+ })());
146
+ }
147
+ function TourLink() {
148
+ return /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(Link, { href: "/react-tour", noBreadcrumb: true }), " or ", /* @__PURE__ */ React5.createElement(Link, { href: "/vue-tour", noBreadcrumb: true }));
149
+ }
150
+
151
+ // src/components/Note.tsx
152
+ import React6 from "react";
153
+ function Note({
154
+ type,
155
+ icon,
156
+ children
157
+ }) {
158
+ assert(type === void 0 || ["error", "warning"].includes(type));
159
+ if (!icon) {
160
+ if (type === "error") {
161
+ icon = ":no_entry:";
162
+ }
163
+ if (type === "warning") {
164
+ icon = ":warning:";
165
+ }
166
+ }
167
+ return /* @__PURE__ */ React6.createElement("blockquote", { className: type }, /* @__PURE__ */ React6.createElement("div", { style: { marginBottom: 20 } }), icon, " ", children, /* @__PURE__ */ React6.createElement("div", { style: { marginTop: 20 } }));
168
+ }
169
+
170
+ // src/components/ImportMeta.tsx
171
+ import React7 from "react";
172
+ function ImportMeta({ prop }) {
173
+ assert(!prop.startsWith("import"));
174
+ assert(!prop.startsWith("."));
175
+ const text = "import.meta." + prop;
176
+ return /* @__PURE__ */ React7.createElement("code", null, text);
177
+ }
178
+
179
+ // src/components/HorizontalLine.tsx
180
+ import React8 from "react";
181
+ function HorizontalLine({ primary }) {
182
+ return /* @__PURE__ */ React8.createElement("div", { className: "header-separator-line " + (primary ? "primary" : ""), style: { textAlign: "center" } }, /* @__PURE__ */ React8.createElement(
183
+ "hr",
184
+ {
185
+ style: {
186
+ display: "inline-block",
187
+ margin: 0,
188
+ border: 0,
189
+ borderTop: "1px solid #eee",
190
+ maxWidth: 500,
191
+ width: "80%"
192
+ }
193
+ }
194
+ ));
195
+ }
196
+
197
+ // src/components/Sponsors.tsx
198
+ import React9 from "react";
199
+
200
+ // src/icons/heart.svg
201
+ var heart_default = "/assets/heart-OINVKOXO.svg";
202
+
203
+ // src/components/Sponsors/companyLogos/ccoli.svg
204
+ var ccoli_default = "/assets/ccoli-CHW3TQKS.svg";
205
+
206
+ // src/components/Sponsors/companyLogos/contra.svg
207
+ var contra_default = "/assets/contra-WLZBOPBV.svg";
208
+
209
+ // src/components/Sponsors/companyLogos/mfqs.svg
210
+ var mfqs_default = "/assets/mfqs-2EAEE7N6.svg";
211
+
212
+ // src/components/Sponsors/medalGold.svg
213
+ var medalGold_default = "/assets/medalGold-UP6A73FL.svg";
214
+
215
+ // src/components/Sponsors/medalSilver.svg
216
+ var medalSilver_default = "/assets/medalSilver-FAPGGOBN.svg";
217
+
218
+ // src/components/Sponsors/medalBronze.svg
219
+ var medalBronze_default = "/assets/medalBronze-CO4CTUR4.svg";
220
+
221
+ // src/components/Sponsors/label.svg
222
+ var label_default = "/assets/label-MP75CTIA.svg";
223
+
224
+ // src/components/Sponsors.tsx
225
+ var sponsors = [
226
+ {
227
+ companyName: "Contra",
228
+ companyLogo: contra_default,
229
+ plan: "gold",
230
+ website: "https://contra.com"
231
+ },
232
+ {
233
+ companyName: "ccoli",
234
+ companyLogo: ccoli_default,
235
+ plan: "silver",
236
+ website: "https://ccoli.co"
237
+ },
238
+ {
239
+ companyName: "My Favorite Quilt Store",
240
+ companyLogo: mfqs_default,
241
+ plan: "bronze",
242
+ website: "https://myfavoritequiltstore.com"
243
+ },
244
+ {
245
+ username: "spacedawwwg"
246
+ },
247
+ {
248
+ username: "codthing"
249
+ },
250
+ {
251
+ username: "Junaidhkn"
252
+ },
253
+ {
254
+ username: "zgfdev"
255
+ }
256
+ ];
257
+ function Sponsors() {
258
+ const pageContext = usePageContext();
259
+ const { projectInfo } = pageContext.config;
260
+ return /* @__PURE__ */ React9.createElement("div", { style: { textAlign: "center", marginTop: 19 } }, /* @__PURE__ */ React9.createElement(
261
+ "a",
262
+ {
263
+ className: "button",
264
+ href: "https://github.com/sponsors/brillout",
265
+ style: {
266
+ color: "inherit",
267
+ display: "inline-flex",
268
+ alignItems: "center",
269
+ padding: "5px 10px",
270
+ marginBottom: 10
271
+ }
272
+ },
273
+ /* @__PURE__ */ React9.createElement("img", { src: heart_default, height: 22 }),
274
+ " ",
275
+ /* @__PURE__ */ React9.createElement("span", { style: { marginLeft: 7, fontSize: "1.07em" } }, "Sponsor")
276
+ ), /* @__PURE__ */ React9.createElement("div", null), /* @__PURE__ */ React9.createElement("div", { style: { maxWidth: 400, display: "inline-block", marginTop: 12, marginBottom: 12 } }, projectInfo.projectNameJsx || projectInfo.projectName, " is free and open source, made possible by wonderful sponsors."), /* @__PURE__ */ React9.createElement("div", { style: { display: "flex", flexWrap: "wrap", justifyContent: "center", alignItems: "end" } }, sponsors.map((sponsor, i) => /* @__PURE__ */ React9.createElement(SponsorDiv, { sponsor, key: i }))));
277
+ }
278
+ function SponsorDiv({ sponsor }) {
279
+ let imgSrc;
280
+ let imgAlt;
281
+ let width;
282
+ let height;
283
+ let website;
284
+ let padding;
285
+ let backgroundColor = "#f0f0f0";
286
+ let label = null;
287
+ if ("username" in sponsor) {
288
+ website = `https://github.com/${sponsor.username}`;
289
+ imgSrc = `https://github.com/${sponsor.username}.png?size=30`;
290
+ width = 30;
291
+ height = 30;
292
+ padding = 0;
293
+ backgroundColor = "none";
294
+ } else {
295
+ imgSrc = sponsor.companyLogo;
296
+ website = sponsor.website;
297
+ const size = getSize(sponsor.plan);
298
+ width = size.width;
299
+ height = size.height;
300
+ padding = size.padding;
301
+ imgAlt = sponsor.companyName;
302
+ label = /* @__PURE__ */ React9.createElement(Label, { sponsor });
303
+ }
304
+ const marginWidth = 5;
305
+ return /* @__PURE__ */ React9.createElement(
306
+ "a",
307
+ {
308
+ href: website,
309
+ style: {
310
+ margin: `10px ${marginWidth}px`
311
+ }
312
+ },
313
+ label,
314
+ /* @__PURE__ */ React9.createElement(
315
+ "div",
316
+ {
317
+ style: {
318
+ backgroundColor,
319
+ borderRadius: 7,
320
+ overflow: "hidden",
321
+ width,
322
+ maxWidth: `calc(100vw - 2 * var(--main-view-padding) - 2 * ${marginWidth}px)`,
323
+ height,
324
+ display: "flex",
325
+ alignItems: "center",
326
+ flexDirection: "column",
327
+ justifyContent: "center"
328
+ }
329
+ },
330
+ /* @__PURE__ */ React9.createElement(
331
+ "img",
332
+ {
333
+ style: { width: `calc(100% - ${padding}px)`, height: height - padding, zIndex: 2 },
334
+ src: imgSrc,
335
+ alt: imgAlt
336
+ }
337
+ )
338
+ )
339
+ );
340
+ }
341
+ function Label({ sponsor }) {
342
+ assert(!("username" in sponsor));
343
+ const labelBg = getLabelBg(sponsor);
344
+ const labelIcon = getLabelIcon(sponsor);
345
+ const labelText = getLabelText(sponsor);
346
+ return /* @__PURE__ */ React9.createElement(
347
+ "div",
348
+ {
349
+ style: {
350
+ top: 0,
351
+ display: "flex",
352
+ justifyContent: "center",
353
+ alignItems: "center",
354
+ position: "relative",
355
+ paddingBottom: 1
356
+ }
357
+ },
358
+ labelBg,
359
+ labelIcon,
360
+ labelText
361
+ );
362
+ }
363
+ function getLabelBg(sponsor) {
364
+ const height = sponsor.plan === "platinum" ? 32 : 24;
365
+ return /* @__PURE__ */ React9.createElement("img", { src: label_default, style: { height, position: "absolute", bottom: 0, zIndex: -1 } });
366
+ }
367
+ function getLabelText(sponsor) {
368
+ if (sponsor.plan === "platinum") {
369
+ return /* @__PURE__ */ React9.createElement(React9.Fragment, null);
370
+ }
371
+ const letterSpacing = ["bronze", "silver", "gold"].includes(sponsor.plan) ? 1 : void 0;
372
+ return /* @__PURE__ */ React9.createElement(React9.Fragment, null, " ", /* @__PURE__ */ React9.createElement(
373
+ "span",
374
+ {
375
+ style: {
376
+ zIndex: 1,
377
+ fontSize: "0.82em",
378
+ position: "relative",
379
+ top: 0,
380
+ fontWeight: 500,
381
+ color: "#666",
382
+ letterSpacing
383
+ }
384
+ },
385
+ capitalizeFirstLetter(sponsor.plan)
386
+ ));
387
+ }
388
+ function getLabelIcon(sponsor) {
389
+ let medalSrc;
390
+ if (sponsor.plan === "platinum") {
391
+ return /* @__PURE__ */ React9.createElement(Emoji, { name: "trophy", style: { fontSize: "1.3em" } });
392
+ } else if (sponsor.plan === "gold") {
393
+ medalSrc = medalGold_default;
394
+ } else if (sponsor.plan === "silver") {
395
+ medalSrc = medalSilver_default;
396
+ } else if (sponsor.plan === "bronze") {
397
+ medalSrc = medalBronze_default;
398
+ } else {
399
+ assert(false);
400
+ }
401
+ return /* @__PURE__ */ React9.createElement("img", { src: medalSrc, style: { height: 15, zIndex: 1, marginRight: 5 } });
402
+ }
403
+ function getSize(plan) {
404
+ if (plan === "platinum") {
405
+ assert(false);
406
+ }
407
+ if (plan === "gold") {
408
+ return { width: 400, height: 150, padding: 95 };
409
+ }
410
+ if (plan === "silver") {
411
+ return { width: 300, height: 100, padding: 45 };
412
+ }
413
+ if (plan === "bronze") {
414
+ return { width: 200, height: 70, padding: 30 };
415
+ }
416
+ if (plan === "FREE_SLOT") {
417
+ return { width: 150, height: 40, padding: 15 };
418
+ }
419
+ assert(false);
420
+ }
421
+ function capitalizeFirstLetter(word) {
422
+ return word[0].toUpperCase() + word.slice(1);
423
+ }
424
+
425
+ // src/components/CodeBlock.tsx
426
+ import React10 from "react";
427
+ function CodeBlock({ children, lineBreak }) {
428
+ assert(lineBreak, "`lineBreak: true` is currently the only use case for <CodeBlock>");
429
+ const style = {};
430
+ if (lineBreak) {
431
+ objectAssign(style, {
432
+ wordWrap: "break-word",
433
+ wordBreak: "break-all",
434
+ whiteSpace: "initial",
435
+ paddingRight: "16px !important"
436
+ });
30
437
  }
438
+ return /* @__PURE__ */ React10.createElement("pre", null, /* @__PURE__ */ React10.createElement("code", { style }, children));
31
439
  }
440
+ export {
441
+ CodeBlock,
442
+ DocLink,
443
+ Emoji,
444
+ FeatureList,
445
+ HorizontalLine,
446
+ ImportMeta,
447
+ Info,
448
+ Link,
449
+ Note,
450
+ P,
451
+ ReadingRecommendation,
452
+ RepoLink,
453
+ Sponsors,
454
+ assert,
455
+ assertUsage,
456
+ crawlAllFiles,
457
+ determineSectionTitle,
458
+ determineSectionUrlHash,
459
+ filter,
460
+ isBrowser,
461
+ isRepoLink,
462
+ jsxToTextContent,
463
+ objectAssign
464
+ };
32
465
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/index.ts"],"sourcesContent":["import { build, preview } from 'vite'\nimport config from '../vite.config'\nimport { prerender } from 'vite-plugin-ssr/prerender'\nconst args = process.argv.filter(Boolean).slice(2)\nconst isDev = args.includes('dev')\nconst isPreview = args.includes('preview')\nconst isBuild = args.includes('build')\nError.stackTraceLimit = Infinity\n\ncli()\n\nasync function cli() {\n if (isDev) {\n await import('./devServer')\n } else if (isBuild) {\n await build(config)\n await build({ ...config, build: { ssr: true } })\n await prerender({ viteConfig: config })\n } else if (isPreview) {\n const server = await preview({ ...config, preview: { host: true } })\n server.printUrls()\n } else {\n throw new Error(\n `DocPress: unknown command \\`$ docpress ${args.join(\n ' '\n )}\\`. Known commands: \\`$ docpress dev\\` and \\`$ docpress preview\\`.`\n )\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,OAAO,eAAe;AAE/B,SAAS,iBAAiB;AAC1B,IAAM,OAAO,QAAQ,KAAK,OAAO,OAAO,EAAE,MAAM,CAAC;AACjD,IAAM,QAAQ,KAAK,SAAS,KAAK;AACjC,IAAM,YAAY,KAAK,SAAS,SAAS;AACzC,IAAM,UAAU,KAAK,SAAS,OAAO;AACrC,MAAM,kBAAkB;AAExB,IAAI;AAEJ,eAAe,MAAM;AACnB,MAAI,OAAO;AACT,UAAM,OAAO;AAAA,EACf,WAAW,SAAS;AAClB,UAAM,MAAM,mBAAM;AAClB,UAAM,MAAM,EAAE,GAAG,qBAAQ,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;AAC/C,UAAM,UAAU,EAAE,YAAY,oBAAO,CAAC;AAAA,EACxC,WAAW,WAAW;AACpB,UAAM,SAAS,MAAM,QAAQ,EAAE,GAAG,qBAAQ,SAAS,EAAE,MAAM,KAAK,EAAE,CAAC;AACnE,WAAO,UAAU;AAAA,EACnB,OAAO;AACL,UAAM,IAAI;AAAA,MACR,0CAA0C,KAAK;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/components/Link.tsx","../src/components/DocLink.tsx","../src/components/P.tsx","../src/components/Info.tsx","../src/components/ReadingRecommendation.tsx","../src/components/Note.tsx","../src/components/ImportMeta.tsx","../src/components/HorizontalLine.tsx","../src/components/Sponsors.tsx","../src/components/CodeBlock.tsx"],"sourcesContent":["import React from 'react'\nimport { DocLink } from './DocLink'\nimport { isRepoLink, RepoLink } from './RepoLink'\n\nexport { Link }\n\nfunction Link(props: {\n href: string\n text?: string | JSX.Element\n noBreadcrumb?: true\n doNotInferSectionTitle?: true\n}) {\n if (isRepoLink(props.href)) {\n return <RepoLink path={props.href} text={props.text} />\n } else {\n return <DocLink {...props} />\n }\n}\n","import React from 'react'\nimport { getHeadings, parseTitle, Heading, HeadingWithoutLink } from '../headings'\nimport { PageContextResolved } from '../config/resolvePageContext'\nimport { usePageContext } from '../renderer/usePageContext'\nimport { assert, assertUsage, determineSectionTitle, determineSectionUrlHash } from '../utils/server'\n\nexport { DocLink }\n\nfunction DocLink({\n href,\n text,\n noBreadcrumb,\n doNotInferSectionTitle\n}: {\n href: string\n text?: string | JSX.Element\n noBreadcrumb?: true\n doNotInferSectionTitle?: true\n}) {\n const pageContext = usePageContext()\n return <a href={href}>{text || getTitle({ href, noBreadcrumb, pageContext, doNotInferSectionTitle })}</a>\n}\n\nfunction getTitle({\n href,\n noBreadcrumb,\n pageContext,\n doNotInferSectionTitle\n}: {\n href: string\n noBreadcrumb: true | undefined\n pageContext: PageContextResolved\n doNotInferSectionTitle: true | undefined\n}): string | JSX.Element {\n let urlHash: string | null = null\n let hrefWithoutHash: string = href\n if (href.includes('#')) {\n ;[hrefWithoutHash, urlHash] = href.split('#')\n }\n const heading = findHeading(hrefWithoutHash, pageContext)\n\n const breadcrumbs: (string | JSX.Element)[] = []\n\n if ('parentHeadings' in heading) {\n breadcrumbs.push(\n ...heading.parentHeadings\n .slice()\n .reverse()\n .map(({ title }) => title)\n )\n }\n\n breadcrumbs.push(heading.title)\n\n if (urlHash) {\n let sectionTitle: string | JSX.Element | undefined = undefined\n if ('sectionTitles' in heading && heading.sectionTitles) {\n heading.sectionTitles.forEach((title) => {\n if (determineSectionUrlHash(title) === urlHash) {\n sectionTitle = parseTitle(title)\n }\n })\n }\n if (!sectionTitle) {\n assertUsage(\n !doNotInferSectionTitle,\n `Page section title not found for <Link href=\"\\`${href}\\`\" doNotInferSectionTitle={true} />.`\n )\n sectionTitle = determineSectionTitle(href, pageContext.config.titleNormalCase)\n }\n breadcrumbs.push(sectionTitle)\n }\n\n {\n const linkIsOnSamePage = heading.url === pageContext.urlPathname\n if (noBreadcrumb || linkIsOnSamePage) {\n return breadcrumbs[breadcrumbs.length - 1]\n }\n }\n\n return (\n <>\n {breadcrumbs.map((title, i) => {\n const seperator = i === 0 ? <></> : ' > '\n return (\n <React.Fragment key={i}>\n {seperator}\n {title}\n </React.Fragment>\n )\n })}\n </>\n )\n}\n\nfunction findHeading(href: string, pageContext: PageContextResolved): Heading | HeadingWithoutLink {\n assert(href.startsWith('/'), `\\`href==='${href}'\\` but should start with \\`/\\`.`)\n const { headings, headingsWithoutLink } = getHeadings(pageContext.config)\n {\n const heading = headingsWithoutLink.find(({ url }) => href === url)\n if (heading) {\n return heading\n }\n }\n const heading = headings.find(({ url }) => href === url)\n assert(heading, `Could not find page \\`${href}\\`. Does it exist?`)\n return heading\n}\n","import React from 'react'\nimport './P.css'\n\nexport { P }\n\nfunction P(props: React.HTMLProps<HTMLDivElement>) {\n return <div {...props} className={'paragraph'} />\n}\n","import React from 'react'\nimport { P } from './P'\n\nexport { Info }\n\nfunction Info({ children }: { children: React.ReactNode }) {\n return (\n <blockquote>\n <P>{children}</P>\n </blockquote>\n )\n}\n","import React from 'react'\nimport { Info } from './Info'\nimport { Link } from './Link'\n\nexport { ReadingRecommendation }\n\nfunction ReadingRecommendation({ tour, links }: { tour?: true; links: string[] }) {\n const multiple = links.length + (tour ? 1 : 0) > 1\n return (\n <Info>\n {multiple ? ' ' : ''}\n <b>Reading Recommendation{multiple ? '.' : ': '}</b>\n {(() => {\n if (!multiple) {\n const link = tour ? <TourLink /> : <Link href={links[0]} />\n return (\n <>\n {link}\n {'.'}\n </>\n )\n }\n return (\n <ul\n style={{\n marginLeft: 18,\n marginTop: 11\n }}\n >\n {tour && (\n <li>\n <TourLink />\n </li>\n )}\n {links.map((link, i) => (\n <li key={i}>\n <Link href={link} />\n </li>\n ))}\n </ul>\n )\n })()}\n </Info>\n )\n}\n\nfunction TourLink() {\n return (\n <>\n <Link href={'/react-tour'} noBreadcrumb={true} /> or <Link href={'/vue-tour'} noBreadcrumb={true} />\n </>\n )\n}\n","export { Note }\n\nimport React from 'react'\nimport { assert } from '../utils/server'\n\nfunction Note({\n type,\n icon,\n children\n}: {\n icon: JSX.Element | string\n type?: 'error' | 'warning'\n children: JSX.Element\n}) {\n assert(type === undefined || ['error', 'warning'].includes(type))\n if (!icon) {\n if (type === 'error') {\n icon = ':no_entry:'\n }\n if (type === 'warning') {\n icon = ':warning:'\n }\n }\n return (\n <blockquote className={type}>\n <div style={{ marginBottom: 20 }} />\n {icon} {children}\n <div style={{ marginTop: 20 }} />\n </blockquote>\n )\n}\n","import React from 'react'\nimport { assert } from '../utils/server'\n\nexport { ImportMeta }\n\nfunction ImportMeta({ prop }: { prop: string }) {\n assert(!prop.startsWith('import'))\n assert(!prop.startsWith('.'))\n const text = 'imp' + 'ort.meta.' + prop\n return <code>{text}</code>\n}\n","import React from 'react'\n\nexport { HorizontalLine }\n\nfunction HorizontalLine({ primary }: { primary?: true }) {\n return (\n <div className={'header-separator-line ' + (primary ? 'primary' : '')} style={{ textAlign: 'center' }}>\n <hr\n style={{\n display: 'inline-block',\n margin: 0,\n border: 0,\n borderTop: '1px solid #eee',\n maxWidth: 500,\n width: '80%'\n }}\n />\n </div>\n )\n}\n","import React from 'react'\nimport iconHeart from '../icons/heart.svg'\nimport { usePageContext } from '../renderer/usePageContext'\nimport { assert, Emoji } from '../utils/server'\nimport ccoliLogo from './Sponsors/companyLogos/ccoli.svg'\nimport contraLogo from './Sponsors/companyLogos/contra.svg'\nimport mfqsLogo from './Sponsors/companyLogos/mfqs.svg'\nimport medalGold from './Sponsors/medalGold.svg'\nimport medalSilver from './Sponsors/medalSilver.svg'\nimport medalBronze from './Sponsors/medalBronze.svg'\nimport labelBgImg from './Sponsors/label.svg'\n\nexport { Sponsors }\n\ntype Plan = 'FREE_SLOT' | 'bronze' | 'silver' | 'gold' | 'platinum'\n\ntype SponsorCompany = {\n companyName: string\n companyLogo: string\n website: string\n plan: Plan\n}\ntype SponsorIndividual = {\n username: string\n}\ntype Sponsor = SponsorCompany | SponsorIndividual\n\nconst sponsors: Sponsor[] = [\n {\n companyName: 'Contra',\n companyLogo: contraLogo,\n plan: 'gold',\n website: 'https://contra.com'\n },\n {\n companyName: 'ccoli',\n companyLogo: ccoliLogo,\n plan: 'silver',\n website: 'https://ccoli.co'\n },\n {\n companyName: 'My Favorite Quilt Store',\n companyLogo: mfqsLogo,\n plan: 'bronze',\n website: 'https://myfavoritequiltstore.com'\n },\n {\n username: 'spacedawwwg'\n },\n {\n username: 'codthing'\n },\n {\n username: 'Junaidhkn'\n },\n {\n username: 'zgfdev'\n }\n]\n\nfunction Sponsors() {\n const pageContext = usePageContext()\n const { projectInfo } = pageContext.config\n return (\n <div style={{ textAlign: 'center', marginTop: 19 }}>\n <a\n className=\"button\"\n href=\"https://github.com/sponsors/brillout\"\n style={{\n color: 'inherit',\n display: 'inline-flex',\n alignItems: 'center',\n padding: '5px 10px',\n marginBottom: 10\n }}\n >\n <img src={iconHeart} height={22} /> <span style={{ marginLeft: 7, fontSize: '1.07em' }}>Sponsor</span>\n </a>\n <div></div>\n <div style={{ maxWidth: 400, display: 'inline-block', marginTop: 12, marginBottom: 12 }}>\n {projectInfo.projectNameJsx || projectInfo.projectName} is free and open source, made possible by wonderful\n sponsors.\n </div>\n <div style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'center', alignItems: 'end' }}>\n {sponsors.map((sponsor, i) => (\n <SponsorDiv sponsor={sponsor} key={i} />\n ))}\n </div>\n </div>\n )\n}\n\nfunction SponsorDiv({ sponsor }: { sponsor: Sponsor }) {\n let imgSrc: string\n let imgAlt: string | undefined\n let width: number\n let height: number\n let website: string\n let padding: number\n let backgroundColor = '#f0f0f0'\n let label: null | JSX.Element = null\n if ('username' in sponsor) {\n website = `https://github.com/${sponsor.username}`\n imgSrc = `https://github.com/${sponsor.username}.png?size=30`\n width = 30\n height = 30\n padding = 0\n backgroundColor = 'none'\n } else {\n imgSrc = sponsor.companyLogo\n website = sponsor.website\n const size = getSize(sponsor.plan)\n width = size.width\n height = size.height\n padding = size.padding\n imgAlt = sponsor.companyName\n label = <Label sponsor={sponsor} />\n }\n const marginWidth = 5\n return (\n <a\n href={website}\n style={{\n margin: `10px ${marginWidth}px`\n }}\n >\n {label}\n <div\n style={{\n backgroundColor,\n borderRadius: 7,\n overflow: 'hidden',\n width,\n maxWidth: `calc(100vw - 2 * var(--main-view-padding) - 2 * ${marginWidth}px)`,\n height,\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'center'\n }}\n >\n <img\n style={{ width: `calc(100% - ${padding}px)`, height: height - padding, zIndex: 2 }}\n src={imgSrc}\n alt={imgAlt}\n />\n </div>\n </a>\n )\n}\n\nfunction Label({ sponsor }: { sponsor: Sponsor }) {\n assert(!('username' in sponsor))\n const labelBg = getLabelBg(sponsor)\n const labelIcon = getLabelIcon(sponsor)\n const labelText = getLabelText(sponsor)\n return (\n <div\n style={{\n top: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n paddingBottom: 1\n }}\n >\n {labelBg}\n {labelIcon}\n {labelText}\n </div>\n )\n}\n\nfunction getLabelBg(sponsor: SponsorCompany) {\n const height = sponsor.plan === 'platinum' ? 32 : 24\n return <img src={labelBgImg} style={{ height, position: 'absolute', bottom: 0, zIndex: -1 }} />\n}\n\nfunction getLabelText(sponsor: SponsorCompany) {\n if (sponsor.plan === 'platinum') {\n return <></>\n }\n const letterSpacing = ['bronze', 'silver', 'gold'].includes(sponsor.plan) ? 1 : undefined\n return (\n <>\n {' '}\n <span\n style={{\n zIndex: 1,\n fontSize: '0.82em',\n position: 'relative',\n top: 0,\n fontWeight: 500,\n color: '#666',\n letterSpacing\n }}\n >\n {capitalizeFirstLetter(sponsor.plan)}\n </span>\n </>\n )\n}\n\nfunction getLabelIcon(sponsor: SponsorCompany) {\n let medalSrc: string\n if (sponsor.plan === 'platinum') {\n return <Emoji name=\"trophy\" style={{ fontSize: '1.3em' }} />\n } else if (sponsor.plan === 'gold') {\n medalSrc = medalGold\n } else if (sponsor.plan === 'silver') {\n medalSrc = medalSilver\n } else if (sponsor.plan === 'bronze') {\n medalSrc = medalBronze\n } else {\n assert(false)\n }\n return <img src={medalSrc} style={{ height: 15, zIndex: 1, marginRight: 5 }} />\n}\n\nfunction getSize(plan: Plan) {\n if (plan === 'platinum') {\n assert(false)\n }\n if (plan === 'gold') {\n return { width: 400, height: 150, padding: 95 }\n }\n if (plan === 'silver') {\n return { width: 300, height: 100, padding: 45 }\n }\n if (plan === 'bronze') {\n return { width: 200, height: 70, padding: 30 }\n }\n if (plan === 'FREE_SLOT') {\n return { width: 150, height: 40, padding: 15 }\n }\n assert(false)\n}\n\nfunction capitalizeFirstLetter(word: string): string {\n return word[0].toUpperCase() + word.slice(1)\n}\n","export { CodeBlock }\n\nimport React from 'react'\nimport { assert, objectAssign } from '../utils/server'\n\nfunction CodeBlock({ children, lineBreak }: { children: any; lineBreak?: true }) {\n assert(lineBreak, '`lineBreak: true` is currently the only use case for <CodeBlock>')\n const style = {}\n if (lineBreak) {\n objectAssign(style, {\n wordWrap: 'break-word',\n wordBreak: 'break-all',\n whiteSpace: 'initial',\n paddingRight: '16px !important'\n })\n }\n return (\n <pre>\n <code style={style}>{children}</code>\n </pre>\n )\n}\n"],"mappings":"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","names":["React","heading","React","React","React","React","React","React","React","React","React","React","React","React","React","React","React","React","React"]}