File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -34,12 +34,17 @@ const testData = [
3434' id="foo_sample_markdown_with_yaml_info">#</a></span></h1>' +
3535'<h2>Foobar<span><a class="mark" href="#foo_foobar" ' +
3636'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> ' +
3838'<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>' +
3943'<h2>Deprecated thingy<span><a class="mark" ' +
4044'href="#foo_deprecated_thingy" id="foo_deprecated_thingy">#</a>' +
4145'</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 ' +
4348'<code>Deprecated thingy</code> in more detail here.</p>' +
4449'<h2>Something<span><a class="mark" href="#foo_something" ' +
4550'id="foo_something">#</a></span></h2> ' +
Original file line number Diff line number Diff line change @@ -78,19 +78,30 @@ var testData = [
7878'textRaw' : 'Foobar' ,
7979'name' : 'foobar' ,
8080'meta' : {
81- 'added' : 'v1.0.0'
81+ 'added' : [ 'v1.0.0' ]
8282} ,
8383'desc' : '<p>Describe <code>Foobar</code> in more detail ' +
8484'here.\n\n</p>\n' ,
8585'type' : 'module' ,
8686'displayName' : 'Foobar'
8787} ,
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+ } ,
8899{
89100'textRaw' : 'Deprecated thingy' ,
90101'name' : 'deprecated_thingy' ,
91102'meta' : {
92- 'added' : 'v1.0.0' ,
93- 'deprecated' : 'v2.0.0'
103+ 'added' : [ 'v1.0.0' ] ,
104+ 'deprecated' : [ 'v2.0.0' ]
94105} ,
95106'desc' : '<p>Describe <code>Deprecated thingy</code> in more ' +
96107'detail here.\n\n</p>\n' ,
Original file line number Diff line number Diff line change @@ -7,6 +7,15 @@ added: v1.0.0
77
88Describe ` Foobar ` in more detail here.
99
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+
1019## Deprecated thingy
1120<!-- YAML
1221added: v1.0.0
Original file line number Diff line number Diff line change @@ -8,14 +8,33 @@ function isYAMLBlock(text) {
88
99exports . isYAMLBlock = isYAMLBlock ;
1010
11+ function arrify ( value ) {
12+ return Array . isArray ( value ) ? value : [ value ] ;
13+ }
14+
1115function extractAndParseYAML ( text ) {
1216text = text . trim ( ) ;
1317
1418text = text . replace ( / ^ < ! - - Y A M L / , '' )
1519. replace ( / - - > $ / , '' ) ;
1620
1721// 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 ;
1938}
2039
2140exports . extractAndParseYAML = extractAndParseYAML ;
Original file line number Diff line number Diff line change @@ -180,15 +180,18 @@ function parseLists(input) {
180180
181181function parseYAML ( text ) {
182182const meta = common . extractAndParseYAML ( text ) ;
183- let html = '<div class="api_metadata">' ;
183+ const html = [ '<div class="api_metadata">' ] ;
184184
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+ }
187188
188- html += '<span>Added: ' + meta . added + '</span>' ;
189+ if ( meta . deprecated ) {
190+ html . push ( `<span>Deprecated since: ${ meta . deprecated . join ( ', ' ) } </span>` ) ;
189191}
190192
191- return html + '</div>' ;
193+ html . push ( '</div>' ) ;
194+ return html . join ( '\n' ) ;
192195}
193196
194197// 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