@@ -14,24 +14,40 @@ interface PrismFormattedProps {
14
14
* @param showLineNumbers
15
15
* @param darkTheme
16
16
*/
17
- const addFormattingClassesForPres = ( container : HTMLElement , showLineNumbers = true , darkTheme = true ) => {
18
- const codeBlocks : HTMLElement [ ] = [ ] . slice . call ( container . querySelectorAll ( '[class*="language-"]' ) ) ;
17
+ const addFormattingClassesForPres = (
18
+ container : HTMLElement ,
19
+ showLineNumbers = true ,
20
+ darkTheme = true
21
+ ) => {
22
+ const codeBlocks : HTMLElement [ ] = [ ] . slice . call (
23
+ container . querySelectorAll ( '[class*="language-"]' )
24
+ ) ;
19
25
// we want to formatt the <pre> element, not the <code>, get parent if current element is not PRE
20
- const preElements : HTMLPreElement [ ] = codeBlocks . map ( c => ( c . nodeName === 'PRE' ? c : c . parentElement ) as HTMLPreElement ) ;
26
+ const preElements : HTMLPreElement [ ] = codeBlocks . map (
27
+ c => ( c . nodeName === 'PRE' ? c : c . parentElement ) as HTMLPreElement
28
+ ) ;
21
29
22
- for ( const pre of preElements ) {
30
+ for ( const pre of preElements ) {
23
31
pre . classList . toggle ( 'line-numbers' , showLineNumbers ) ;
24
32
pre . classList . toggle ( 'dark-palette' , darkTheme ) ;
25
33
}
26
- }
34
+ } ;
27
35
28
- function PrismFormatted ( { className, text, ...props } : PrismFormattedProps ) : JSX . Element {
36
+ function PrismFormatted ( {
37
+ className,
38
+ text,
39
+ ...props
40
+ } : PrismFormattedProps ) : JSX . Element {
29
41
const instructionsRef = useRef < HTMLDivElement > ( null ) ;
30
42
31
43
useEffect ( ( ) => {
32
44
// Just in case 'current' has not been created, though it should have been.
33
45
if ( instructionsRef . current ) {
34
- addFormattingClassesForPres ( instructionsRef . current , props . lineNumbers , props . darkTheme ) ;
46
+ addFormattingClassesForPres (
47
+ instructionsRef . current ,
48
+ props . lineNumbers ,
49
+ props . darkTheme
50
+ ) ;
35
51
Prism . highlightAllUnder ( instructionsRef . current ) ;
36
52
}
37
53
} , [ props . darkTheme , props . lineNumbers ] ) ;
0 commit comments