@docusaurus/theme-common 3.7.0-canary-6274 → 3.7.0-canary-6276
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/hooks/useCodeWordWrap.d.ts +2 -1
- package/lib/hooks/useCodeWordWrap.d.ts.map +1 -1
- package/lib/hooks/useCodeWordWrap.js.map +1 -1
- package/lib/internal.d.ts +1 -2
- package/lib/internal.d.ts.map +1 -1
- package/lib/internal.js +1 -2
- package/lib/internal.js.map +1 -1
- package/lib/utils/codeBlockUtils.d.ts +47 -21
- package/lib/utils/codeBlockUtils.d.ts.map +1 -1
- package/lib/utils/codeBlockUtils.js +87 -11
- package/lib/utils/codeBlockUtils.js.map +1 -1
- package/package.json +8 -8
- package/src/hooks/useCodeWordWrap.ts +4 -2
- package/src/internal.ts +5 -5
- package/src/utils/{codeBlockUtils.ts → codeBlockUtils.tsx} +166 -27
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import type { RefObject } from 'react';
|
|
8
|
-
export
|
|
8
|
+
export type WordWrap = {
|
|
9
9
|
readonly codeBlockRef: RefObject<HTMLPreElement>;
|
|
10
10
|
readonly isEnabled: boolean;
|
|
11
11
|
readonly isCodeScrollable: boolean;
|
|
12
12
|
readonly toggle: () => void;
|
|
13
13
|
};
|
|
14
|
+
export declare function useCodeWordWrap(): WordWrap;
|
|
14
15
|
//# sourceMappingURL=useCodeWordWrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCodeWordWrap.d.ts","sourceRoot":"","sources":["../../src/hooks/useCodeWordWrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAgDrC,
|
|
1
|
+
{"version":3,"file":"useCodeWordWrap.d.ts","sourceRoot":"","sources":["../../src/hooks/useCodeWordWrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAgDrC,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,IAAI,QAAQ,CA6C1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCodeWordWrap.js","sourceRoot":"","sources":["../../src/hooks/useCodeWordWrap.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE1D,mEAAmE;AACnE,uDAAuD;AACvD,SAAS,2BAA2B,CAClC,YAAuC,EACvC,QAAoB;IAEpB,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,EAErD,CAAC;IAEJ,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9C,qCAAqC;QACrC,4DAA4D;QAC5D,mBAAmB,CACjB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,CACzD,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7B,mBAAmB,CACjB,gBAAgB,EAChB,CAAC,SAA2B,EAAE,EAAE;QAC9B,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,IACE,QAAQ,CAAC,IAAI,KAAK,YAAY;gBAC9B,QAAQ,CAAC,aAAa,KAAK,QAAQ,EACnC,CAAC;gBACD,QAAQ,EAAE,CAAC;gBACX,sBAAsB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;KACf,CACF,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"useCodeWordWrap.js","sourceRoot":"","sources":["../../src/hooks/useCodeWordWrap.ts"],"names":[],"mappings":"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"}
|
package/lib/internal.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { useNavbarMobileSidebar } from './contexts/navbarMobileSidebar';
|
|
|
12
12
|
export { useNavbarSecondaryMenu } from './contexts/navbarSecondaryMenu/display';
|
|
13
13
|
export { ColorModeProvider } from './contexts/colorMode';
|
|
14
14
|
export { useAlternatePageUtils } from './utils/useAlternatePageUtils';
|
|
15
|
-
export {
|
|
15
|
+
export { type CodeBlockMetadata, createCodeBlockMetadata, getPrismCssVariables, CodeBlockContextProvider, useCodeBlockContext, } from './utils/codeBlockUtils';
|
|
16
16
|
export { DEFAULT_SEARCH_TAG } from './utils/searchUtils';
|
|
17
17
|
export { useTitleFormatter } from './utils/generalUtils';
|
|
18
18
|
export { useLocationChange } from './utils/useLocationChange';
|
|
@@ -29,7 +29,6 @@ export { useHideableNavbar } from './hooks/useHideableNavbar';
|
|
|
29
29
|
export { useKeyboardNavigation, keyboardFocusedClassName, } from './hooks/useKeyboardNavigation';
|
|
30
30
|
export { useLockBodyScroll } from './hooks/useLockBodyScroll';
|
|
31
31
|
export { useCodeWordWrap } from './hooks/useCodeWordWrap';
|
|
32
|
-
export { getPrismCssVariables } from './utils/codeBlockUtils';
|
|
33
32
|
export { useBackToTopButton } from './hooks/useBackToTopButton';
|
|
34
33
|
export { useBlogTagsPostsPageTitle, useBlogAuthorPageTitle, translateBlogAuthorsListPageTitle, BlogAuthorsListViewAllLabel, BlogAuthorNoPostsLabel, } from './translations/blogTranslations';
|
|
35
34
|
//# sourceMappingURL=internal.d.ts.map
|
package/lib/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAChE,YAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAChE,YAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EACL,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAC,gBAAgB,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAErE,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,iCAAiC,EACjC,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,iCAAiC,CAAC"}
|
package/lib/internal.js
CHANGED
|
@@ -22,7 +22,7 @@ export { useNavbarMobileSidebar } from './contexts/navbarMobileSidebar';
|
|
|
22
22
|
export { useNavbarSecondaryMenu } from './contexts/navbarSecondaryMenu/display';
|
|
23
23
|
export { ColorModeProvider } from './contexts/colorMode';
|
|
24
24
|
export { useAlternatePageUtils } from './utils/useAlternatePageUtils';
|
|
25
|
-
export {
|
|
25
|
+
export { createCodeBlockMetadata, getPrismCssVariables, CodeBlockContextProvider, useCodeBlockContext, } from './utils/codeBlockUtils';
|
|
26
26
|
export { DEFAULT_SEARCH_TAG } from './utils/searchUtils';
|
|
27
27
|
export { useTitleFormatter } from './utils/generalUtils';
|
|
28
28
|
export { useLocationChange } from './utils/useLocationChange';
|
|
@@ -39,7 +39,6 @@ export { useHideableNavbar } from './hooks/useHideableNavbar';
|
|
|
39
39
|
export { useKeyboardNavigation, keyboardFocusedClassName, } from './hooks/useKeyboardNavigation';
|
|
40
40
|
export { useLockBodyScroll } from './hooks/useLockBodyScroll';
|
|
41
41
|
export { useCodeWordWrap } from './hooks/useCodeWordWrap';
|
|
42
|
-
export { getPrismCssVariables } from './utils/codeBlockUtils';
|
|
43
42
|
export { useBackToTopButton } from './hooks/useBackToTopButton';
|
|
44
43
|
export { useBlogTagsPostsPageTitle, useBlogAuthorPageTitle, translateBlogAuthorsListPageTitle, BlogAuthorsListViewAllLabel, BlogAuthorNoPostsLabel, } from './translations/blogTranslations';
|
|
45
44
|
//# sourceMappingURL=internal.js.map
|
package/lib/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,uDAAuD;AACvD,EAAE;AACF,6DAA6D;AAC7D,gFAAgF;AAChF,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAGhE,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,uDAAuD;AACvD,EAAE;AACF,6DAA6D;AAC7D,gFAAgF;AAChF,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAGhE,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAEL,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,0BAA0B,EAC1B,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAC,gBAAgB,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAErE,OAAO,EACL,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,iCAAiC,EACjC,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,iCAAiC,CAAC"}
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import type { CSSProperties } from 'react';
|
|
7
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
8
8
|
import type { PrismTheme } from 'prism-react-renderer';
|
|
9
|
+
import type { WordWrap } from '../hooks/useCodeWordWrap';
|
|
9
10
|
export type MagicCommentConfig = {
|
|
10
11
|
className: string;
|
|
11
12
|
line?: string;
|
|
@@ -19,12 +20,6 @@ export declare function getLineNumbersStart({ showLineNumbers, metastring, }: {
|
|
|
19
20
|
showLineNumbers: boolean | number | undefined;
|
|
20
21
|
metastring: string | undefined;
|
|
21
22
|
}): number | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Gets the language name from the class name (set by MDX).
|
|
24
|
-
* e.g. `"language-javascript"` => `"javascript"`.
|
|
25
|
-
* Returns undefined if there is no language class name.
|
|
26
|
-
*/
|
|
27
|
-
export declare function parseLanguage(className: string): string | undefined;
|
|
28
23
|
type ParseCodeLinesParam = {
|
|
29
24
|
/**
|
|
30
25
|
* The full metastring, as received from MDX. Line ranges declared here
|
|
@@ -42,23 +37,19 @@ type ParseCodeLinesParam = {
|
|
|
42
37
|
*/
|
|
43
38
|
magicComments: MagicCommentConfig[];
|
|
44
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* The highlighted lines, 0-indexed. e.g. `{ 0: ["highlight", "sample"] }`
|
|
42
|
+
* means the 1st line should have `highlight` and `sample` as class names.
|
|
43
|
+
*/
|
|
44
|
+
type CodeLineClassNames = {
|
|
45
|
+
[lineIndex: number]: string[];
|
|
46
|
+
};
|
|
45
47
|
/**
|
|
46
48
|
* Code lines after applying magic comments or metastring highlight ranges
|
|
47
49
|
*/
|
|
48
|
-
type
|
|
49
|
-
/**
|
|
50
|
-
* If there's number range declared in the metastring, the code block is
|
|
51
|
-
* returned as-is (no parsing); otherwise, this is the clean code with all
|
|
52
|
-
* magic comments stripped away.
|
|
53
|
-
*/
|
|
50
|
+
type ParsedCodeLines = {
|
|
54
51
|
code: string;
|
|
55
|
-
|
|
56
|
-
* The highlighted lines, 0-indexed. e.g. `{ 0: ["highlight", "sample"] }`
|
|
57
|
-
* means the 1st line should have `highlight` and `sample` as class names.
|
|
58
|
-
*/
|
|
59
|
-
lineClassNames: {
|
|
60
|
-
[lineIndex: number]: string[];
|
|
61
|
-
};
|
|
52
|
+
lineClassNames: CodeLineClassNames;
|
|
62
53
|
};
|
|
63
54
|
/**
|
|
64
55
|
* Parses the code content, strips away any magic comments, and returns the
|
|
@@ -69,7 +60,42 @@ type CodeLines = {
|
|
|
69
60
|
* number range to the first magic comment config entry (which _should_ be for
|
|
70
61
|
* line highlight directives.)
|
|
71
62
|
*/
|
|
72
|
-
export declare function parseLines(code: string, params: ParseCodeLinesParam):
|
|
63
|
+
export declare function parseLines(code: string, params: ParseCodeLinesParam): ParsedCodeLines;
|
|
64
|
+
/**
|
|
65
|
+
* Gets the language name from the class name (set by MDX).
|
|
66
|
+
* e.g. `"language-javascript"` => `"javascript"`.
|
|
67
|
+
* Returns undefined if there is no language class name.
|
|
68
|
+
*/
|
|
69
|
+
export declare function parseClassNameLanguage(className: string | undefined): string | undefined;
|
|
70
|
+
export interface CodeBlockMetadata {
|
|
71
|
+
codeInput: string;
|
|
72
|
+
code: string;
|
|
73
|
+
className: string;
|
|
74
|
+
language: string;
|
|
75
|
+
title: ReactNode;
|
|
76
|
+
lineNumbersStart: number | undefined;
|
|
77
|
+
lineClassNames: CodeLineClassNames;
|
|
78
|
+
}
|
|
79
|
+
export declare function createCodeBlockMetadata(params: {
|
|
80
|
+
code: string;
|
|
81
|
+
className: string | undefined;
|
|
82
|
+
language: string | undefined;
|
|
83
|
+
defaultLanguage: string | undefined;
|
|
84
|
+
metastring: string | undefined;
|
|
85
|
+
magicComments: MagicCommentConfig[];
|
|
86
|
+
title: ReactNode;
|
|
87
|
+
showLineNumbers: boolean | number | undefined;
|
|
88
|
+
}): CodeBlockMetadata;
|
|
73
89
|
export declare function getPrismCssVariables(prismTheme: PrismTheme): CSSProperties;
|
|
90
|
+
type CodeBlockContextValue = {
|
|
91
|
+
metadata: CodeBlockMetadata;
|
|
92
|
+
wordWrap: WordWrap;
|
|
93
|
+
};
|
|
94
|
+
export declare function CodeBlockContextProvider({ metadata, wordWrap, children, }: {
|
|
95
|
+
metadata: CodeBlockMetadata;
|
|
96
|
+
wordWrap: WordWrap;
|
|
97
|
+
children: ReactNode;
|
|
98
|
+
}): ReactNode;
|
|
99
|
+
export declare function useCodeBlockContext(): CodeBlockContextValue;
|
|
74
100
|
export {};
|
|
75
101
|
//# sourceMappingURL=codeBlockUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeBlockUtils.d.ts","sourceRoot":"","sources":["../../src/utils/codeBlockUtils.
|
|
1
|
+
{"version":3,"file":"codeBlockUtils.d.ts","sourceRoot":"","sources":["../../src/utils/codeBlockUtils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
7
9
|
import rangeParser from 'parse-numeric-range';
|
|
10
|
+
import { ReactContextError } from './reactUtils';
|
|
8
11
|
const codeBlockTitleRegex = /title=(?<quote>["'])(?<title>.*?)\1/;
|
|
9
12
|
const metastringLinesRangeRegex = /\{(?<range>[\d,-]+)\}/;
|
|
10
13
|
// Supported types of highlight comments
|
|
@@ -126,17 +129,6 @@ export function getLineNumbersStart({ showLineNumbers, metastring, }) {
|
|
|
126
129
|
}
|
|
127
130
|
return getMetaLineNumbersStart(metastring);
|
|
128
131
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Gets the language name from the class name (set by MDX).
|
|
131
|
-
* e.g. `"language-javascript"` => `"javascript"`.
|
|
132
|
-
* Returns undefined if there is no language class name.
|
|
133
|
-
*/
|
|
134
|
-
export function parseLanguage(className) {
|
|
135
|
-
const languageClassName = className
|
|
136
|
-
.split(' ')
|
|
137
|
-
.find((str) => str.startsWith('language-'));
|
|
138
|
-
return languageClassName?.replace(/language-/, '');
|
|
139
|
-
}
|
|
140
132
|
function parseCodeLinesFromMetastring(code, { metastring, magicComments }) {
|
|
141
133
|
// Highlighted lines specified in props: don't parse the content
|
|
142
134
|
if (metastring && metastringLinesRangeRegex.test(metastring)) {
|
|
@@ -219,6 +211,72 @@ export function parseLines(code, params) {
|
|
|
219
211
|
return (parseCodeLinesFromMetastring(newCode, { ...params }) ??
|
|
220
212
|
parseCodeLinesFromContent(newCode, { ...params }));
|
|
221
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Gets the language name from the class name (set by MDX).
|
|
216
|
+
* e.g. `"language-javascript"` => `"javascript"`.
|
|
217
|
+
* Returns undefined if there is no language class name.
|
|
218
|
+
*/
|
|
219
|
+
export function parseClassNameLanguage(className) {
|
|
220
|
+
if (!className) {
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
const languageClassName = className
|
|
224
|
+
.split(' ')
|
|
225
|
+
.find((str) => str.startsWith('language-'));
|
|
226
|
+
return languageClassName?.replace(/language-/, '');
|
|
227
|
+
}
|
|
228
|
+
// Prism languages are always lowercase
|
|
229
|
+
// We want to fail-safe and allow both "php" and "PHP"
|
|
230
|
+
// See https://github.com/facebook/docusaurus/issues/9012
|
|
231
|
+
function normalizeLanguage(language) {
|
|
232
|
+
return language?.toLowerCase();
|
|
233
|
+
}
|
|
234
|
+
function getLanguage(params) {
|
|
235
|
+
return (normalizeLanguage(params.language ??
|
|
236
|
+
parseClassNameLanguage(params.className) ??
|
|
237
|
+
params.defaultLanguage) ?? 'text'); // There's always a language, required by Prism;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* This ensures that we always have the code block language as className
|
|
241
|
+
* For MDX code blocks this is provided automatically by MDX
|
|
242
|
+
* For JSX code blocks, the language gets added by this function
|
|
243
|
+
* This ensures both cases lead to a consistent HTML output
|
|
244
|
+
*/
|
|
245
|
+
function ensureLanguageClassName({ className, language, }) {
|
|
246
|
+
return clsx(className, language &&
|
|
247
|
+
!className?.includes(`language-${language}`) &&
|
|
248
|
+
`language-${language}`);
|
|
249
|
+
}
|
|
250
|
+
export function createCodeBlockMetadata(params) {
|
|
251
|
+
const language = getLanguage({
|
|
252
|
+
language: params.language,
|
|
253
|
+
defaultLanguage: params.defaultLanguage,
|
|
254
|
+
className: params.className,
|
|
255
|
+
});
|
|
256
|
+
const { lineClassNames, code } = parseLines(params.code, {
|
|
257
|
+
metastring: params.metastring,
|
|
258
|
+
magicComments: params.magicComments,
|
|
259
|
+
language,
|
|
260
|
+
});
|
|
261
|
+
const className = ensureLanguageClassName({
|
|
262
|
+
className: params.className,
|
|
263
|
+
language,
|
|
264
|
+
});
|
|
265
|
+
const title = parseCodeBlockTitle(params.metastring) || params.title;
|
|
266
|
+
const lineNumbersStart = getLineNumbersStart({
|
|
267
|
+
showLineNumbers: params.showLineNumbers,
|
|
268
|
+
metastring: params.metastring,
|
|
269
|
+
});
|
|
270
|
+
return {
|
|
271
|
+
codeInput: params.code,
|
|
272
|
+
code,
|
|
273
|
+
className,
|
|
274
|
+
language,
|
|
275
|
+
title,
|
|
276
|
+
lineNumbersStart,
|
|
277
|
+
lineClassNames,
|
|
278
|
+
};
|
|
279
|
+
}
|
|
222
280
|
export function getPrismCssVariables(prismTheme) {
|
|
223
281
|
const mapping = {
|
|
224
282
|
color: '--prism-color',
|
|
@@ -233,4 +291,22 @@ export function getPrismCssVariables(prismTheme) {
|
|
|
233
291
|
});
|
|
234
292
|
return properties;
|
|
235
293
|
}
|
|
294
|
+
const CodeBlockContext = createContext(null);
|
|
295
|
+
export function CodeBlockContextProvider({ metadata, wordWrap, children, }) {
|
|
296
|
+
// Should we optimize this in 2 contexts?
|
|
297
|
+
// Unlike metadata, wordWrap is stateful and likely to trigger re-renders
|
|
298
|
+
const value = useMemo(() => {
|
|
299
|
+
return { metadata, wordWrap };
|
|
300
|
+
}, [metadata, wordWrap]);
|
|
301
|
+
return (<CodeBlockContext.Provider value={value}>
|
|
302
|
+
{children}
|
|
303
|
+
</CodeBlockContext.Provider>);
|
|
304
|
+
}
|
|
305
|
+
export function useCodeBlockContext() {
|
|
306
|
+
const value = useContext(CodeBlockContext);
|
|
307
|
+
if (value === null) {
|
|
308
|
+
throw new ReactContextError('CodeBlockContextProvider');
|
|
309
|
+
}
|
|
310
|
+
return value;
|
|
311
|
+
}
|
|
236
312
|
//# sourceMappingURL=codeBlockUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeBlockUtils.js","sourceRoot":"","sources":["../../src/utils/codeBlockUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codeBlockUtils.js","sourceRoot":"","sources":["../../src/utils/codeBlockUtils.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/theme-common",
|
|
3
|
-
"version": "3.7.0-canary-
|
|
3
|
+
"version": "3.7.0-canary-6276",
|
|
4
4
|
"description": "Common code for Docusaurus themes.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
},
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@docusaurus/mdx-loader": "3.7.0-canary-
|
|
34
|
-
"@docusaurus/module-type-aliases": "3.7.0-canary-
|
|
35
|
-
"@docusaurus/utils": "3.7.0-canary-
|
|
36
|
-
"@docusaurus/utils-common": "3.7.0-canary-
|
|
33
|
+
"@docusaurus/mdx-loader": "3.7.0-canary-6276",
|
|
34
|
+
"@docusaurus/module-type-aliases": "3.7.0-canary-6276",
|
|
35
|
+
"@docusaurus/utils": "3.7.0-canary-6276",
|
|
36
|
+
"@docusaurus/utils-common": "3.7.0-canary-6276",
|
|
37
37
|
"@types/history": "^4.7.11",
|
|
38
38
|
"@types/react": "*",
|
|
39
39
|
"@types/react-router-config": "*",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"utility-types": "^3.10.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@docusaurus/core": "3.7.0-canary-
|
|
48
|
-
"@docusaurus/types": "3.7.0-canary-
|
|
47
|
+
"@docusaurus/core": "3.7.0-canary-6276",
|
|
48
|
+
"@docusaurus/types": "3.7.0-canary-6276",
|
|
49
49
|
"fs-extra": "^11.1.1",
|
|
50
50
|
"lodash": "^4.17.21"
|
|
51
51
|
},
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"engines": {
|
|
58
58
|
"node": ">=18.0"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "035f620ac333786b4b396e95d2c10e32552a1b88"
|
|
61
61
|
}
|
|
@@ -52,12 +52,14 @@ function useTabBecameVisibleCallback(
|
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
export
|
|
55
|
+
export type WordWrap = {
|
|
56
56
|
readonly codeBlockRef: RefObject<HTMLPreElement>;
|
|
57
57
|
readonly isEnabled: boolean;
|
|
58
58
|
readonly isCodeScrollable: boolean;
|
|
59
59
|
readonly toggle: () => void;
|
|
60
|
-
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export function useCodeWordWrap(): WordWrap {
|
|
61
63
|
const [isEnabled, setIsEnabled] = useState(false);
|
|
62
64
|
const [isCodeScrollable, setIsCodeScrollable] = useState<boolean>(false);
|
|
63
65
|
const codeBlockRef = useRef<HTMLPreElement>(null);
|
package/src/internal.ts
CHANGED
|
@@ -34,10 +34,11 @@ export {ColorModeProvider} from './contexts/colorMode';
|
|
|
34
34
|
export {useAlternatePageUtils} from './utils/useAlternatePageUtils';
|
|
35
35
|
|
|
36
36
|
export {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
type CodeBlockMetadata,
|
|
38
|
+
createCodeBlockMetadata,
|
|
39
|
+
getPrismCssVariables,
|
|
40
|
+
CodeBlockContextProvider,
|
|
41
|
+
useCodeBlockContext,
|
|
41
42
|
} from './utils/codeBlockUtils';
|
|
42
43
|
|
|
43
44
|
export {DEFAULT_SEARCH_TAG} from './utils/searchUtils';
|
|
@@ -88,7 +89,6 @@ export {
|
|
|
88
89
|
} from './hooks/useKeyboardNavigation';
|
|
89
90
|
export {useLockBodyScroll} from './hooks/useLockBodyScroll';
|
|
90
91
|
export {useCodeWordWrap} from './hooks/useCodeWordWrap';
|
|
91
|
-
export {getPrismCssVariables} from './utils/codeBlockUtils';
|
|
92
92
|
export {useBackToTopButton} from './hooks/useBackToTopButton';
|
|
93
93
|
|
|
94
94
|
export {
|
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type {CSSProperties} from 'react';
|
|
8
|
+
import type {CSSProperties, ReactNode} from 'react';
|
|
9
|
+
import {createContext, useContext, useMemo} from 'react';
|
|
10
|
+
import clsx from 'clsx';
|
|
9
11
|
import rangeParser from 'parse-numeric-range';
|
|
12
|
+
import {ReactContextError} from './reactUtils';
|
|
10
13
|
import type {PrismTheme, PrismThemeEntry} from 'prism-react-renderer';
|
|
14
|
+
import type {WordWrap} from '../hooks/useCodeWordWrap';
|
|
11
15
|
|
|
12
16
|
const codeBlockTitleRegex = /title=(?<quote>["'])(?<title>.*?)\1/;
|
|
13
17
|
const metastringLinesRangeRegex = /\{(?<range>[\d,-]+)\}/;
|
|
@@ -184,18 +188,6 @@ export function getLineNumbersStart({
|
|
|
184
188
|
return getMetaLineNumbersStart(metastring);
|
|
185
189
|
}
|
|
186
190
|
|
|
187
|
-
/**
|
|
188
|
-
* Gets the language name from the class name (set by MDX).
|
|
189
|
-
* e.g. `"language-javascript"` => `"javascript"`.
|
|
190
|
-
* Returns undefined if there is no language class name.
|
|
191
|
-
*/
|
|
192
|
-
export function parseLanguage(className: string): string | undefined {
|
|
193
|
-
const languageClassName = className
|
|
194
|
-
.split(' ')
|
|
195
|
-
.find((str) => str.startsWith('language-'));
|
|
196
|
-
return languageClassName?.replace(/language-/, '');
|
|
197
|
-
}
|
|
198
|
-
|
|
199
191
|
type ParseCodeLinesParam = {
|
|
200
192
|
/**
|
|
201
193
|
* The full metastring, as received from MDX. Line ranges declared here
|
|
@@ -214,27 +206,24 @@ type ParseCodeLinesParam = {
|
|
|
214
206
|
magicComments: MagicCommentConfig[];
|
|
215
207
|
};
|
|
216
208
|
|
|
209
|
+
/**
|
|
210
|
+
* The highlighted lines, 0-indexed. e.g. `{ 0: ["highlight", "sample"] }`
|
|
211
|
+
* means the 1st line should have `highlight` and `sample` as class names.
|
|
212
|
+
*/
|
|
213
|
+
type CodeLineClassNames = {[lineIndex: number]: string[]};
|
|
214
|
+
|
|
217
215
|
/**
|
|
218
216
|
* Code lines after applying magic comments or metastring highlight ranges
|
|
219
217
|
*/
|
|
220
|
-
type
|
|
221
|
-
/**
|
|
222
|
-
* If there's number range declared in the metastring, the code block is
|
|
223
|
-
* returned as-is (no parsing); otherwise, this is the clean code with all
|
|
224
|
-
* magic comments stripped away.
|
|
225
|
-
*/
|
|
218
|
+
type ParsedCodeLines = {
|
|
226
219
|
code: string;
|
|
227
|
-
|
|
228
|
-
* The highlighted lines, 0-indexed. e.g. `{ 0: ["highlight", "sample"] }`
|
|
229
|
-
* means the 1st line should have `highlight` and `sample` as class names.
|
|
230
|
-
*/
|
|
231
|
-
lineClassNames: {[lineIndex: number]: string[]};
|
|
220
|
+
lineClassNames: CodeLineClassNames;
|
|
232
221
|
};
|
|
233
222
|
|
|
234
223
|
function parseCodeLinesFromMetastring(
|
|
235
224
|
code: string,
|
|
236
225
|
{metastring, magicComments}: ParseCodeLinesParam,
|
|
237
|
-
):
|
|
226
|
+
): ParsedCodeLines | null {
|
|
238
227
|
// Highlighted lines specified in props: don't parse the content
|
|
239
228
|
if (metastring && metastringLinesRangeRegex.test(metastring)) {
|
|
240
229
|
const linesRange = metastring.match(metastringLinesRangeRegex)!.groups!
|
|
@@ -256,7 +245,7 @@ function parseCodeLinesFromMetastring(
|
|
|
256
245
|
function parseCodeLinesFromContent(
|
|
257
246
|
code: string,
|
|
258
247
|
params: ParseCodeLinesParam,
|
|
259
|
-
):
|
|
248
|
+
): ParsedCodeLines {
|
|
260
249
|
const {language, magicComments} = params;
|
|
261
250
|
if (language === undefined) {
|
|
262
251
|
return {lineClassNames: {}, code};
|
|
@@ -331,7 +320,7 @@ function parseCodeLinesFromContent(
|
|
|
331
320
|
export function parseLines(
|
|
332
321
|
code: string,
|
|
333
322
|
params: ParseCodeLinesParam,
|
|
334
|
-
):
|
|
323
|
+
): ParsedCodeLines {
|
|
335
324
|
// Historical behavior: we remove last line break
|
|
336
325
|
const newCode = code.replace(/\r?\n$/, '');
|
|
337
326
|
// Historical behavior: we try one strategy after the other
|
|
@@ -342,6 +331,120 @@ export function parseLines(
|
|
|
342
331
|
);
|
|
343
332
|
}
|
|
344
333
|
|
|
334
|
+
/**
|
|
335
|
+
* Gets the language name from the class name (set by MDX).
|
|
336
|
+
* e.g. `"language-javascript"` => `"javascript"`.
|
|
337
|
+
* Returns undefined if there is no language class name.
|
|
338
|
+
*/
|
|
339
|
+
export function parseClassNameLanguage(
|
|
340
|
+
className: string | undefined,
|
|
341
|
+
): string | undefined {
|
|
342
|
+
if (!className) {
|
|
343
|
+
return undefined;
|
|
344
|
+
}
|
|
345
|
+
const languageClassName = className
|
|
346
|
+
.split(' ')
|
|
347
|
+
.find((str) => str.startsWith('language-'));
|
|
348
|
+
return languageClassName?.replace(/language-/, '');
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Prism languages are always lowercase
|
|
352
|
+
// We want to fail-safe and allow both "php" and "PHP"
|
|
353
|
+
// See https://github.com/facebook/docusaurus/issues/9012
|
|
354
|
+
function normalizeLanguage(language: string | undefined): string | undefined {
|
|
355
|
+
return language?.toLowerCase();
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
function getLanguage(params: {
|
|
359
|
+
language: string | undefined;
|
|
360
|
+
className: string | undefined;
|
|
361
|
+
defaultLanguage: string | undefined;
|
|
362
|
+
}): string {
|
|
363
|
+
return (
|
|
364
|
+
normalizeLanguage(
|
|
365
|
+
params.language ??
|
|
366
|
+
parseClassNameLanguage(params.className) ??
|
|
367
|
+
params.defaultLanguage,
|
|
368
|
+
) ?? 'text'
|
|
369
|
+
); // There's always a language, required by Prism;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* This ensures that we always have the code block language as className
|
|
374
|
+
* For MDX code blocks this is provided automatically by MDX
|
|
375
|
+
* For JSX code blocks, the language gets added by this function
|
|
376
|
+
* This ensures both cases lead to a consistent HTML output
|
|
377
|
+
*/
|
|
378
|
+
function ensureLanguageClassName({
|
|
379
|
+
className,
|
|
380
|
+
language,
|
|
381
|
+
}: {
|
|
382
|
+
className: string | undefined;
|
|
383
|
+
language: string;
|
|
384
|
+
}): string {
|
|
385
|
+
return clsx(
|
|
386
|
+
className,
|
|
387
|
+
language &&
|
|
388
|
+
!className?.includes(`language-${language}`) &&
|
|
389
|
+
`language-${language}`,
|
|
390
|
+
);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
export interface CodeBlockMetadata {
|
|
394
|
+
codeInput: string; // Including magic comments
|
|
395
|
+
code: string; // Rendered code, excluding magic comments
|
|
396
|
+
className: string; // There's always a "language-<lang>" className
|
|
397
|
+
language: string;
|
|
398
|
+
title: ReactNode;
|
|
399
|
+
lineNumbersStart: number | undefined;
|
|
400
|
+
lineClassNames: CodeLineClassNames;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export function createCodeBlockMetadata(params: {
|
|
404
|
+
code: string;
|
|
405
|
+
className: string | undefined;
|
|
406
|
+
language: string | undefined;
|
|
407
|
+
defaultLanguage: string | undefined;
|
|
408
|
+
metastring: string | undefined;
|
|
409
|
+
magicComments: MagicCommentConfig[];
|
|
410
|
+
title: ReactNode;
|
|
411
|
+
showLineNumbers: boolean | number | undefined;
|
|
412
|
+
}): CodeBlockMetadata {
|
|
413
|
+
const language = getLanguage({
|
|
414
|
+
language: params.language,
|
|
415
|
+
defaultLanguage: params.defaultLanguage,
|
|
416
|
+
className: params.className,
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
const {lineClassNames, code} = parseLines(params.code, {
|
|
420
|
+
metastring: params.metastring,
|
|
421
|
+
magicComments: params.magicComments,
|
|
422
|
+
language,
|
|
423
|
+
});
|
|
424
|
+
|
|
425
|
+
const className = ensureLanguageClassName({
|
|
426
|
+
className: params.className,
|
|
427
|
+
language,
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
const title = parseCodeBlockTitle(params.metastring) || params.title;
|
|
431
|
+
|
|
432
|
+
const lineNumbersStart = getLineNumbersStart({
|
|
433
|
+
showLineNumbers: params.showLineNumbers,
|
|
434
|
+
metastring: params.metastring,
|
|
435
|
+
});
|
|
436
|
+
|
|
437
|
+
return {
|
|
438
|
+
codeInput: params.code,
|
|
439
|
+
code,
|
|
440
|
+
className,
|
|
441
|
+
language,
|
|
442
|
+
title,
|
|
443
|
+
lineNumbersStart,
|
|
444
|
+
lineClassNames,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
|
|
345
448
|
export function getPrismCssVariables(prismTheme: PrismTheme): CSSProperties {
|
|
346
449
|
const mapping: PrismThemeEntry = {
|
|
347
450
|
color: '--prism-color',
|
|
@@ -357,3 +460,39 @@ export function getPrismCssVariables(prismTheme: PrismTheme): CSSProperties {
|
|
|
357
460
|
});
|
|
358
461
|
return properties;
|
|
359
462
|
}
|
|
463
|
+
|
|
464
|
+
type CodeBlockContextValue = {
|
|
465
|
+
metadata: CodeBlockMetadata;
|
|
466
|
+
wordWrap: WordWrap;
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
const CodeBlockContext = createContext<CodeBlockContextValue | null>(null);
|
|
470
|
+
|
|
471
|
+
export function CodeBlockContextProvider({
|
|
472
|
+
metadata,
|
|
473
|
+
wordWrap,
|
|
474
|
+
children,
|
|
475
|
+
}: {
|
|
476
|
+
metadata: CodeBlockMetadata;
|
|
477
|
+
wordWrap: WordWrap;
|
|
478
|
+
children: ReactNode;
|
|
479
|
+
}): ReactNode {
|
|
480
|
+
// Should we optimize this in 2 contexts?
|
|
481
|
+
// Unlike metadata, wordWrap is stateful and likely to trigger re-renders
|
|
482
|
+
const value: CodeBlockContextValue = useMemo(() => {
|
|
483
|
+
return {metadata, wordWrap};
|
|
484
|
+
}, [metadata, wordWrap]);
|
|
485
|
+
return (
|
|
486
|
+
<CodeBlockContext.Provider value={value}>
|
|
487
|
+
{children}
|
|
488
|
+
</CodeBlockContext.Provider>
|
|
489
|
+
);
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
export function useCodeBlockContext(): CodeBlockContextValue {
|
|
493
|
+
const value = useContext(CodeBlockContext);
|
|
494
|
+
if (value === null) {
|
|
495
|
+
throw new ReactContextError('CodeBlockContextProvider');
|
|
496
|
+
}
|
|
497
|
+
return value;
|
|
498
|
+
}
|