@brillout/docpress 0.15.8 → 0.15.10-commit-ef0b9a0

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 (43) hide show
  1. package/NavItemComponent.tsx +11 -0
  2. package/components/CodeSnippets.tsx +68 -0
  3. package/components/index.ts +1 -0
  4. package/detypePlugin.ts +68 -0
  5. package/dist/+config.js +1 -1
  6. package/dist/NavItemComponent.d.ts +0 -1
  7. package/dist/NavItemComponent.js +38 -47
  8. package/dist/components/CodeBlockTransformer.js +2 -3
  9. package/dist/components/CodeSnippets.d.ts +13 -0
  10. package/dist/components/CodeSnippets.js +39 -0
  11. package/dist/components/Comment.js +1 -2
  12. package/dist/components/FileRemoved.js +4 -6
  13. package/dist/components/HorizontalLine.js +1 -2
  14. package/dist/components/ImportMeta.js +2 -3
  15. package/dist/components/Link.js +34 -50
  16. package/dist/components/Note.js +17 -29
  17. package/dist/components/P.js +1 -12
  18. package/dist/components/RepoLink.js +7 -9
  19. package/dist/components/index.d.ts +1 -0
  20. package/dist/components/index.js +1 -0
  21. package/dist/determineNavItemsColumnLayout.js +48 -62
  22. package/dist/detypePlugin.d.ts +3 -0
  23. package/dist/detypePlugin.js +53 -0
  24. package/dist/parseMarkdownMini.js +5 -17
  25. package/dist/parsePageSections.js +41 -82
  26. package/dist/renderer/usePageContext.js +6 -7
  27. package/dist/resolvePageContext.js +91 -103
  28. package/dist/utils/Emoji/Emoji.js +13 -21
  29. package/dist/utils/assert.js +14 -16
  30. package/dist/utils/cls.js +1 -1
  31. package/dist/utils/determineSectionUrlHash.js +5 -5
  32. package/dist/utils/filter.js +2 -2
  33. package/dist/utils/getGlobalObject.js +3 -3
  34. package/dist/utils/useSelectedLanguage.d.ts +7 -0
  35. package/dist/utils/useSelectedLanguage.js +48 -0
  36. package/dist/vite.config.js +9 -7
  37. package/global.d.ts +3 -1
  38. package/index.ts +3 -0
  39. package/package.json +2 -1
  40. package/tsconfig.config.json +1 -1
  41. package/tsconfig.json +1 -0
  42. package/utils/useSelectedLanguage.ts +61 -0
  43. package/vite.config.ts +2 -0
@@ -1,14 +1,3 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  export { Warning };
13
2
  export { Advanced };
14
3
  export { Construction };
@@ -27,39 +16,38 @@ import React from 'react';
27
16
  import { assert } from '../utils/assert';
28
17
  import './Note.css';
29
18
  function Warning(props) {
30
- return React.createElement(NoteGeneric, __assign({ type: "warning" }, props));
19
+ return React.createElement(NoteGeneric, { type: "warning", ...props });
31
20
  }
32
21
  function Advanced(props) {
33
- return React.createElement(NoteGeneric, __assign({ type: "advanced" }, props));
22
+ return React.createElement(NoteGeneric, { type: "advanced", ...props });
34
23
  }
35
24
  function Construction(props) {
36
- return React.createElement(NoteGeneric, __assign({ type: "construction" }, props));
25
+ return React.createElement(NoteGeneric, { type: "construction", ...props });
37
26
  }
38
27
  function Contribution(props) {
39
- return React.createElement(NoteGeneric, __assign({ type: "contribution" }, props));
28
+ return React.createElement(NoteGeneric, { type: "contribution", ...props });
40
29
  }
41
30
  function Danger(props) {
42
- return React.createElement(NoteGeneric, __assign({ type: "danger" }, props));
31
+ return React.createElement(NoteGeneric, { type: "danger", ...props });
43
32
  }
