@docusaurus/theme-common 3.7.0-canary-6273 → 3.7.0-canary-6275
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/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 +51 -34
- package/lib/utils/codeBlockUtils.d.ts.map +1 -1
- package/lib/utils/codeBlockUtils.js +93 -29
- package/lib/utils/codeBlockUtils.js.map +1 -1
- package/package.json +8 -8
- package/src/internal.ts +3 -5
- package/src/utils/codeBlockUtils.ts +183 -56
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, } 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,GACrB,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, } 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,GACrB,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,7 +4,7 @@
|
|
|
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
9
|
export type MagicCommentConfig = {
|
|
10
10
|
className: string;
|
|
@@ -19,26 +19,7 @@ export declare function getLineNumbersStart({ showLineNumbers, metastring, }: {
|
|
|
19
19
|
showLineNumbers: boolean | number | undefined;
|
|
20
20
|
metastring: string | undefined;
|
|
21
21
|
}): 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
|
-
/**
|
|
29
|
-
* Parses the code content, strips away any magic comments, and returns the
|
|
30
|
-
* clean content and the highlighted lines marked by the comments or metastring.
|
|
31
|
-
*
|
|
32
|
-
* If the metastring contains a range, the `content` will be returned as-is
|
|
33
|
-
* without any parsing. The returned `lineClassNames` will be a map from that
|
|
34
|
-
* number range to the first magic comment config entry (which _should_ be for
|
|
35
|
-
* line highlight directives.)
|
|
36
|
-
*
|
|
37
|
-
* @param content The raw code with magic comments. Trailing newline will be
|
|
38
|
-
* trimmed upfront.
|
|
39
|
-
* @param options Options for parsing behavior.
|
|
40
|
-
*/
|
|
41
|
-
export declare function parseLines(content: string, options: {
|
|
22
|
+
type ParseCodeLinesParam = {
|
|
42
23
|
/**
|
|
43
24
|
* The full metastring, as received from MDX. Line ranges declared here
|
|
44
25
|
* start at 1.
|
|
@@ -54,20 +35,56 @@ export declare function parseLines(content: string, options: {
|
|
|
54
35
|
* correspond to one class name to apply to each line.
|
|
55
36
|
*/
|
|
56
37
|
magicComments: MagicCommentConfig[];
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
*/
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* The highlighted lines, 0-indexed. e.g. `{ 0: ["highlight", "sample"] }`
|
|
41
|
+
* means the 1st line should have `highlight` and `sample` as class names.
|
|
42
|
+
*/
|
|
43
|
+
type CodeLineClassNames = {
|
|
44
|
+
[lineIndex: number]: string[];
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Code lines after applying magic comments or metastring highlight ranges
|
|
48
|
+
*/
|
|
49
|
+
type ParsedCodeLines = {
|
|
70
50
|
code: string;
|
|
51
|
+
lineClassNames: CodeLineClassNames;
|
|
71
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Parses the code content, strips away any magic comments, and returns the
|
|
55
|
+
* clean content and the highlighted lines marked by the comments or metastring.
|
|
56
|
+
*
|
|
57
|
+
* If the metastring contains a range, the `content` will be returned as-is
|
|
58
|
+
* without any parsing. The returned `lineClassNames` will be a map from that
|
|
59
|
+
* number range to the first magic comment config entry (which _should_ be for
|
|
60
|
+
* line highlight directives.)
|
|
61
|
+
*/
|
|
62
|
+
export declare function parseLines(code: string, params: ParseCodeLinesParam): ParsedCodeLines;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the language name from the class name (set by MDX).
|
|
65
|
+
* e.g. `"language-javascript"` => `"javascript"`.
|
|
66
|
+
* Returns undefined if there is no language class name.
|
|
67
|
+
*/
|
|
68
|
+
export declare function parseClassNameLanguage(className: string | undefined): string | undefined;
|
|
69
|
+
export interface CodeBlockMetadata {
|
|
70
|
+
codeInput: string;
|
|
71
|
+
code: string;
|
|
72
|
+
className: string;
|
|
73
|
+
language: string;
|
|
74
|
+
title: ReactNode;
|
|
75
|
+
lineNumbersStart: number | undefined;
|
|
76
|
+
lineClassNames: CodeLineClassNames;
|
|
77
|
+
}
|
|
78
|
+
export declare function createCodeBlockMetadata(params: {
|
|
79
|
+
code: string;
|
|
80
|
+
className: string | undefined;
|
|
81
|
+
language: string | undefined;
|
|
82
|
+
defaultLanguage: string | undefined;
|
|
83
|
+
metastring: string | undefined;
|
|
84
|
+
magicComments: MagicCommentConfig[];
|
|
85
|
+
title: ReactNode;
|
|
86
|
+
showLineNumbers: boolean | number | undefined;
|
|
87
|
+
}): CodeBlockMetadata;
|
|
72
88
|
export declare function getPrismCssVariables(prismTheme: PrismTheme): CSSProperties;
|
|
89
|
+
export {};
|
|
73
90
|
//# sourceMappingURL=codeBlockUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeBlockUtils.d.ts","sourceRoot":"","sources":["../../src/utils/codeBlockUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"codeBlockUtils.d.ts","sourceRoot":"","sources":["../../src/utils/codeBlockUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGpD,OAAO,KAAK,EAAC,UAAU,EAAkB,MAAM,sBAAsB,CAAC;AAiCtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC;CACtC,CAAC;AAuGF,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAkBD,wBAAgB,mBAAmB,CAAC,EAClC,eAAe,EACf,UAAU,GACX,EAAE;IACD,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,MAAM,GAAG,SAAS,CASrB;AAED,KAAK,mBAAmB,GAAG;IACzB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,aAAa,EAAE,kBAAkB,EAAE,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,KAAK,kBAAkB,GAAG;IAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAC,CAAC;AAE1D;;GAEG;AACH,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,kBAAkB,CAAC;CACpC,CAAC;AA0FF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,mBAAmB,GAC1B,eAAe,CAYjB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,GAAG,SAAS,CAQpB;AA4CD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CAC/C,GAAG,iBAAiB,CAkCpB;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,CAc1E"}
|
|
@@ -4,6 +4,7 @@
|
|
|
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 clsx from 'clsx';
|
|
7
8
|
import rangeParser from 'parse-numeric-range';
|
|
8
9
|
const codeBlockTitleRegex = /title=(?<quote>["'])(?<title>.*?)\1/;
|
|
9
10
|
const metastringLinesRangeRegex = /\{(?<range>[\d,-]+)\}/;
|
|
@@ -126,33 +127,7 @@ export function getLineNumbersStart({ showLineNumbers, metastring, }) {
|
|
|
126
127
|
}
|
|
127
128
|
return getMetaLineNumbersStart(metastring);
|
|
128
129
|
}
|
|
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
|
-
/**
|
|
141
|
-
* Parses the code content, strips away any magic comments, and returns the
|
|
142
|
-
* clean content and the highlighted lines marked by the comments or metastring.
|
|
143
|
-
*
|
|
144
|
-
* If the metastring contains a range, the `content` will be returned as-is
|
|
145
|
-
* without any parsing. The returned `lineClassNames` will be a map from that
|
|
146
|
-
* number range to the first magic comment config entry (which _should_ be for
|
|
147
|
-
* line highlight directives.)
|
|
148
|
-
*
|
|
149
|
-
* @param content The raw code with magic comments. Trailing newline will be
|
|
150
|
-
* trimmed upfront.
|
|
151
|
-
* @param options Options for parsing behavior.
|
|
152
|
-
*/
|
|
153
|
-
export function parseLines(content, options) {
|
|
154
|
-
let code = content.replace(/\r?\n$/, '');
|
|
155
|
-
const { language, magicComments, metastring } = options;
|
|
130
|
+
function parseCodeLinesFromMetastring(code, { metastring, magicComments }) {
|
|
156
131
|
// Highlighted lines specified in props: don't parse the content
|
|
157
132
|
if (metastring && metastringLinesRangeRegex.test(metastring)) {
|
|
158
133
|
const linesRange = metastring.match(metastringLinesRangeRegex).groups
|
|
@@ -166,6 +141,10 @@ export function parseLines(content, options) {
|
|
|
166
141
|
.map((n) => [n - 1, [metastringRangeClassName]]);
|
|
167
142
|
return { lineClassNames: Object.fromEntries(lines), code };
|
|
168
143
|
}
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
function parseCodeLinesFromContent(code, params) {
|
|
147
|
+
const { language, magicComments } = params;
|
|
169
148
|
if (language === undefined) {
|
|
170
149
|
return { lineClassNames: {}, code };
|
|
171
150
|
}
|
|
@@ -204,7 +183,6 @@ export function parseLines(content, options) {
|
|
|
204
183
|
}
|
|
205
184
|
lines.splice(lineNumber, 1);
|
|
206
185
|
}
|
|
207
|
-
code = lines.join('\n');
|
|
208
186
|
const lineClassNames = {};
|
|
209
187
|
Object.entries(blocks).forEach(([className, { range }]) => {
|
|
210
188
|
rangeParser(range).forEach((l) => {
|
|
@@ -212,7 +190,93 @@ export function parseLines(content, options) {
|
|
|
212
190
|
lineClassNames[l].push(className);
|
|
213
191
|
});
|
|
214
192
|
});
|
|
215
|
-
return {
|
|
193
|
+
return { code: lines.join('\n'), lineClassNames };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Parses the code content, strips away any magic comments, and returns the
|
|
197
|
+
* clean content and the highlighted lines marked by the comments or metastring.
|
|
198
|
+
*
|
|
199
|
+
* If the metastring contains a range, the `content` will be returned as-is
|
|
200
|
+
* without any parsing. The returned `lineClassNames` will be a map from that
|
|
201
|
+
* number range to the first magic comment config entry (which _should_ be for
|
|
202
|
+
* line highlight directives.)
|
|
203
|
+
*/
|
|
204
|
+
export function parseLines(code, params) {
|
|
205
|
+
// Historical behavior: we remove last line break
|
|
206
|
+
const newCode = code.replace(/\r?\n$/, '');
|
|
207
|
+
// Historical behavior: we try one strategy after the other
|
|
208
|
+
// we don't support mixing metastring ranges + magic comments
|
|
209
|
+
console.log('params', { params, code });
|
|
210
|
+
console.log('from meta', parseCodeLinesFromMetastring(newCode, { ...params }));
|
|
211
|
+
console.log('from content', parseCodeLinesFromContent(newCode, { ...params }));
|
|
212
|
+
return (parseCodeLinesFromMetastring(newCode, { ...params }) ??
|
|
213
|
+
parseCodeLinesFromContent(newCode, { ...params }));
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Gets the language name from the class name (set by MDX).
|
|
217
|
+
* e.g. `"language-javascript"` => `"javascript"`.
|
|
218
|
+
* Returns undefined if there is no language class name.
|
|
219
|
+
*/
|
|
220
|
+
export function parseClassNameLanguage(className) {
|
|
221
|
+
if (!className) {
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
const languageClassName = className
|
|
225
|
+
.split(' ')
|
|
226
|
+
.find((str) => str.startsWith('language-'));
|
|
227
|
+
return languageClassName?.replace(/language-/, '');
|
|
228
|
+
}
|
|
229
|
+
// Prism languages are always lowercase
|
|
230
|
+
// We want to fail-safe and allow both "php" and "PHP"
|
|
231
|
+
// See https://github.com/facebook/docusaurus/issues/9012
|
|
232
|
+
function normalizeLanguage(language) {
|
|
233
|
+
return language?.toLowerCase();
|
|
234
|
+
}
|
|
235
|
+
function getLanguage(params) {
|
|
236
|
+
return (normalizeLanguage(params.language ??
|
|
237
|
+
parseClassNameLanguage(params.className) ??
|
|
238
|
+
params.defaultLanguage) ?? 'text'); // There's always a language, required by Prism;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* This ensures that we always have the code block language as className
|
|
242
|
+
* For MDX code blocks this is provided automatically by MDX
|
|
243
|
+
* For JSX code blocks, the language gets added by this function
|
|
244
|
+
* This ensures both cases lead to a consistent HTML output
|
|
245
|
+
*/
|
|
246
|
+
function ensureLanguageClassName({ className, language, }) {
|
|
247
|
+
return clsx(className, language &&
|
|
248
|
+
!className?.includes(`language-${language}`) &&
|
|
249
|
+
`language-${language}`);
|
|
250
|
+
}
|
|
251
|
+
export function createCodeBlockMetadata(params) {
|
|
252
|
+
const language = getLanguage({
|
|
253
|
+
language: params.language,
|
|
254
|
+
defaultLanguage: params.defaultLanguage,
|
|
255
|
+
className: params.className,
|
|
256
|
+
});
|
|
257
|
+
const { lineClassNames, code } = parseLines(params.code, {
|
|
258
|
+
metastring: params.metastring,
|
|
259
|
+
magicComments: params.magicComments,
|
|
260
|
+
language,
|
|
261
|
+
});
|
|
262
|
+
const className = ensureLanguageClassName({
|
|
263
|
+
className: params.className,
|
|
264
|
+
language,
|
|
265
|
+
});
|
|
266
|
+
const title = parseCodeBlockTitle(params.metastring) || params.title;
|
|
267
|
+
const lineNumbersStart = getLineNumbersStart({
|
|
268
|
+
showLineNumbers: params.showLineNumbers,
|
|
269
|
+
metastring: params.metastring,
|
|
270
|
+
});
|
|
271
|
+
return {
|
|
272
|
+
codeInput: params.code,
|
|
273
|
+
code,
|
|
274
|
+
className,
|
|
275
|
+
language,
|
|
276
|
+
title,
|
|
277
|
+
lineNumbersStart,
|
|
278
|
+
lineClassNames,
|
|
279
|
+
};
|
|
216
280
|
}
|
|
217
281
|
export function getPrismCssVariables(prismTheme) {
|
|
218
282
|
const mapping = {
|
|
@@ -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.ts"],"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-6275",
|
|
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-6275",
|
|
34
|
+
"@docusaurus/module-type-aliases": "3.7.0-canary-6275",
|
|
35
|
+
"@docusaurus/utils": "3.7.0-canary-6275",
|
|
36
|
+
"@docusaurus/utils-common": "3.7.0-canary-6275",
|
|
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-6275",
|
|
48
|
+
"@docusaurus/types": "3.7.0-canary-6275",
|
|
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": "2066932804271ce5f501655ad7fb6525186aa72d"
|
|
61
61
|
}
|
package/src/internal.ts
CHANGED
|
@@ -34,10 +34,9 @@ export {ColorModeProvider} from './contexts/colorMode';
|
|
|
34
34
|
export {useAlternatePageUtils} from './utils/useAlternatePageUtils';
|
|
35
35
|
|
|
36
36
|
export {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
getLineNumbersStart,
|
|
37
|
+
type CodeBlockMetadata,
|
|
38
|
+
createCodeBlockMetadata,
|
|
39
|
+
getPrismCssVariables,
|
|
41
40
|
} from './utils/codeBlockUtils';
|
|
42
41
|
|
|
43
42
|
export {DEFAULT_SEARCH_TAG} from './utils/searchUtils';
|
|
@@ -88,7 +87,6 @@ export {
|
|
|
88
87
|
} from './hooks/useKeyboardNavigation';
|
|
89
88
|
export {useLockBodyScroll} from './hooks/useLockBodyScroll';
|
|
90
89
|
export {useCodeWordWrap} from './hooks/useCodeWordWrap';
|
|
91
|
-
export {getPrismCssVariables} from './utils/codeBlockUtils';
|
|
92
90
|
export {useBackToTopButton} from './hooks/useBackToTopButton';
|
|
93
91
|
|
|
94
92
|
export {
|
|
@@ -5,7 +5,8 @@
|
|
|
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 clsx from 'clsx';
|
|
9
10
|
import rangeParser from 'parse-numeric-range';
|
|
10
11
|
import type {PrismTheme, PrismThemeEntry} from 'prism-react-renderer';
|
|
11
12
|
|
|
@@ -184,65 +185,42 @@ export function getLineNumbersStart({
|
|
|
184
185
|
return getMetaLineNumbersStart(metastring);
|
|
185
186
|
}
|
|
186
187
|
|
|
188
|
+
type ParseCodeLinesParam = {
|
|
189
|
+
/**
|
|
190
|
+
* The full metastring, as received from MDX. Line ranges declared here
|
|
191
|
+
* start at 1.
|
|
192
|
+
*/
|
|
193
|
+
metastring: string | undefined;
|
|
194
|
+
/**
|
|
195
|
+
* Language of the code block, used to determine which kinds of magic
|
|
196
|
+
* comment styles to enable.
|
|
197
|
+
*/
|
|
198
|
+
language: string | undefined;
|
|
199
|
+
/**
|
|
200
|
+
* Magic comment types that we should try to parse. Each entry would
|
|
201
|
+
* correspond to one class name to apply to each line.
|
|
202
|
+
*/
|
|
203
|
+
magicComments: MagicCommentConfig[];
|
|
204
|
+
};
|
|
205
|
+
|
|
187
206
|
/**
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
* Returns undefined if there is no language class name.
|
|
207
|
+
* The highlighted lines, 0-indexed. e.g. `{ 0: ["highlight", "sample"] }`
|
|
208
|
+
* means the 1st line should have `highlight` and `sample` as class names.
|
|
191
209
|
*/
|
|
192
|
-
|
|
193
|
-
const languageClassName = className
|
|
194
|
-
.split(' ')
|
|
195
|
-
.find((str) => str.startsWith('language-'));
|
|
196
|
-
return languageClassName?.replace(/language-/, '');
|
|
197
|
-
}
|
|
210
|
+
type CodeLineClassNames = {[lineIndex: number]: string[]};
|
|
198
211
|
|
|
199
212
|
/**
|
|
200
|
-
*
|
|
201
|
-
* clean content and the highlighted lines marked by the comments or metastring.
|
|
202
|
-
*
|
|
203
|
-
* If the metastring contains a range, the `content` will be returned as-is
|
|
204
|
-
* without any parsing. The returned `lineClassNames` will be a map from that
|
|
205
|
-
* number range to the first magic comment config entry (which _should_ be for
|
|
206
|
-
* line highlight directives.)
|
|
207
|
-
*
|
|
208
|
-
* @param content The raw code with magic comments. Trailing newline will be
|
|
209
|
-
* trimmed upfront.
|
|
210
|
-
* @param options Options for parsing behavior.
|
|
213
|
+
* Code lines after applying magic comments or metastring highlight ranges
|
|
211
214
|
*/
|
|
212
|
-
|
|
213
|
-
content: string,
|
|
214
|
-
options: {
|
|
215
|
-
/**
|
|
216
|
-
* The full metastring, as received from MDX. Line ranges declared here
|
|
217
|
-
* start at 1.
|
|
218
|
-
*/
|
|
219
|
-
metastring: string | undefined;
|
|
220
|
-
/**
|
|
221
|
-
* Language of the code block, used to determine which kinds of magic
|
|
222
|
-
* comment styles to enable.
|
|
223
|
-
*/
|
|
224
|
-
language: string | undefined;
|
|
225
|
-
/**
|
|
226
|
-
* Magic comment types that we should try to parse. Each entry would
|
|
227
|
-
* correspond to one class name to apply to each line.
|
|
228
|
-
*/
|
|
229
|
-
magicComments: MagicCommentConfig[];
|
|
230
|
-
},
|
|
231
|
-
): {
|
|
232
|
-
/**
|
|
233
|
-
* The highlighted lines, 0-indexed. e.g. `{ 0: ["highlight", "sample"] }`
|
|
234
|
-
* means the 1st line should have `highlight` and `sample` as class names.
|
|
235
|
-
*/
|
|
236
|
-
lineClassNames: {[lineIndex: number]: string[]};
|
|
237
|
-
/**
|
|
238
|
-
* If there's number range declared in the metastring, the code block is
|
|
239
|
-
* returned as-is (no parsing); otherwise, this is the clean code with all
|
|
240
|
-
* magic comments stripped away.
|
|
241
|
-
*/
|
|
215
|
+
type ParsedCodeLines = {
|
|
242
216
|
code: string;
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
217
|
+
lineClassNames: CodeLineClassNames;
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
function parseCodeLinesFromMetastring(
|
|
221
|
+
code: string,
|
|
222
|
+
{metastring, magicComments}: ParseCodeLinesParam,
|
|
223
|
+
): ParsedCodeLines | null {
|
|
246
224
|
// Highlighted lines specified in props: don't parse the content
|
|
247
225
|
if (metastring && metastringLinesRangeRegex.test(metastring)) {
|
|
248
226
|
const linesRange = metastring.match(metastringLinesRangeRegex)!.groups!
|
|
@@ -258,6 +236,14 @@ export function parseLines(
|
|
|
258
236
|
.map((n) => [n - 1, [metastringRangeClassName]] as [number, string[]]);
|
|
259
237
|
return {lineClassNames: Object.fromEntries(lines), code};
|
|
260
238
|
}
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function parseCodeLinesFromContent(
|
|
243
|
+
code: string,
|
|
244
|
+
params: ParseCodeLinesParam,
|
|
245
|
+
): ParsedCodeLines {
|
|
246
|
+
const {language, magicComments} = params;
|
|
261
247
|
if (language === undefined) {
|
|
262
248
|
return {lineClassNames: {}, code};
|
|
263
249
|
}
|
|
@@ -307,7 +293,7 @@ export function parseLines(
|
|
|
307
293
|
}
|
|
308
294
|
lines.splice(lineNumber, 1);
|
|
309
295
|
}
|
|
310
|
-
|
|
296
|
+
|
|
311
297
|
const lineClassNames: {[lineIndex: number]: string[]} = {};
|
|
312
298
|
Object.entries(blocks).forEach(([className, {range}]) => {
|
|
313
299
|
rangeParser(range).forEach((l) => {
|
|
@@ -315,7 +301,148 @@ export function parseLines(
|
|
|
315
301
|
lineClassNames[l]!.push(className);
|
|
316
302
|
});
|
|
317
303
|
});
|
|
318
|
-
|
|
304
|
+
|
|
305
|
+
return {code: lines.join('\n'), lineClassNames};
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Parses the code content, strips away any magic comments, and returns the
|
|
310
|
+
* clean content and the highlighted lines marked by the comments or metastring.
|
|
311
|
+
*
|
|
312
|
+
* If the metastring contains a range, the `content` will be returned as-is
|
|
313
|
+
* without any parsing. The returned `lineClassNames` will be a map from that
|
|
314
|
+
* number range to the first magic comment config entry (which _should_ be for
|
|
315
|
+
* line highlight directives.)
|
|
316
|
+
*/
|
|
317
|
+
export function parseLines(
|
|
318
|
+
code: string,
|
|
319
|
+
params: ParseCodeLinesParam,
|
|
320
|
+
): ParsedCodeLines {
|
|
321
|
+
// Historical behavior: we remove last line break
|
|
322
|
+
const newCode = code.replace(/\r?\n$/, '');
|
|
323
|
+
// Historical behavior: we try one strategy after the other
|
|
324
|
+
// we don't support mixing metastring ranges + magic comments
|
|
325
|
+
console.log('params', {params, code});
|
|
326
|
+
console.log('from meta', parseCodeLinesFromMetastring(newCode, {...params}));
|
|
327
|
+
console.log('from content', parseCodeLinesFromContent(newCode, {...params}));
|
|
328
|
+
return (
|
|
329
|
+
parseCodeLinesFromMetastring(newCode, {...params}) ??
|
|
330
|
+
parseCodeLinesFromContent(newCode, {...params})
|
|
331
|
+
);
|
|
332
|
+
}
|
|
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
|
+
};
|
|
319
446
|
}
|
|
320
447
|
|
|
321
448
|
export function getPrismCssVariables(prismTheme: PrismTheme): CSSProperties {
|