File tree 3 files changed +22
-5
lines changed 3 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -8,13 +8,17 @@ module.exports = md => {
8
8
md . renderer . rules . fence = ( ...args ) => {
9
9
const [ tokens , idx , options ] = args
10
10
const token = tokens [ idx ]
11
- const langName = token . info . replace ( RE , '' ) . trim ( )
12
11
13
- if ( ! token . info || ! RE . test ( token . info ) ) {
14
- return `<div class="language-${ langName } ">${ fence ( ...args ) } </div>`
12
+ const rawInfo = token . info
13
+ if ( ! rawInfo || ! RE . test ( rawInfo ) ) {
14
+ return fence ( ...args )
15
15
}
16
16
17
- const lineNumbers = RE . exec ( token . info ) [ 1 ]
17
+ const langName = rawInfo . replace ( RE , '' ) . trim ( )
18
+ // ensure the next plugin get the correct lang.
19
+ token . info = langName
20
+
21
+ const lineNumbers = RE . exec ( rawInfo ) [ 1 ]
18
22
. split ( ',' )
19
23
. map ( v => v . split ( '-' ) . map ( v => parseInt ( v , 10 ) ) )
20
24
@@ -51,6 +55,6 @@ module.exports = md => {
51
55
highlightedCode += `${ split . code } \n`
52
56
}
53
57
} )
54
- return `<div class="language- ${ langName } "> ${ highlightedCode } </div>`
58
+ return highlightedCode
55
59
}
56
60
}
Original file line number Diff line number Diff line change 1
1
const highlight = require ( './highlight' )
2
2
const highlightLines = require ( './highlightLines' )
3
+ const preWrapper = require ( './preWrapper' )
3
4
const component = require ( './component' )
4
5
const hoistScriptStyle = require ( './hoist' )
5
6
const convertRouterLink = require ( './link' )
@@ -21,6 +22,7 @@ module.exports = ({ markdown = {}} = {}) => {
21
22
// custom plugins
22
23
. use ( component )
23
24
. use ( highlightLines )
25
+ . use ( preWrapper )
24
26
. use ( convertRouterLink , Object . assign ( {
25
27
target : '_blank' ,
26
28
rel : 'noopener noreferrer'
Original file line number Diff line number Diff line change
1
+ // markdown-it plugin for wrapping <pre> ... </pre>.
2
+
3
+ module . exports = md => {
4
+ const fence = md . renderer . rules . fence
5
+ md . renderer . rules . fence = ( ...args ) => {
6
+ const [ tokens , idx ] = args
7
+ const token = tokens [ idx ]
8
+ const rawCode = fence ( ...args )
9
+ return `<!--beforebegin--><div class="language-${ token . info . trim ( ) } "><!--afterbegin-->${ rawCode } <!--beforeend--></div><!--afterend-->`
10
+ }
11
+ }
You can’t perform that action at this time.
0 commit comments