44
33
  function NoteWithoutIcon(props) {
45
- return React.createElement(NoteGeneric, __assign({ icon: null }, props));
34
+ return React.createElement(NoteGeneric, { icon: null, ...props });
46
35
  }
47
36
  function NoteWithCustomIcon(props) {
48
- var icon = props.icon;
37
+ const { icon } = props;
49
38
  if (!icon)
50
- throw new Error("<NoteWithCustomIcon icon={/*...*/}> property 'icon' is `".concat(icon, "` which is forbidden"));
51
- return React.createElement(NoteGeneric, __assign({}, props));
39
+ throw new Error(`<NoteWithCustomIcon icon={/*...*/}> property 'icon' is \`${icon}\` which is forbidden`);
40
+ return React.createElement(NoteGeneric, { ...props });
52
41
  }
53
- function NoteGeneric(_a) {
54
- var type = _a.type, icon = _a.icon, iconMargin = _a.iconMargin, children = _a.children, style = _a.style;
55
- assert(icon === null || icon || type, { icon: icon, type: type });
56
- iconMargin !== null && iconMargin !== void 0 ? iconMargin : (iconMargin = 2);
57
- var className = 'custom-icon';
42
+ function NoteGeneric({ type, icon, iconMargin, children, style, }) {
43
+ assert(icon === null || icon || type, { icon, type });
44
+ iconMargin ?? (iconMargin = 2);
45
+ let className = 'custom-icon';
58
46
  if (type) {
59
- className = "".concat(className, " type-").concat(type);
47
+ className = `${className} type-${type}`;
60
48
  }
61
49
  if (!icon && type) {
62
- var classColor = '';
50
+ let classColor = '';
63
51
  if (type === 'danger') {
64
52
  icon = '⛔';
65
53
  classColor = 'note-color-red';
@@ -82,13 +70,13 @@ function NoteGeneric(_a) {
82
70
  }
83
71
  assert(icon);
84
72
  assert(classColor);
85
- className = "".concat(className, " ").concat(classColor);
73
+ className = `${className} ${classColor}`;
86
74
  }
87
75
  return (React.createElement("blockquote", { className: className, style: style },
88
76
  React.createElement("div", { style: { marginBottom: 20 } }),
89
77
  icon && (React.createElement(React.Fragment, null,
90
78
  React.createElement("span", { style: { fontFamily: 'emoji' } }, icon),
91
- React.createElement("span", { style: { width: iconMargin !== null && iconMargin !== void 0 ? iconMargin : undefined, display: 'inline-block' } }),
79
+ React.createElement("span", { style: { width: iconMargin ?? undefined, display: 'inline-block' } }),
92
80
  ' ')),
93
81
  React.createElement("div", { className: "blockquote-content" }, children),
94
82
  React.createElement("div", { style: { marginTop: 20 } })));
@@ -1,17 +1,6 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import React from 'react';
13
2
  import './P.css';
14
3
  export { P };
15
4
  function P(props) {
16
- return React.createElement("div", __assign({}, props, { className: 'paragraph' }));
5
+ return React.createElement("div", { ...props, className: 'paragraph' });
17
6
  }
@@ -2,21 +2,19 @@ export { RepoLink };
2
2
  export { getRepoHref };
3
3
  import React from 'react';
4
4
  import { usePageContext } from '../renderer/usePageContext';
5
- function RepoLink(_a) {
6
- var path = _a.path, text = _a.text;
5
+ function RepoLink({ path, text }) {
7
6
  text = text || path;
8
- var href = getRepoHref(path);
7
+ const href = getRepoHref(path);
9
8
  return React.createElement("a", { href: href }, text);
10
9
  }
11
- function getRepoHref(path, editMode) {
12
- if (editMode === void 0) { editMode = false; }
13
- var pageContext = usePageContext();
10
+ function getRepoHref(path, editMode = false) {
11
+ const pageContext = usePageContext();
14
12
  if (!path.startsWith('/')) {
15
13
  path = '/' + path;
16
14
  }
17
- var viewMode = path.endsWith('/') && !editMode ? 'tree' : 'blob';
18
- var github = pageContext.globalContext.config.docpress.github;
19
- var href = "".concat(github, "/").concat(viewMode, "/main").concat(path);
15
+ const viewMode = path.endsWith('/') && !editMode ? 'tree' : 'blob';
16
+ const { github } = pageContext.globalContext.config.docpress;
17
+ let href = `${github}/${viewMode}/main${path}`;
20
18
  if (editMode)
21
19
  href += '?plain=1';
22
20
  return href;
@@ -8,3 +8,4 @@ export * from './HorizontalLine';
8
8
  export * from './CodeBlockTransformer';
9
9
  export * from './Comment';
10
10
  export * from './FileRemoved';
11
+ export * from './CodeSnippets';
@@ -8,3 +8,4 @@ export * from './HorizontalLine';
8
8
  export * from './CodeBlockTransformer';
9
9
  export * from './Comment';
10
10
  export * from './FileRemoved';
11
+ export * from './CodeSnippets';
@@ -1,47 +1,26 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
- if (ar || !(i in from)) {
15
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
- ar[i] = from[i];
17
- }
18
- }
19
- return to.concat(ar || Array.prototype.slice.call(from));
20
- };
21
1
  export { determineNavItemsColumnLayout };
22
2
  import { assert, assertUsage } from './utils/assert';
23
3
  function determineNavItemsColumnLayout(navItems) {
24
- var columnLayouts = getColumnEntries(navItems);
25
- columnLayouts.forEach(function (columnEntries) {
26
- var _loop_1 = function (numberOfColumns) {
27
- var columnMapping = determineColumnLayout(columnEntries.map(function (columnEntry) { return columnEntry.numberOfEntries; }), numberOfColumns);
28
- columnEntries.forEach(function (columnEntry, i) {
4
+ const columnLayouts = getColumnEntries(navItems);
5
+ columnLayouts.forEach((columnEntries) => {
6
+ for (let numberOfColumns = columnEntries.length; numberOfColumns >= 1; numberOfColumns--) {
7
+ const columnMapping = determineColumnLayout(columnEntries.map((columnEntry) => columnEntry.numberOfEntries), numberOfColumns);
8
+ columnEntries.forEach((columnEntry, i) => {
29
9
  var _a;
30
- var _b;
31
- (_a = (_b = columnEntry.navItemLeader).isColumnEntry) !== null && _a !== void 0 ? _a : (_b.isColumnEntry = {});
10
+ (_a = columnEntry.navItemLeader).isColumnEntry ?? (_a.isColumnEntry = {});
32
11
  columnEntry.navItemLeader.isColumnEntry[numberOfColumns] = columnMapping[i];
33
12
  });
34
- };
35
- for (var numberOfColumns = columnEntries.length; numberOfColumns >= 1; numberOfColumns--) {
36
- _loop_1(numberOfColumns);
37
13
  }
38
14
  });
39
15
  }
40
16
  function getColumnEntries(navItems) {
41
- var navItemsWithLength = navItems.map(function (navItem) { return (__assign(__assign({}, navItem), { numberOfHeadings: navItem.level === 1 || navItem.level === 4 ? 0 : null })); });
42
- var navItemLevel1;
43
- var navItemLevel4;
44
- navItemsWithLength.forEach(function (navItem) {
17
+ const navItemsWithLength = navItems.map((navItem) => ({
18
+ ...navItem,
19
+ numberOfHeadings: navItem.level === 1 || navItem.level === 4 ? 0 : null,
20
+ }));
21
+ let navItemLevel1;
22
+ let navItemLevel4;
23
+ navItemsWithLength.forEach((navItem) => {
45
24
  if (navItem.level === 1) {
46
25
  navItemLevel1 = navItem;
47
26
  navItemLevel4 = undefined;
@@ -51,7 +30,7 @@ function getColumnEntries(navItems) {
51
30
  navItemLevel4 = navItem;
52
31
  return;
53
32
  }
54
- var bumpNavItemLength = function (navItem) {
33
+ const bumpNavItemLength = (navItem) => {
55
34
  assert(navItem.numberOfHeadings !== null);
56
35
  navItem.numberOfHeadings++;
57
36
  };
@@ -61,13 +40,13 @@ function getColumnEntries(navItems) {
61
40
  bumpNavItemLength(navItemLevel4);
62
41
  }
63
42
  });
64
- var columnLayouts = [];
65
- var columnEntries = [];
66
- var isFullWidthCategory;
67
- navItemsWithLength.forEach(function (navItem, i) {
68
- var isFullWidthCategoryBegin = false;
43
+ const columnLayouts = [];
44
+ let columnEntries = [];
45
+ let isFullWidthCategory;
46
+ navItemsWithLength.forEach((navItem, i) => {
47
+ let isFullWidthCategoryBegin = false;
69
48
  if (navItem.level === 1) {
70
- var isFullWidthCategoryPrevious = isFullWidthCategory;
49
+ const isFullWidthCategoryPrevious = isFullWidthCategory;
71
50
  isFullWidthCategory = !!navItem.menuModalFullWidth;
72
51
  if (isFullWidthCategory)
73
52
  isFullWidthCategoryBegin = true;
@@ -76,8 +55,8 @@ function getColumnEntries(navItems) {
76
55
  columnEntries = [];
77
56
  }
78
57
  }
79
- var navItemPrevious = navItemsWithLength[i - 1];
80
- var navItemNext = navItemsWithLength[i + 1];
58
+ const navItemPrevious = navItemsWithLength[i - 1];
59
+ const navItemNext = navItemsWithLength[i + 1];
81
60
  if (!isFullWidthCategory
82
61
  ? navItem.level === 1
83
62
  : (navItem.level === 4 && navItemPrevious.level !== 1) || isFullWidthCategoryBegin) {
@@ -87,7 +66,7 @@ function getColumnEntries(navItems) {
87
66
  else {
88
67
  assert(navItem.level === 1);
89
68
  }
90
- var numberOfHeadings = navItem.numberOfHeadings;
69
+ let { numberOfHeadings } = navItem;
91
70
  assert(numberOfHeadings !== null);
92
71
  if (isFullWidthCategoryBegin) {
93
72
  assert(navItem.level === 1);
@@ -106,15 +85,15 @@ function getColumnEntries(navItems) {
106
85
  }
107
86
  function determineColumnLayout(columnsUnmerged, numberOfColumns) {
108
87
  assert(numberOfColumns <= columnsUnmerged.length);
109
- var columnsMergingInit = columnsUnmerged.map(function (columnHeight, i) { return ({
88
+ const columnsMergingInit = columnsUnmerged.map((columnHeight, i) => ({
110
89
  columnIdsMerged: [i],
111
90
  heightTotal: columnHeight,
112
- }); });
113
- var columnsMerged = mergeColumns(columnsMergingInit, numberOfColumns);
114
- var columnsIdMap = new Array(columnsUnmerged.length);
91
+ }));
92
+ const columnsMerged = mergeColumns(columnsMergingInit, numberOfColumns);
93
+ const columnsIdMap = new Array(columnsUnmerged.length);
115
94
  assert(columnsMerged.length === numberOfColumns);
116
- columnsMerged.forEach(function (columnMerged, columnMergedId) {
117
- columnMerged.columnIdsMerged.forEach(function (columnId) {
95
+ columnsMerged.forEach((columnMerged, columnMergedId) => {
96
+ columnMerged.columnIdsMerged.forEach((columnId) => {
118
97
  columnsIdMap[columnId] = columnMergedId;
119
98
  });
120
99
  });
@@ -124,25 +103,32 @@ function determineColumnLayout(columnsUnmerged, numberOfColumns) {
124
103
  function mergeColumns(columnsMerging, numberOfColumns) {
125
104
  if (columnsMerging.length <= numberOfColumns)
126
105
  return columnsMerging;
127
- var mergeCandidate = null;
128
- for (var i_1 = 0; i_1 <= columnsMerging.length - 2; i_1++) {
129
- var column1 = columnsMerging[i_1 + 0];
130
- var column2 = columnsMerging[i_1 + 1];
131
- var heightTotal = column1.heightTotal + column2.heightTotal;
106
+ let mergeCandidate = null;
107
+ for (let i = 0; i <= columnsMerging.length - 2; i++) {
108
+ const column1 = columnsMerging[i + 0];
109
+ const column2 = columnsMerging[i + 1];
110
+ const heightTotal = column1.heightTotal + column2.heightTotal;
132
111
  if (!mergeCandidate || mergeCandidate.heightTotal > heightTotal) {
133
112
  mergeCandidate = {
134
- i: i_1,
135
- columnIdsMerged: __spreadArray(__spreadArray([], column1.columnIdsMerged, true), column2.columnIdsMerged, true),
136
- heightTotal: heightTotal,
113
+ i,
114
+ columnIdsMerged: [
115
+ //
116
+ ...column1.columnIdsMerged,
117
+ ...column2.columnIdsMerged,
118
+ ],
119
+ heightTotal,
137
120
  };
138
121
  }
139
122
  }
140
123
  assert(mergeCandidate);
141
- var i = mergeCandidate.i;
124
+ const { i } = mergeCandidate;
142
125
  assert(-1 < i && i < columnsMerging.length - 1);
143
- var columnsMergingMod = __spreadArray(__spreadArray(__spreadArray([], columnsMerging.slice(0, i), true), [
144
- mergeCandidate
145
- ], false), columnsMerging.slice(i + 2), true);
126
+ const columnsMergingMod = [
127
+ //
128
+ ...columnsMerging.slice(0, i),
129
+ mergeCandidate,
130
+ ...columnsMerging.slice(i + 2),
131
+ ];
146
132
  assert(columnsMergingMod.length === columnsMerging.length - 1);
147
133
  return mergeColumns(columnsMergingMod, numberOfColumns);
148
134
  }
@@ -0,0 +1,3 @@
1
+ export { detypePlugin };
2
+ import type { PluginOption } from 'vite';
3
+ declare function detypePlugin(): PluginOption;
@@ -0,0 +1,53 @@
1
+ export { detypePlugin };
2
+ import module from 'node:module';
3
+ // Cannot use `import { transform } from 'detype'` as it results in errors,
4
+ // and the package has no default export. Using `module.createRequire` instead.
5
+ const { transform } = module.createRequire(import.meta.url)('detype');
6
+ function detypePlugin() {
7
+ return {
8
+ name: '@brillout/docpress:detypePlugin',
9
+ enforce: 'pre',
10
+ transform: async (code, id) => {
11
+ if (!id.endsWith('+Page.mdx')) {
12
+ return;
13
+ }
14
+ const codeNew = await transformCode(code);
15
+ return codeNew;
16
+ },
17
+ };
18
+ }
19
+ const tsBlockRegex = /```(tsx?|vue)(\s+ts-only)?([\s\S]*?)```/g;
20
+ async function transformCode(code) {
21
+ let codeNew = `import { CodeSnippets, CodeSnippet } from '@brillout/docpress';\n`;
22
+ let lastIndex = 0;
23
+ const matches = [...code.matchAll(tsBlockRegex)];
24
+ if (matches.length === 0) {
25
+ return code;
26
+ }
27
+ for (const match of matches) {
28
+ const [tsCodeBlock, lang, tsOnly, tsCode] = match; // lang = ts | tsx | vue
29
+ const type = lang === 'vue' ? 'vue' : lang.replace('t', 'j'); // ts => js | tsx => jsx
30
+ const blockStart = match.index;
31
+ const blockEnd = blockStart + tsCodeBlock.length;
32
+ codeNew += code.slice(lastIndex, blockStart);
33
+ if (tsOnly) {
34
+ codeNew += `\n<CodeSnippet language={'ts'} tsOnly={'true'}>\n${tsCodeBlock}\n</CodeSnippet>\n`;
35
+ }
36
+ else {
37
+ const jsCode = await transform(tsCode.trim().replaceAll('.ts', '.js'), `tsCode.${lang}`, {
38
+ removeTsComments: true,
39
+ prettierOptions: {
40
+ semi: false,
41
+ singleQuote: true,
42
+ },
43
+ });
44
+ const jsCodeBlock = `\`\`\`${type}\n${jsCode}\`\`\``;
45
+ const jsCodeSnippet = `\n<CodeSnippet language={'js'}>\n${jsCodeBlock}\n</CodeSnippet>\n`;
46
+ const tsCodeSnippet = `\n<CodeSnippet language={'ts'}>\n${tsCodeBlock}\n</CodeSnippet>\n`;
47
+ codeNew += `<CodeSnippets>${jsCodeSnippet}${tsCodeSnippet}</CodeSnippets>`;
48
+ }
49
+ lastIndex = blockEnd;
50
+ }
51
+ codeNew += code.slice(lastIndex);
52
+ return codeNew;
53
+ }
@@ -1,20 +1,11 @@
1
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
- if (ar || !(i in from)) {
4
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
- ar[i] = from[i];
6
- }
7
- }
8
- return to.concat(ar || Array.prototype.slice.call(from));
9
- };
10
1
  export { parseMarkdownMini };
11
2
  import React from 'react';
12
3
  function parseMarkdownMini(markdown) {
13
- var parts = [];
14
- var current;
15
- markdown.split('').forEach(function (letter) {
4
+ const parts = [];
5
+ let current;
6
+ markdown.split('').forEach((letter) => {
16
7
  if (letter === '`') {
17
- if ((current === null || current === void 0 ? void 0 : current.nodeType) === 'code') {
8
+ if (current?.nodeType === 'code') {
18
9
  // </code>
19
10
  parts.push(current);
20
11
  current = undefined;
@@ -37,9 +28,6 @@ function parseMarkdownMini(markdown) {
37
28
  if (current) {
38
29
  parts.push(current);
39
30
  }
40
- var parsed = React.createElement.apply(React, __spreadArray([React.Fragment,
41
- {}], parts.map(function (part, i) {
42
- return React.createElement(part.nodeType === 'code' ? 'code' : React.Fragment, { key: i }, part.content);
43
- }), false));
31
+ const parsed = React.createElement(React.Fragment, {}, ...parts.map((part, i) => React.createElement(part.nodeType === 'code' ? 'code' : React.Fragment, { key: i }, part.content)));
44
32
  return parsed;
45
33
  }
@@ -1,66 +1,26 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
1
  export { parsePageSections };
38
2
  import { assert } from './utils/assert.js';
39
3
  import { determineSectionUrlHash } from './utils/determineSectionUrlHash.js';
40
4
  import os from 'os';
41
5
  function parsePageSections() {
42
- var _this = this;
43
6
  return {
44
7
  name: '@brillout/docpress:parsePageSections',
45
8
  enforce: 'pre',
46
- transform: function (code, id) { return __awaiter(_this, void 0, void 0, function () {
47
- var codeNew;
48
- return __generator(this, function (_a) {
49
- if (!id.endsWith('+Page.mdx')) {
50
- return [2 /*return*/];
51
- }
52
- codeNew = transform(code);
53
- return [2 /*return*/, codeNew];
54
- });
55
- }); },
9
+ transform: async (code, id) => {
10
+ if (!id.endsWith('+Page.mdx')) {
11
+ return;
12
+ }
13
+ const codeNew = transform(code);
14
+ return codeNew;
15
+ },
56
16
  };
57
17
  }
58
18
  function transform(code) {
59
- var pageSections = [];
60
- var isCodeBlock = false;
61
- var codeNew = code
19
+ const pageSections = [];
20
+ let isCodeBlock = false;
21
+ let codeNew = code
62
22
  .split('\n')
63
- .map(function (line) {
23
+ .map((line) => {
64
24
  // Skip code blocks, e.g.
65
25
  // ~~~md
66
26
  // # Markdown Example
@@ -78,51 +38,50 @@ function transform(code) {
78
38
  || line.startsWith('<h2')
79
39
  */
80
40
  ) {
81
- var _a = parsePageSection(line), pageSectionId = _a.pageSectionId, pageSectionLevel = _a.pageSectionLevel, pageSectionTitle = _a.pageSectionTitle, headingHtml = _a.headingHtml;
82
- pageSections.push({ pageSectionId: pageSectionId, pageSectionLevel: pageSectionLevel, pageSectionTitle: pageSectionTitle });
41
+ const { pageSectionId, pageSectionLevel, pageSectionTitle, headingHtml } = parsePageSection(line);
42
+ pageSections.push({ pageSectionId, pageSectionLevel, pageSectionTitle });
83
43
  return headingHtml;
84
44
  }
85
45
  return line;
86
46
  })
87
47
  .join('\n');
88
- var exportCode = "export const pageSectionsExport = [".concat(pageSections
89
- .map(function (pageSection) { return JSON.stringify(pageSection); })
90
- .join(', '), "];");
91
- codeNew += "\n\n".concat(exportCode, "\n");
48
+ const exportCode = `export const pageSectionsExport = [${pageSections
49
+ .map((pageSection) => JSON.stringify(pageSection))
50
+ .join(', ')}];`;
51
+ codeNew += `\n\n${exportCode}\n`;
92
52
  return codeNew;
93
53
  }
94
54
  function parsePageSection(line) {
95
- var _a;
96
- var _b = line.split(' '), lineBegin = _b[0], lineWords = _b.slice(1);
97
- assert(lineBegin.split('#').join('') === '', { line: line, lineWords: lineWords });
98
- var pageSectionLevel = lineBegin.length;
99
- var titleMdx = lineWords.join(' ');
100
- assert(!titleMdx.startsWith(' '), { line: line, lineWords: lineWords });
101
- assert(titleMdx, { line: line, lineWords: lineWords });
102
- var pageSectionTitle = titleMdx;
103
- var anchor = titleMdx;
55
+ const [lineBegin, ...lineWords] = line.split(' ');
56
+ assert(lineBegin.split('#').join('') === '', { line, lineWords });
57
+ const pageSectionLevel = lineBegin.length;
58
+ const titleMdx = lineWords.join(' ');
59
+ assert(!titleMdx.startsWith(' '), { line, lineWords });
60
+ assert(titleMdx, { line, lineWords });
61
+ let pageSectionTitle = titleMdx;
62
+ let anchor = titleMdx;
104
63
  {
105
64
  // Support custom anchor: `## Some Title{#custom-anchor}`
106
- var customAnchor = (_a = /(?<={#).*(?=})/g.exec(titleMdx)) === null || _a === void 0 ? void 0 : _a[0];
65
+ const customAnchor = /(?<={#).*(?=})/g.exec(titleMdx)?.[0];
107
66
  if (customAnchor) {
108
67
  anchor = customAnchor;
109
68
  pageSectionTitle = titleMdx.replace(/{#.*}/g, '');
110
69
  }
111
70
  }
112
- var pageSectionId = determineSectionUrlHash(anchor);
113
- var titleParsed = parseMarkdownMini(pageSectionTitle);
71
+ const pageSectionId = determineSectionUrlHash(anchor);
72
+ const titleParsed = parseMarkdownMini(pageSectionTitle);
114
73
  assert(pageSectionId === null || pageSectionId.length > 0);
115
- var headingId = pageSectionId === null ? '' : " id=\"".concat(pageSectionId, "\"");
116
- var headingHtml = "<h".concat(pageSectionLevel).concat(headingId, ">").concat(titleParsed, "</h").concat(pageSectionLevel, ">");
117
- var pageSection = { pageSectionLevel: pageSectionLevel, pageSectionTitle: pageSectionTitle, pageSectionId: pageSectionId, headingHtml: headingHtml };
74
+ const headingId = pageSectionId === null ? '' : ` id="${pageSectionId}"`;
75
+ const headingHtml = `<h${pageSectionLevel}${headingId}>${titleParsed}</h${pageSectionLevel}>`;
76
+ const pageSection = { pageSectionLevel, pageSectionTitle, pageSectionId, headingHtml };
118
77
  return pageSection;
119
78
  }
120
79
  function parseMarkdownMini(titleMarkdown) {
121
- var parts = [];
122
- var current;
123
- titleMarkdown.split('').forEach(function (letter) {
80
+ const parts = [];
81
+ let current;
82
+ titleMarkdown.split('').forEach((letter) => {
124
83
  if (letter === '`') {
125
- if ((current === null || current === void 0 ? void 0 : current.nodeType) === 'code') {
84
+ if (current?.nodeType === 'code') {
126
85
  // </code>
127
86
  parts.push(current);
128
87
  current = undefined;
@@ -145,25 +104,25 @@ function parseMarkdownMini(titleMarkdown) {
145
104
  if (current) {
146
105
  parts.push(current);
147
106
  }
148
- var titleHtml = parts
149
- .map(function (part) {
107
+ const titleHtml = parts
108
+ .map((part) => {
150
109
  if (part.nodeType === 'code') {
151
- return "<code>".concat(serializeText(part.content), "</code>");
110
+ return `<code>${serializeText(part.content)}</code>`;
152
111
  }
153
112
  else {
154
- assert(part.nodeType === 'text', { parts: parts });
113
+ assert(part.nodeType === 'text', { parts });
155
114
  return serializeText(part.content);
156
115
  }
157
116
  })
158
117
  .join('');
159
118
  return titleHtml;
160
119
  function serializeText(text) {
161
- var textEscaped = text.split("'").join("\\'");
120
+ let textEscaped = text.split("'").join("\\'");
162
121
  // https://github.com/brillout/docpress/pull/2
163
122
  if (isWindows()) {
164
123
  textEscaped = textEscaped.replace(/\r/, '');
165
124
  }
166
- return "{'".concat(textEscaped, "'}");
125
+ return `{'${textEscaped}'}`;
167
126
  }
168
127
  }
169
128
  function isWindows() {
@@ -3,20 +3,19 @@ export { usePageContext };
3
3
  export { usePageContextLegacy };
4
4
  import React, { useContext } from 'react';
5
5
  import { getGlobalObject } from '../utils/getGlobalObject';
6
- var globalObject = getGlobalObject('usePageContext.ts', {
6
+ const globalObject = getGlobalObject('usePageContext.ts', {
7
7
  Ctx: React.createContext(undefined),
8
8
  });
9
9
  function usePageContextLegacy() {
10
- var Ctx = globalObject.Ctx;
11
- var pageContext = useContext(Ctx);
10
+ const { Ctx } = globalObject;
11
+ const pageContext = useContext(Ctx);
12
12
  return pageContext.resolved;
13
13
  }
14
14
  function usePageContext() {
15
- var pageContext = useContext(globalObject.Ctx);
15
+ const pageContext = useContext(globalObject.Ctx);
16
16
  return pageContext;
17
17
  }
18
- function PageContextProvider(_a) {
19
- var pageContext = _a.pageContext, children = _a.children;
20
- var Ctx = globalObject.Ctx;
18
+ function PageContextProvider({ pageContext, children, }) {
19
+ const { Ctx } = globalObject;
21
20
  return React.createElement(Ctx.Provider, { value: pageContext }, children);
22
21
  }