@brillout/docpress 0.15.10-commit-b6b1605 → 0.15.10-commit-36f361e

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 (41) hide show
  1. package/components/CodeSnippets/useSelectCodeLang.ts +61 -0
  2. package/components/CodeSnippets.css +47 -0
  3. package/components/CodeSnippets.tsx +80 -45
  4. package/css/tooltip.css +10 -2
  5. package/detypePlugin.ts +78 -68
  6. package/dist/+config.js +1 -1
  7. package/dist/NavItemComponent.js +38 -46
  8. package/dist/components/CodeBlockTransformer.js +2 -3
  9. package/dist/components/CodeSnippets/useSelectCodeLang.d.ts +7 -0
  10. package/dist/components/CodeSnippets/useSelectCodeLang.js +51 -0
  11. package/dist/components/CodeSnippets.d.ts +10 -6
  12. package/dist/components/CodeSnippets.js +66 -94
  13. package/dist/components/Comment.js +1 -2
  14. package/dist/components/FileRemoved.js +4 -6
  15. package/dist/components/HorizontalLine.js +1 -2
  16. package/dist/components/ImportMeta.js +2 -3
  17. package/dist/components/Link.js +34 -50
  18. package/dist/components/Note.js +17 -29
  19. package/dist/components/P.js +1 -12
  20. package/dist/components/RepoLink.js +7 -9
  21. package/dist/determineNavItemsColumnLayout.js +48 -63
  22. package/dist/detypePlugin.js +84 -136
  23. package/dist/parseMarkdownMini.js +5 -17
  24. package/dist/parsePageSections.js +41 -82
  25. package/dist/renderer/usePageContext.js +6 -7
  26. package/dist/resolvePageContext.js +91 -103
  27. package/dist/utils/Emoji/Emoji.js +13 -21
  28. package/dist/utils/assert.js +14 -16
  29. package/dist/utils/cls.js +1 -1
  30. package/dist/utils/determineSectionUrlHash.js +5 -5
  31. package/dist/utils/filter.js +2 -2
  32. package/dist/utils/getGlobalObject.js +3 -3
  33. package/dist/vite.config.js +7 -7
  34. package/package.json +1 -1
  35. package/tsconfig.json +2 -1
  36. package/dist/utils/contentMap.d.ts +0 -9
  37. package/dist/utils/contentMap.js +0 -22
  38. package/dist/utils/useSelectedLanguage.d.ts +0 -7
  39. package/dist/utils/useSelectedLanguage.js +0 -49
  40. package/utils/contentMap.ts +0 -34
  41. package/utils/useSelectedLanguage.ts +0 -61
@@ -1,49 +0,0 @@
1
- export { useSelectedLanguage };
2
- import { useState, useEffect, useCallback } from 'react';
3
- var key = 'docpress:selectedLang';
4
- var defaultSsrLang = 'ts';
5
- var defaultClientLang = 'js';
6
- function useSelectedLanguage() {
7
- var _a = useState(defaultSsrLang), selectedLang = _a[0], setSelectedLang = _a[1];
8
- var getValue = function () {
9
- var _a;
10
- try {
11
- return (_a = localStorage.getItem(key)) !== null && _a !== void 0 ? _a : defaultClientLang;
12
- }
13
- catch (error) {
14
- console.warn('Error reading from localStorage:', error);
15
- return defaultClientLang;
16
- }
17
- };
18
- var setValue = useCallback(function (value) {
19
- try {
20
- window.localStorage.setItem(key, value);
21
- setSelectedLang(value);
22
- window.dispatchEvent(new CustomEvent('lang-storage'));
23
- }
24
- catch (error) {
25
- console.warn('Error setting localStorage:', error);
26
- }
27
- }, []);
28
- useEffect(function () {
29
- // Initial load from localStorage
30
- setSelectedLang(getValue());
31
- // Update language in current tab
32
- var handleCustomEvent = function () {
33
- setSelectedLang(getValue());
34
- };
35
- // Update language if changed in another tab
36
- var handleNativeStorage = function (event) {
37
- if (event.key === key) {
38
- setSelectedLang(getValue());
39
- }
40
- };
41
- window.addEventListener('lang-storage', handleCustomEvent);
42
- window.addEventListener('storage', handleNativeStorage);
43
- return function () {
44
- window.removeEventListener('lang-storage', handleCustomEvent);
45
- window.removeEventListener('storage', handleNativeStorage);
46
- };
47
- }, []);
48
- return [selectedLang, setValue];
49
- }
@@ -1,34 +0,0 @@
1
- import { createHash } from 'node:crypto'
2
-
3
- export type ContentMap = {
4
- /**
5
- * @returns key
6
- */
7
- add(title: string, sourceLength: number, content: string): string
8
- get(key: string): string | undefined
9
- }
10
-
11
- export const createContentMap = (): ContentMap => {
12
- const map = new Map<string, string>()
13
-
14
- return {
15
- add(title, length, content) {
16
- const key = generateKey(`${title}_${length}`)
17
- if (!map.has(key)) {
18
- map.set(key, content)
19
- }
20
- return key
21
- },
22
- get(key) {
23
- const val = map.get(key)
24
- return val
25
- },
26
- }
27
- }
28
-
29
- const generateKey = (value: string) => {
30
- const hash = createHash('md5').update(value).digest('hex')
31
- return `#_#_${hash}_#_#`
32
- }
33
-
34
- export const contentMapKeyRE = /#_#_[0-9a-fA-F]{32}_#_#/g
@@ -1,61 +0,0 @@
1
- export { useSelectedLanguage }
2
-
3
- import { useState, useEffect, useCallback } from 'react'
4
-
5
- const key = 'docpress:selectedLang'
6
- const defaultSsrLang = 'ts'
7
- const defaultClientLang = 'js'
8
-
9
- declare global {
10
- interface WindowEventMap {
11
- 'lang-storage': CustomEvent
12
- }
13
- }
14
-
15
- function useSelectedLanguage() {
16
- const [selectedLang, setSelectedLang] = useState(defaultSsrLang)
17
-
18
- const getValue = () => {
19
- try {
20
- return localStorage.getItem(key) ?? defaultClientLang
21
- } catch (error) {
22
- console.warn('Error reading from localStorage:', error)
23
- return defaultClientLang
24
- }
25
- }
26
-
27
- const setValue = useCallback((value: string) => {
28
- try {
29
- window.localStorage.setItem(key, value)
30
- setSelectedLang(value)
31
- window.dispatchEvent(new CustomEvent('lang-storage'))
32
- } catch (error) {
33
- console.warn('Error setting localStorage:', error)
34
- }
35
- }, [])
36
-
37
- useEffect(() => {
38
- // Initial load from localStorage
39
- setSelectedLang(getValue())
40
- // Update language in current tab
41
- const handleCustomEvent = () => {
42
- setSelectedLang(getValue())
43
- }
44
- // Update language if changed in another tab
45
- const handleNativeStorage = (event: StorageEvent) => {
46
- if (event.key === key) {
47
- setSelectedLang(getValue())
48
- }
49
- }
50
-
51
- window.addEventListener('lang-storage', handleCustomEvent)
52
- window.addEventListener('storage', handleNativeStorage)
53
-
54
- return () => {
55
- window.removeEventListener('lang-storage', handleCustomEvent)
56
- window.removeEventListener('storage', handleNativeStorage)
57
- }
58
- }, [])
59
-
60
- return [selectedLang, setValue] as const
61
- }