@@ -25,9 +25,11 @@ export class Compiler {
25
25
if ( isFn ( mdConf ) ) {
26
26
compile = mdConf ( marked , renderer )
27
27
} else {
28
- marked . setOptions ( merge ( mdConf , {
29
- renderer : merge ( renderer , mdConf . renderer )
30
- } ) )
28
+ marked . setOptions (
29
+ merge ( mdConf , {
30
+ renderer : merge ( renderer , mdConf . renderer )
31
+ } )
32
+ )
31
33
compile = marked
32
34
}
33
35
@@ -91,33 +93,49 @@ export class Compiler {
91
93
}
92
94
// highlight code
93
95
origin . code = renderer . code = function ( code , lang = '' ) {
94
- const hl = Prism . highlight ( code , Prism . languages [ lang ] || Prism . languages . markup )
96
+ const hl = Prism . highlight (
97
+ code ,
98
+ Prism . languages [ lang ] || Prism . languages . markup
99
+ )
95
100
96
101
return `<pre v-pre data-lang="${ lang } "><code class="lang-${ lang } ">${ hl } </code></pre>`
97
102
}
98
- origin . link = renderer . link = function ( href , title , text ) {
99
- let blank = ''
103
+ origin . link = renderer . link = function ( href , title = '' , text ) {
104
+ let attrs = ''
105
+ const config = { }
100
106
101
- if ( ! / : | ( \/ { 2 } ) / . test ( href ) &&
107
+ if ( title ) {
108
+ title = title
109
+ . replace ( / : ( \w + ) = ? ( \w + ) ? / g, ( m , key , value ) => {
110
+ config [ key ] = value || true
111
+ return ''
112
+ } )
113
+ . trim ( )
114
+ }
115
+
116
+ if (
117
+ ! / : | ( \/ { 2 } ) / . test ( href ) &&
102
118
! _self . matchNotCompileLink ( href ) &&
103
- ! / ( \s ? : i g n o r e ) ( \s \S + ) ? $ / . test ( title ) ) {
119
+ ! config . ignore
120
+ ) {
104
121
href = router . toURL ( href , null , router . getCurrentPath ( ) )
105
122
} else {
106
- blank = ` target="${ linkTarget } "`
107
- title = title && title . replace ( / : i g n o r e / g, '' ) . trim ( )
123
+ attrs += ` target="${ linkTarget } "`
124
+ }
125
+
126
+ if ( config . target ) {
127
+ attrs += ' target=' + config . target
108
128
}
109
129
110
- let target = title && title . match ( / : t a r g e t = \w + / )
111
- if ( target ) {
112
- target = target [ 0 ]
113
- title = title . replace ( target , '' )
114
- blank = ' ' + target . slice ( 1 )
130
+ if ( config . disabled ) {
131
+ attrs += ' disabled'
132
+ href = 'javascript:void(0)'
115
133
}
116
134
117
135
if ( title ) {
118
136
title = ` title="${ title } "`
119
137
}
120
- return `<a href="${ href } "${ title || '' } ${ blank } >${ text } </a>`
138
+ return `<a href="${ href } "${ title || '' } ${ attrs } >${ text } </a>`
121
139
}
122
140
origin . paragraph = renderer . paragraph = function ( text ) {
123
141
if ( / ^ ! & g t ; / . test ( text ) ) {
0 commit comments