File tree 5 files changed +58
-11
lines changed
5 files changed +58
-11
lines changed Original file line number Diff line number Diff line change @@ -34,12 +34,17 @@ const testData = [
34
34
' id="foo_sample_markdown_with_yaml_info">#</a></span></h1>' +
35
35
'<h2>Foobar<span><a class="mark" href="#foo_foobar" ' +
36
36
'id="foo_foobar">#</a></span></h2>' +
37
- '<div class="api_metadata"><span>Added: v1.0.0</span></div> ' +
37
+ '<div class="api_metadata"><span>Added in : v1.0.0</span></div> ' +
38
38
'<p>Describe <code>Foobar</code> in more detail here.</p>' +
39
+ '<h2>Foobar II<span><a class="mark" href="#foo_foobar_ii" ' +
40
+ 'id="foo_foobar_ii">#</a></span></h2>' +
41
+ '<div class="api_metadata"><span>Added in: v5.3.0, v4.2.0</span></div> ' +
42
+ '<p>Describe <code>Foobar II</code> in more detail here.</p>' +
39
43
'<h2>Deprecated thingy<span><a class="mark" ' +
40
44
'href="#foo_deprecated_thingy" id="foo_deprecated_thingy">#</a>' +
41
45
'</span></h2>' +
42
- '<div class="api_metadata"><span>Added: v1.0.0</span></div><p>Describe ' +
46
+ '<div class="api_metadata"><span>Added in: v1.0.0</span>' +
47
+ '<span>Deprecated since: v2.0.0</span></div><p>Describe ' +
43
48
'<code>Deprecated thingy</code> in more detail here.</p>' +
44
49
'<h2>Something<span><a class="mark" href="#foo_something" ' +
45
50
'id="foo_something">#</a></span></h2> ' +
Original file line number Diff line number Diff line change @@ -78,19 +78,30 @@ var testData = [
78
78
'textRaw' : 'Foobar' ,
79
79
'name' : 'foobar' ,
80
80
'meta' : {
81
- 'added' : 'v1.0.0'
81
+ 'added' : [ 'v1.0.0' ]
82
82
} ,
83
83
'desc' : '<p>Describe <code>Foobar</code> in more detail ' +
84
84
'here.\n\n</p>\n' ,
85
85
'type' : 'module' ,
86
86
'displayName' : 'Foobar'
87
87
} ,
88
+ {
89
+ 'textRaw' : 'Foobar II' ,
90
+ 'name' : 'foobar_ii' ,
91
+ 'meta' : {
92
+ 'added' : [ 'v5.3.0' , 'v4.2.0' ]
93
+ } ,
94
+ 'desc' : '<p>Describe <code>Foobar II</code> in more detail ' +
95
+ 'here.\n\n</p>\n' ,
96
+ 'type' : 'module' ,
97
+ 'displayName' : 'Foobar II'
98
+ } ,
88
99
{
89
100
'textRaw' : 'Deprecated thingy' ,
90
101
'name' : 'deprecated_thingy' ,
91
102
'meta' : {
92
- 'added' : 'v1.0.0' ,
93
- 'deprecated' : 'v2.0.0'
103
+ 'added' : [ 'v1.0.0' ] ,
104
+ 'deprecated' : [ 'v2.0.0' ]
94
105
} ,
95
106
'desc' : '<p>Describe <code>Deprecated thingy</code> in more ' +
96
107
'detail here.\n\n</p>\n' ,
Original file line number Diff line number Diff line change @@ -7,6 +7,15 @@ added: v1.0.0
7
7
8
8
Describe ` Foobar ` in more detail here.
9
9
10
+ ## Foobar II
11
+ <!-- YAML
12
+ added:
13
+ - v5.3.0
14
+ - v4.2.0
15
+ -->
16
+
17
+ Describe ` Foobar II ` in more detail here.
18
+
10
19
## Deprecated thingy
11
20
<!-- YAML
12
21
added: v1.0.0
Original file line number Diff line number Diff line change @@ -8,14 +8,33 @@ function isYAMLBlock(text) {
8
8
9
9
exports . isYAMLBlock = isYAMLBlock ;
10
10
11
+ function arrify ( value ) {
12
+ return Array . isArray ( value ) ? value : [ value ] ;
13
+ }
14
+
11
15
function extractAndParseYAML ( text ) {
12
16
text = text . trim ( ) ;
13
17
14
18
text = text . replace ( / ^ < ! - - Y A M L / , '' )
15
19
. replace ( / - - > $ / , '' ) ;
16
20
17
21
// js-yaml.safeLoad() throws on error
18
- return yaml . safeLoad ( text ) ;
22
+ const meta = yaml . safeLoad ( text ) ;
23
+
24
+ const added = meta . added || meta . Added ;
25
+ if ( added ) {
26
+ // Since semver-minors can trickle down to previous major versions,
27
+ // features may have been added in multiple versions.
28
+ meta . added = arrify ( added ) ;
29
+ }
30
+
31
+ const deprecated = meta . deprecated || meta . Deprecated ;
32
+ if ( deprecated ) {
33
+ // Treat deprecated like added for consistency.
34
+ meta . deprecated = arrify ( deprecated ) ;
35
+ }
36
+
37
+ return meta ;
19
38
}
20
39
21
40
exports . extractAndParseYAML = extractAndParseYAML ;
Original file line number Diff line number Diff line change @@ -180,15 +180,18 @@ function parseLists(input) {
180
180
181
181
function parseYAML ( text ) {
182
182
const meta = common . extractAndParseYAML ( text ) ;
183
- let html = '<div class="api_metadata">' ;
183
+ const html = [ '<div class="api_metadata">' ] ;
184
184
185
- if ( meta . added || meta . Added ) {
186
- meta . added = meta . added || meta . Added ;
185
+ if ( meta . added ) {
186
+ html . push ( `<span>Added in: ${ meta . added . join ( ', ' ) } </span>` ) ;
187
+ }
187
188
188
- html += '<span>Added: ' + meta . added + '</span>' ;
189
+ if ( meta . deprecated ) {
190
+ html . push ( `<span>Deprecated since: ${ meta . deprecated . join ( ', ' ) } </span>` ) ;
189
191
}
190
192
191
- return html + '</div>' ;
193
+ html . push ( '</div>' ) ;
194
+ return html . join ( '\n' ) ;
192
195
}
193
196
194
197
// Syscalls which appear in the docs, but which only exist in BSD / OSX
You can’t perform that action at this time.
0 commit comments