@brillout/docpress 0.15.10-commit-ef0b9a0 → 0.15.10-commit-b6b1605

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.
@@ -1,3 +1,23 @@
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
+ };
1
21
  export { resolvePageContext };
2
22
  import { assert } from './utils/assert';
3
23
  import { jsxToTextContent } from './utils/jsxToTextContent';
@@ -5,53 +25,51 @@ import pc from '@brillout/picocolors';
5
25
  import { parseMarkdownMini } from './parseMarkdownMini';
6
26
  import { determineNavItemsColumnLayout } from './determineNavItemsColumnLayout';
7
27
  function resolvePageContext(pageContext) {
8
- const config = pageContext.globalContext.config.docpress;
9
- const { urlPathname } = pageContext;
10
- const pageSections = pageContext.config.pageSectionsExport ?? [];
28
+ var _a;
29
+ var config = pageContext.globalContext.config.docpress;
30
+ var urlPathname = pageContext.urlPathname;
31
+ var pageSections = (_a = pageContext.config.pageSectionsExport) !== null && _a !== void 0 ? _a : [];
11
32
  {
12
- const { headings, headingsDetached } = config;
13
- assertHeadingsDefinition([...headings, ...headingsDetached]);
33
+ var headings = config.headings, headingsDetached = config.headingsDetached;
34
+ assertHeadingsDefinition(__spreadArray(__spreadArray([], headings, true), headingsDetached, true));
14
35
  }
15
- const ret = getHeadingsResolved(config);
16
- const { headingsDetachedResolved } = ret;
17
- let { headingsResolved } = ret;
18
- const { activeHeading, isDetachedPage, activeCategoryName } = getActiveHeading(headingsResolved, headingsDetachedResolved, urlPathname);
19
- const { documentTitle, isLandingPage, pageTitle } = getTitles(activeHeading, urlPathname, config);
20
- const pageSectionsResolved = getPageSectionsResolved(pageSections, activeHeading);
21
- const linksGlobal = [
22
- ...headingsResolved.map(headingToLinkData),
23
- ...headingsDetachedResolved.map(headingToLinkData),
24
- ];
25
- const linksPage = pageSectionsResolved.map(pageSectionToLinkData);
26
- const linksAll = [...linksPage, ...linksGlobal];
27
- let navItemsAll;
28
- let navItemsDetached;
36
+ var ret = getHeadingsResolved(config);
37
+ var headingsDetachedResolved = ret.headingsDetachedResolved;
38
+ var headingsResolved = ret.headingsResolved;
39
+ var _b = getActiveHeading(headingsResolved, headingsDetachedResolved, urlPathname), activeHeading = _b.activeHeading, isDetachedPage = _b.isDetachedPage, activeCategoryName = _b.activeCategoryName;
40
+ var _c = getTitles(activeHeading, urlPathname, config), documentTitle = _c.documentTitle, isLandingPage = _c.isLandingPage, pageTitle = _c.pageTitle;
41
+ var pageSectionsResolved = getPageSectionsResolved(pageSections, activeHeading);
42
+ var linksGlobal = __spreadArray(__spreadArray([], headingsResolved.map(headingToLinkData), true), headingsDetachedResolved.map(headingToLinkData), true);
43
+ var linksPage = pageSectionsResolved.map(pageSectionToLinkData);
44
+ var linksAll = __spreadArray(__spreadArray([], linksPage, true), linksGlobal, true);
45
+ var navItemsAll;
46
+ var navItemsDetached;
29
47
  {
30
- const navItemsPageSections = pageSectionsResolved
31
- .filter((pageSection) => pageSection.pageSectionLevel === 2)
48
+ var navItemsPageSections = pageSectionsResolved
49
+ .filter(function (pageSection) { return pageSection.pageSectionLevel === 2; })
32
50
  .map(pageSectionToNavItem);
33
51
  navItemsAll = headingsResolved.map(headingToNavItem);
34
52
  determineNavItemsColumnLayout(navItemsAll);
35
53
  if (isDetachedPage) {
36
- navItemsDetached = [headingToNavItem(activeHeading), ...navItemsPageSections];
54
+ navItemsDetached = __spreadArray([headingToNavItem(activeHeading)], navItemsPageSections, true);
37
55
  }
38
56
  else {
39
- const activeHeadingIndex = navItemsAll.findIndex((navItem) => navItem.url === urlPathname);
40
- assert(activeHeadingIndex >= 0);
41
- navItemsPageSections.forEach((navItem, i) => {
42
- navItemsAll.splice(activeHeadingIndex + 1 + i, 0, navItem);
57
+ var activeHeadingIndex_1 = navItemsAll.findIndex(function (navItem) { return navItem.url === urlPathname; });
58
+ assert(activeHeadingIndex_1 >= 0);
59
+ navItemsPageSections.forEach(function (navItem, i) {
60
+ navItemsAll.splice(activeHeadingIndex_1 + 1 + i, 0, navItem);
43
61
  });
44
62
  }
45
63
  }
46
- const resolved = {
47
- navItemsAll,
48
- navItemsDetached,
64
+ var resolved = {
65
+ navItemsAll: navItemsAll,
66
+ navItemsDetached: navItemsDetached,
49
67
  pageDesign: activeHeading.pageDesign,
50
- linksAll,
51
- isLandingPage,
52
- pageTitle,
53
- documentTitle,
54
- activeCategoryName,
68
+ linksAll: linksAll,
69
+ isLandingPage: isLandingPage,
70
+ pageTitle: pageTitle,
71
+ documentTitle: documentTitle,
72
+ activeCategoryName: activeCategoryName,
55
73
  };
56
74
  return resolved;
57
75
  }
@@ -91,24 +109,26 @@ function pageSectionToLinkData(pageSection) {
91
109
  };
92
110
  }
93
111
  function getTitles(activeHeading, urlPathname, config) {
94
- const isLandingPage = urlPathname === '/';
95
- const { title } = activeHeading;
96
- let pageTitle = isLandingPage ? null : title;
97
- let documentTitle = activeHeading.titleDocument || jsxToTextContent(parseMarkdownMini(title));
112
+ var isLandingPage = urlPathname === '/';
113
+ var title = activeHeading.title;
114
+ var pageTitle = isLandingPage ? null : title;
115
+ var documentTitle = activeHeading.titleDocument || jsxToTextContent(parseMarkdownMini(title));
98
116
  if (!isLandingPage) {
99
117
  documentTitle += ' | ' + config.name;
100
118
  }
101
119
  if (isLandingPage) {
102
120
  pageTitle = null;
103
121
  }
104
- return { documentTitle, isLandingPage, pageTitle };
122
+ return { documentTitle: documentTitle, isLandingPage: isLandingPage, pageTitle: pageTitle };
105
123
  }
106
124
  function getActiveHeading(headingsResolved, headingsDetachedResolved, urlPathname) {
107
- let activeHeading = null;
108
- let activeCategoryName = 'Miscellaneous';
109
- let headingCategory;
125
+ var _a;
126
+ var activeHeading = null;
127
+ var activeCategoryName = 'Miscellaneous';
128
+ var headingCategory;
110
129
  assert(urlPathname);
111
- for (const heading of headingsResolved) {
130
+ for (var _i = 0, headingsResolved_1 = headingsResolved; _i < headingsResolved_1.length; _i++) {
131
+ var heading = headingsResolved_1[_i];
112
132
  if (heading.level === 1) {
113
133
  headingCategory = heading.title;
114
134
  }
@@ -116,87 +136,79 @@ function getActiveHeading(headingsResolved, headingsDetachedResolved, urlPathnam
116
136
  activeHeading = heading;
117
137
  assert(headingCategory);
118
138
  activeCategoryName = headingCategory;
119
- assert(heading.level === 2, { pageUrl: urlPathname, heading });
139
+ assert(heading.level === 2, { pageUrl: urlPathname, heading: heading });
120
140
  break;
121
141
  }
122
142
  }
123
- const isDetachedPage = !activeHeading;
143
+ var isDetachedPage = !activeHeading;
124
144
  if (!activeHeading) {
125
- activeHeading = headingsDetachedResolved.find(({ url }) => urlPathname === url) ?? null;
145
+ activeHeading = (_a = headingsDetachedResolved.find(function (_a) {
146
+ var url = _a.url;
147
+ return urlPathname === url;
148
+ })) !== null && _a !== void 0 ? _a : null;
126
149
  }
127
150
  if (!activeHeading) {
128
151
  throw new Error([
129
- `URL ${pc.bold(urlPathname)} not found in following URLs:`,
130
- [...headingsResolved, ...headingsDetachedResolved]
131
- .filter(Boolean)
132
- .map((h) => h.url)
152
+ "URL ".concat(pc.bold(urlPathname), " not found in following URLs:"),
153
+ __spreadArray(__spreadArray([], headingsResolved, true), headingsDetachedResolved, true).filter(Boolean)
154
+ .map(function (h) { return h.url; })
133
155
  .sort()
134
- .map((url) => ` ${url}`)
156
+ .map(function (url) { return " ".concat(url); })
135
157
  .join('\n'),
136
158
  ].join('\n'));
137
159
  }
138
160
  if (activeHeading.category)
139
161
  activeCategoryName = activeHeading.category;
140
- return { activeHeading, isDetachedPage, activeCategoryName };
162
+ return { activeHeading: activeHeading, isDetachedPage: isDetachedPage, activeCategoryName: activeCategoryName };
141
163
  }
142
164
  function getPageSectionsResolved(pageSections, activeHeading) {
143
- const pageSectionsResolved = pageSections.map((pageSection) => {
144
- const { pageSectionTitle } = pageSection;
145
- const url = pageSection.pageSectionId === null ? null : '#' + pageSection.pageSectionId;
146
- const pageSectionResolved = {
147
- url,
165
+ var pageSectionsResolved = pageSections.map(function (pageSection) {
166
+ var _a;
167
+ var pageSectionTitle = pageSection.pageSectionTitle;
168
+ var url = pageSection.pageSectionId === null ? null : '#' + pageSection.pageSectionId;
169
+ var pageSectionResolved = {
170
+ url: url,
148
171
  title: pageSectionTitle,
149
- linkBreadcrumb: [activeHeading.title, ...(activeHeading.linkBreadcrumb ?? [])],
172
+ linkBreadcrumb: __spreadArray([activeHeading.title], ((_a = activeHeading.linkBreadcrumb) !== null && _a !== void 0 ? _a : []), true),
150
173
  titleInNav: pageSectionTitle,
151
174
  pageSectionLevel: pageSection.pageSectionLevel,
152
175
  };
153
176
  return pageSectionResolved;
154
177
  });
155
- if (activeHeading?.sectionTitles) {
156
- activeHeading.sectionTitles.forEach((sectionTitle) => {
157
- const pageSectionTitles = pageSections.map((h) => h.pageSectionTitle);
158
- assert(pageSectionTitles.includes(sectionTitle), { pageHeadingTitles: pageSectionTitles, sectionTitle });
178
+ if (activeHeading === null || activeHeading === void 0 ? void 0 : activeHeading.sectionTitles) {
179
+ activeHeading.sectionTitles.forEach(function (sectionTitle) {
180
+ var pageSectionTitles = pageSections.map(function (h) { return h.pageSectionTitle; });
181
+ assert(pageSectionTitles.includes(sectionTitle), { pageHeadingTitles: pageSectionTitles, sectionTitle: sectionTitle });
159
182
  });
160
183
  }
161
184
  return pageSectionsResolved;
162
185
  }
163
186
  function getHeadingsResolved(config) {
164
- const headingsWithoutBreadcrumb = config.headings.map((heading) => {
165
- const titleInNav = heading.titleInNav || heading.title;
166
- const headingResolved = {
167
- ...heading,
168
- titleInNav,
169
- };
187
+ var headingsWithoutBreadcrumb = config.headings.map(function (heading) {
188
+ var titleInNav = heading.titleInNav || heading.title;
189
+ var headingResolved = __assign(__assign({}, heading), { titleInNav: titleInNav });
170
190
  return headingResolved;
171
191
  });
172
- const headingsResolved = [];
173
- headingsWithoutBreadcrumb.forEach((heading) => {
174
- const linkBreadcrumb = getHeadingsBreadcrumb(heading, headingsResolved);
175
- headingsResolved.push({
176
- ...heading,
177
- linkBreadcrumb,
178
- });
192
+ var headingsResolved = [];
193
+ headingsWithoutBreadcrumb.forEach(function (heading) {
194
+ var linkBreadcrumb = getHeadingsBreadcrumb(heading, headingsResolved);
195
+ headingsResolved.push(__assign(__assign({}, heading), { linkBreadcrumb: linkBreadcrumb }));
179
196
  });
180
- const headingsDetachedResolved = config.headingsDetached.map((headingsDetached) => {
181
- const { url } = headingsDetached;
182
- assert(headingsResolved.find((heading) => heading.url === url) === undefined, `remove ${headingsDetached.url} from headingsDetached`);
183
- return {
184
- ...headingsDetached,
185
- level: 2,
186
- titleInNav: headingsDetached.title,
187
- linkBreadcrumb: null,
188
- };
197
+ var headingsDetachedResolved = config.headingsDetached.map(function (headingsDetached) {
198
+ var url = headingsDetached.url;
199
+ assert(headingsResolved.find(function (heading) { return heading.url === url; }) === undefined, "remove ".concat(headingsDetached.url, " from headingsDetached"));
200
+ return __assign(__assign({}, headingsDetached), { level: 2, titleInNav: headingsDetached.title, linkBreadcrumb: null });
189
201
  });
190
- return { headingsResolved, headingsDetachedResolved };
202
+ return { headingsResolved: headingsResolved, headingsDetachedResolved: headingsDetachedResolved };
191
203
  }
192
204
  function getHeadingsBreadcrumb(heading, headings) {
193
- const linkBreadcrumb = [];
194
- let levelCurrent = heading.level;
205
+ var linkBreadcrumb = [];
206
+ var levelCurrent = heading.level;
195
207
  headings
196
208
  .slice()
197
209
  .reverse()
198
- .forEach((parentCandidate) => {
199
- const isParent = parentCandidate.level < levelCurrent;
210
+ .forEach(function (parentCandidate) {
211
+ var isParent = parentCandidate.level < levelCurrent;
200
212
  if (isParent) {
201
213
  levelCurrent = parentCandidate.level;
202
214
  linkBreadcrumb.push(parentCandidate.title);
@@ -205,9 +217,9 @@ function getHeadingsBreadcrumb(heading, headings) {
205
217
  return linkBreadcrumb;
206
218
  }
207
219
  function assertHeadingsDefinition(headings) {
208
- headings.forEach((heading) => {
220
+ headings.forEach(function (heading) {
209
221
  if (heading.url) {
210
- const { url } = heading;
222
+ var url = heading.url;
211
223
  assert(url.startsWith('/'));
212
224
  }
213
225
  });
@@ -1,10 +1,22 @@
1
1
  // Let's eventually remove this. Telefunc is still using this as of 2024-12.
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  import React from 'react';
3
14
  import { assert } from '../assert';
4
15
  import { iconMechanicalArm, iconShield, iconTypescript, iconEngine } from './assets';
5
16
  export { Emoji };
6
- function Emoji({ name, style }) {
7
- const emoji =
17
+ function Emoji(_a) {
18
+ var name = _a.name, style = _a.style;
19
+ var emoji =
8
20
  // ***
9
21
  // U+26A0
10
22
  // https://emojipedia.org/warning/
@@ -153,26 +165,22 @@ function Emoji({ name, style }) {
153
165
  (name === 'left-right-arrow' && Unicode(0xFE0F)) ||
154
166
  (name === 'left-right-arrow' && Unicode(0xFE0F, { fontFamily: 'reset' })) ||
155
167
  ======================== */
156
- assert(emoji, { name });
168
+ assert(emoji, { name: name });
157
169
  return emoji;
158
170
  function Unicode(codePoint, styleAddendum) {
159
- const text = String.fromCodePoint(codePoint);
171
+ var text = String.fromCodePoint(codePoint);
160
172
  if (style || styleAddendum) {
161
- return React.createElement('span', { style: { ...style, ...styleAddendum } }, text);
173
+ return React.createElement('span', { style: __assign(__assign({}, style), styleAddendum) }, text);
162
174
  }
163
175
  else {
164
176
  return React.createElement(React.Fragment, null, text);
165
177
  }
166
178
  }
167
- function Img(imgSrc, width = '1.15em') {
168
- const props = {
179
+ function Img(imgSrc, width) {
180
+ if (width === void 0) { width = '1.15em'; }
181
+ var props = {
169
182
  src: imgSrc,
170
- style: {
171
- verticalAlign: 'text-top',
172
- fontSize: '1em',
173
- width,
174
- ...style,
175
- },
183
+ style: __assign({ verticalAlign: 'text-top', fontSize: '1em', width: width }, style),
176
184
  };
177
185
  return React.createElement('img', props);
178
186
  }
@@ -2,8 +2,8 @@ export { assert };
2
2
  export { assertUsage };
3
3
  export { assertWarning };
4
4
  import { getGlobalObject } from './getGlobalObject.js';
5
- const devModeKey = '__docpress_dev_mode';
6
- const globalObject = getGlobalObject('utils/assert.ts', {
5
+ var devModeKey = '__docpress_dev_mode';
6
+ var globalObject = getGlobalObject('utils/assert.ts', {
7
7
  alreadyLogged: new Set(),
8
8
  });
9
9
  if (isBrowser()) {
@@ -18,7 +18,7 @@ if (isBrowser()) {
18
18
  .join(' '));
19
19
  }
20
20
  if (isDevMode()) {
21
- window.onerror = (err) => {
21
+ window.onerror = function (err) {
22
22
  window.alert(err);
23
23
  window.onerror = null;
24
24
  };
@@ -27,25 +27,25 @@ function assert(condition, debugInfo) {
27
27
  if (condition) {
28
28
  return;
29
29
  }
30
- const hasDebugInfo = debugInfo !== undefined;
30
+ var hasDebugInfo = debugInfo !== undefined;
31
31
  if (hasDebugInfo) {
32
32
  console.log(debugInfo);
33
33
  if (typeof debugInfo === 'object') {
34
34
  debugInfo = JSON.stringify(debugInfo);
35
35
  }
36
36
  }
37
- let errMsg = '[DocPress] Bug. Contact DocPress maintainer.';
37
+ var errMsg = '[DocPress] Bug. Contact DocPress maintainer.';
38
38
  if (hasDebugInfo) {
39
39
  errMsg += ' Debug info: ' + String(debugInfo);
40
40
  }
41
- const err = new Error(errMsg);
41
+ var err = new Error(errMsg);
42
42
  throw err;
43
43
  }
44
44
  function assertUsage(condition, msg) {
45
45
  if (condition) {
46
46
  return;
47
47
  }
48
- const err = new Error('[DocPress][Wrong Usage] ' + msg);
48
+ var err = new Error('[DocPress][Wrong Usage] ' + msg);
49
49
  throw err;
50
50
  }
51
51
  function isBrowser() {
@@ -55,32 +55,34 @@ function isDevMode() {
55
55
  return isBrowser() && (!!window.localStorage[devModeKey] || isLocalhost());
56
56
  }
57
57
  function isLocalhost() {
58
- return window?.location?.port !== '';
58
+ var _a;
59
+ return ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.port) !== '';
59
60
  }
60
61
  function toggleDevMode() {
61
62
  if (isLocalhost())
62
63
  throw new Error('On localhost DEV MODE is always on.');
63
- const isEnabled = () => window.localStorage[devModeKey];
64
+ var isEnabled = function () { return window.localStorage[devModeKey]; };
64
65
  if (!isEnabled()) {
65
66
  window.localStorage[devModeKey] = 'true';
66
67
  }
67
68
  else {
68
69
  delete window.localStorage[devModeKey];
69
70
  }
70
- console.log(`DEV MODE ${isEnabled() ? 'enabled' : 'disabled'}`);
71
+ console.log("DEV MODE ".concat(isEnabled() ? 'enabled' : 'disabled'));
71
72
  }
72
- function assertWarning(condition, msg, { onlyOnce = true, showStackTrace } = {}) {
73
+ function assertWarning(condition, msg, _a) {
74
+ var _b = _a === void 0 ? {} : _a, _c = _b.onlyOnce, onlyOnce = _c === void 0 ? true : _c, showStackTrace = _b.showStackTrace;
73
75
  if (condition) {
74
76
  return;
75
77
  }
76
- const err = new Error(msg);
78
+ var err = new Error(msg);
77
79
  if (!import.meta.env.DEV) {
78
80
  throw err;
79
81
  }
80
82
  else {
81
83
  if (onlyOnce) {
82
- const { alreadyLogged } = globalObject;
83
- const key = onlyOnce === true ? msg : onlyOnce;
84
+ var alreadyLogged = globalObject.alreadyLogged;
85
+ var key = onlyOnce === true ? msg : onlyOnce;
84
86
  if (alreadyLogged.has(key))
85
87
  return;
86
88
  alreadyLogged.add(key);
package/dist/utils/cls.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { cls };
2
2
  function cls(className) {
3
- const classNames = Array.isArray(className) ? className : [className];
3
+ var classNames = Array.isArray(className) ? className : [className];
4
4
  return classNames.filter(Boolean).join(' ');
5
5
  }
@@ -0,0 +1,9 @@
1
+ export type ContentMap = {
2
+ /**
3
+ * @returns key
4
+ */
5
+ add(title: string, sourceLength: number, content: string): string;
6
+ get(key: string): string | undefined;
7
+ };
8
+ export declare const createContentMap: () => ContentMap;
9
+ export declare const contentMapKeyRE: RegExp;
@@ -0,0 +1,22 @@
1
+ import { createHash } from 'node:crypto';
2
+ export var createContentMap = function () {
3
+ var map = new Map();
4
+ return {
5
+ add: function (title, length, content) {
6
+ var key = generateKey("".concat(title, "_").concat(length));
7
+ if (!map.has(key)) {
8
+ map.set(key, content);
9
+ }
10
+ return key;
11
+ },
12
+ get: function (key) {
13
+ var val = map.get(key);
14
+ return val;
15
+ },
16
+ };
17
+ };
18
+ var generateKey = function (value) {
19
+ var hash = createHash('md5').update(value).digest('hex');
20
+ return "#_#_".concat(hash, "_#_#");
21
+ };
22
+ export var contentMapKeyRE = /#_#_[0-9a-fA-F]{32}_#_#/g;
@@ -4,7 +4,7 @@ export { determineSectionTitle };
4
4
  function determineSectionUrlHash(title) {
5
5
  title = title.toLowerCase();
6
6
  title = removeAccentsAndDiacritics(title);
7
- const urlHash = title
7
+ var urlHash = title
8
8
  // \u4E00-\u9FA5 are chinese characters, see https://github.com/brillout/docpress/pull/2
9
9
  .split(/[^a-z0-9\u4E00-\u9FA5]+/)
10
10
  .filter(Boolean)
@@ -20,11 +20,11 @@ function removeAccentsAndDiacritics(str) {
20
20
  return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
21
21
  }
22
22
  function determineSectionTitle(urlWithHash) {
23
- assert(urlWithHash.includes('#'), { urlWithHash });
24
- const urlHash = urlWithHash.split('#')[1];
25
- const title = urlHash
23
+ assert(urlWithHash.includes('#'), { urlWithHash: urlWithHash });
24
+ var urlHash = urlWithHash.split('#')[1];
25
+ var title = urlHash
26
26
  .split('-')
27
- .map((word, i) => {
27
+ .map(function (word, i) {
28
28
  if (i === 0) {
29
29
  return capitalizeFirstLetter(word);
30
30
  }
@@ -1,8 +1,8 @@
1
1
  export { filter };
2
2
  // https://stackoverflow.com/questions/66341757/typescript-how-to-filter-the-object
3
3
  function filter(obj, predicate) {
4
- const result = {};
5
- Object.keys(obj).forEach((name) => {
4
+ var result = {};
5
+ Object.keys(obj).forEach(function (name) {
6
6
  if (predicate(obj[name], name)) {
7
7
  result[name] = obj[name];
8
8
  }
@@ -2,8 +2,8 @@ export function getGlobalObject(
2
2
  // We use the filename as key; each `getGlobalObject()` call should live inside a file with a unique filename.
3
3
  key, defaultValue) {
4
4
  // @ts-ignore
5
- const globalObjectsAll = (globalThis[projectKey] = globalThis[projectKey] || {});
6
- const globalObject = (globalObjectsAll[key] = globalObjectsAll[key] || defaultValue);
5
+ var globalObjectsAll = (globalThis[projectKey] = globalThis[projectKey] || {});
6
+ var globalObject = (globalObjectsAll[key] = globalObjectsAll[key] || defaultValue);
7
7
  return globalObject;
8
8
  }
9
- const projectKey = '_docpress';
9
+ var projectKey = '_docpress';
@@ -1,20 +1,21 @@
1
1
  export { useSelectedLanguage };
2
2
  import { useState, useEffect, useCallback } from 'react';
3
- const key = 'docpress:selectedLang';
4
- const defaultSsrLang = 'ts';
5
- const defaultClientLang = 'js';
3
+ var key = 'docpress:selectedLang';
4
+ var defaultSsrLang = 'ts';
5
+ var defaultClientLang = 'js';
6
6
  function useSelectedLanguage() {
7
- const [selectedLang, setSelectedLang] = useState(defaultSsrLang);
8
- const getValue = () => {
7
+ var _a = useState(defaultSsrLang), selectedLang = _a[0], setSelectedLang = _a[1];
8
+ var getValue = function () {
9
+ var _a;
9
10
  try {
10
- return localStorage.getItem(key) ?? defaultClientLang;
11
+ return (_a = localStorage.getItem(key)) !== null && _a !== void 0 ? _a : defaultClientLang;
11
12
  }
12
13
  catch (error) {
13
14
  console.warn('Error reading from localStorage:', error);
14
15
  return defaultClientLang;
15
16
  }
16
17
  };
17
- const setValue = useCallback((value) => {
18
+ var setValue = useCallback(function (value) {
18
19
  try {
19
20
  window.localStorage.setItem(key, value);
20
21
  setSelectedLang(value);
@@ -24,22 +25,22 @@ function useSelectedLanguage() {
24
25
  console.warn('Error setting localStorage:', error);
25
26
  }
26
27
  }, []);
27
- useEffect(() => {
28
+ useEffect(function () {
28
29
  // Initial load from localStorage
29
30
  setSelectedLang(getValue());
30
31
  // Update language in current tab
31
- const handleCustomEvent = () => {
32
+ var handleCustomEvent = function () {
32
33
  setSelectedLang(getValue());
33
34
  };
34
35
  // Update language if changed in another tab
35
- const handleNativeStorage = (event) => {
36
+ var handleNativeStorage = function (event) {
36
37
  if (event.key === key) {
37
38
  setSelectedLang(getValue());
38
39
  }
39
40
  };
40
41
  window.addEventListener('lang-storage', handleCustomEvent);
41
42
  window.addEventListener('storage', handleNativeStorage);
42
- return () => {
43
+ return function () {
43
44
  window.removeEventListener('lang-storage', handleCustomEvent);
44
45
  window.removeEventListener('storage', handleNativeStorage);
45
46
  };
@@ -6,16 +6,16 @@ import { detypePlugin } from './detypePlugin.js';
6
6
  import rehypePrettyCode from 'rehype-pretty-code';
7
7
  import remarkGfm from 'remark-gfm';
8
8
  import { transformerNotationDiff } from '@shikijs/transformers';
9
- const root = process.cwd();
10
- const prettyCode = [rehypePrettyCode, { theme: 'github-light', transformers: [transformerNotationDiff()] }];
11
- const rehypePlugins = [prettyCode];
12
- const remarkPlugins = [remarkGfm];
13
- const config = {
14
- root,
9
+ var root = process.cwd();
10
+ var prettyCode = [rehypePrettyCode, { theme: 'github-light', transformers: [transformerNotationDiff()] }];
11
+ var rehypePlugins = [prettyCode];
12
+ var remarkPlugins = [remarkGfm];
13
+ var config = {
14
+ root: root,
15
15
  plugins: [
16
16
  parsePageSections(),
17
17
  detypePlugin(),
18
- mdx({ rehypePlugins, remarkPlugins }),
18
+ mdx({ rehypePlugins: rehypePlugins, remarkPlugins: remarkPlugins }),
19
19
  // @vitejs/plugin-react-swc needs to be added *after* the mdx plugins
20
20
  react(),
21
21
  ],
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@brillout/docpress",
3
- "version": "0.15.10-commit-ef0b9a0",
3
+ "version": "0.15.10-commit-b6b1605",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@brillout/picocolors": "^1.0.10",
7
- "detype": "^1.1.2",
8
7
  "@docsearch/css": "3.9.0",
9
8
  "@docsearch/react": "3.9.0",
10
9
  "@mdx-js/mdx": "3.0.1",
@@ -12,6 +11,7 @@
12
11
  "@mdx-js/rollup": "3.0.1",
13
12
  "@shikijs/transformers": "1.2.0",
14
13
  "@vitejs/plugin-react-swc": "^3.10.2",
14
+ "detype": "^1.1.2",
15
15
  "rehype-pretty-code": "0.13.0",
16
16
  "remark-gfm": "4.0.0",
17
17
  "shiki": "1.2.0",
package/tsconfig.json CHANGED
@@ -3,7 +3,6 @@
3
3
  "outDir": "./dist/",
4
4
  "jsx": "react",
5
5
  "module": "ES2020",
6
- "target": "ES2020",
7
6
  "moduleResolution": "Bundler",
8
7
  "lib": ["DOM", "DOM.Iterable", "ESNext"],
9
8
  "types": ["vite/client"],