@@ -14,7 +14,9 @@ function parseAvailableSinceParams(info: string): AvailableSinceParams {
14
14
const params : AvailableSinceParams = { }
15
15
16
16
// Parse out key=value pairs first
17
- const keyValueMatches = [ ...allParams . matchAll ( / ( [ a - z ] + ) (?: = ( " [ ^ " ] * " | [ ^ \s " ] + ) ) ? / g) ]
17
+ const keyValueMatches = [
18
+ ...allParams . matchAll ( / ( [ a - z ] + ) (?: = ( " [ ^ " ] * " | [ ^ \s " ] + ) ) ? / g) ,
19
+ ]
18
20
for ( const [ , key , value ] of keyValueMatches ) {
19
21
let cleanValue = value ? value . replace ( / ^ " | " $ / g, '' ) : true
20
22
@@ -27,34 +29,47 @@ function parseAvailableSinceParams(info: string): AvailableSinceParams {
27
29
}
28
30
29
31
export function availableSinceMarkdownPlugin ( md : MarkdownIt ) {
30
- md . block . ruler . before ( 'paragraph' , 'available_since_oneliner' , ( state , start , end , silent ) => {
31
- const line = state . getLines ( start , start + 1 , 0 , false ) . trim ( )
32
+ md . block . ruler . before (
33
+ 'paragraph' ,
34
+ 'available_since_oneliner' ,
35
+ ( state , start , end , silent ) => {
36
+ const line = state . getLines ( start , start + 1 , 0 , false ) . trim ( )
32
37
33
- const match = line . match ( / ^ @ a v a i l a b l e _ s i n c e \s + ( .+ ) $ / )
34
- if ( ! match ) return false
38
+ const match = line . match ( / ^ @ a v a i l a b l e _ s i n c e \s + ( .+ ) $ / )
39
+ if ( ! match ) return false
35
40
36
- if ( silent ) return true
41
+ if ( silent ) return true
37
42
38
- const params = parseAvailableSinceParams ( `available_since ${ match [ 1 ] } ` )
39
- const token = state . push ( 'available_since_oneliner' , '' , 0 )
43
+ const params = parseAvailableSinceParams ( `available_since ${ match [ 1 ] } ` )
44
+ const token = state . push ( 'available_since_oneliner' , '' , 0 )
40
45
41
- token . content = renderAvailableSince ( params , md )
42
- token . map = [ start , start + 1 ]
46
+ token . content = renderAvailableSince ( params , md )
47
+ token . map = [ start , start + 1 ]
43
48
44
- state . line = start + 1
45
- return true
46
- } )
49
+ state . line = start + 1
50
+ return true
51
+ } ,
52
+ )
47
53
48
54
// Render the one-liner available_since token
49
55
md . renderer . rules . available_since_oneliner = ( tokens , idx ) => {
50
56
return tokens [ idx ] . content + '\n'
51
57
}
52
58
}
53
59
54
- function renderAvailableSince ( params : AvailableSinceParams , md : MarkdownIt ) : string {
55
- const railsAttr = params . rails ? `rails="${ md . utils . escapeHtml ( params . rails ) } "` : ''
56
- const coreAttr = params . core ? `core="${ md . utils . escapeHtml ( params . core ) } "` : ''
57
- const descriptionAttr = params . description ? `description="${ md . utils . escapeHtml ( params . description ) } "` : ''
60
+ function renderAvailableSince (
61
+ params : AvailableSinceParams ,
62
+ md : MarkdownIt ,
63
+ ) : string {
64
+ const railsAttr = params . rails
65
+ ? `rails="${ md . utils . escapeHtml ( params . rails ) } "`
66
+ : ''
67
+ const coreAttr = params . core
68
+ ? `core="${ md . utils . escapeHtml ( params . core ) } "`
69
+ : ''
70
+ const descriptionAttr = params . description
71
+ ? `description="${ md . utils . escapeHtml ( params . description ) } "`
72
+ : ''
58
73
59
74
return `<AvailableSince ${ railsAttr } ${ coreAttr } ${ descriptionAttr } />`
60
75
}
0 commit comments