2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
+ import 'dart:convert' ;
6
+
5
7
import 'package:analyzer/dart/element/type.dart' ;
6
8
import 'package:dartdoc/src/element_type.dart' ;
7
9
import 'package:dartdoc/src/model/parameter.dart' ;
10
+ import 'package:meta/meta.dart' as meta;
8
11
9
12
/// Render HTML in an extended vertical format using <ol> tag.
10
13
class ParameterRendererHtmlList extends ParameterRendererHtml {
@@ -27,8 +30,12 @@ class ParameterRendererHtml extends ParameterRenderer {
27
30
@override
28
31
String covariant (String covariant ) => '<span>$covariant </span>' ;
29
32
@override
30
- String defaultValue (String defaultValue) =>
31
- '<span class="default-value">$defaultValue </span>' ;
33
+ String defaultValue (String defaultValue) {
34
+ var escaped =
35
+ const HtmlEscape (HtmlEscapeMode .unknown).convert (defaultValue);
36
+ return '<span class="default-value">$escaped </span>' ;
37
+ }
38
+
32
39
@override
33
40
String parameter (String parameter, String htmlId) =>
34
41
'<span class="parameter" id="${htmlId }">$parameter </span>' ;
@@ -93,34 +100,38 @@ abstract class ParameterRenderer {
93
100
var positional = '' , optional = '' , named = '' ;
94
101
if (positionalParams.isNotEmpty) {
95
102
positional = _linkedParameterSublist (positionalParams,
96
- optionalPositionalParams.isNotEmpty || namedParams.isNotEmpty,
97
- showMetadata: showMetadata, showNames: showNames);
103
+ trailingComma:
104
+ optionalPositionalParams.isNotEmpty || namedParams.isNotEmpty,
105
+ showMetadata: showMetadata,
106
+ showNames: showNames);
98
107
}
99
108
if (optionalPositionalParams.isNotEmpty) {
100
- optional = _linkedParameterSublist (
101
- optionalPositionalParams, namedParams.isNotEmpty,
109
+ optional = _linkedParameterSublist (optionalPositionalParams,
110
+ trailingComma : namedParams.isNotEmpty,
102
111
openBracket: '[' ,
103
112
closeBracket: ']' ,
104
113
showMetadata: showMetadata,
105
114
showNames: showNames);
106
115
}
107
116
if (namedParams.isNotEmpty) {
108
- named = _linkedParameterSublist (namedParams, false ,
117
+ named = _linkedParameterSublist (namedParams,
118
+ trailingComma: false ,
109
119
openBracket: '{' ,
110
120
closeBracket: '}' ,
111
121
showMetadata: showMetadata,
112
122
showNames: showNames);
113
123
}
114
- return ( orderedList (positional + optional + named) );
124
+ return orderedList (positional + optional + named);
115
125
}
116
126
117
- String _linkedParameterSublist (List <Parameter > parameters, bool trailingComma,
118
- {String openBracket = '' ,
127
+ String _linkedParameterSublist (List <Parameter > parameters,
128
+ {@meta .required bool trailingComma,
129
+ String openBracket = '' ,
119
130
String closeBracket = '' ,
120
131
showMetadata = true ,
121
132
showNames = true }) {
122
133
var builder = StringBuffer ();
123
- parameters. forEach ((p ) {
134
+ for ( var p in parameters ) {
124
135
var prefix = '' ;
125
136
var suffix = '' ;
126
137
if (identical (p, parameters.first)) {
@@ -136,7 +147,7 @@ abstract class ParameterRenderer {
136
147
_renderParam (p, showMetadata: showMetadata, showNames: showNames);
137
148
builder.write (
138
149
listItem (parameter (prefix + renderedParam + suffix, p.htmlId)));
139
- });
150
+ }
140
151
return builder.toString ();
141
152
}
142
153
0 commit comments