OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * Code for displaying the API as HTML. This is used both for generating a | 6 * Code for displaying the API as HTML. This is used both for generating a |
7 * full description of the API as a web page, and for generating doc comments | 7 * full description of the API as a web page, and for generating doc comments |
8 * in generated code. | 8 * in generated code. |
9 */ | 9 */ |
10 library to.html; | 10 library to.html; |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 void visitTypeReference(TypeReference typeReference) { | 188 void visitTypeReference(TypeReference typeReference) { |
189 String displayName = typeReference.typeName; | 189 String displayName = typeReference.typeName; |
190 if (api.types.containsKey(typeReference.typeName)) { | 190 if (api.types.containsKey(typeReference.typeName)) { |
191 link('type_${typeReference.typeName}', () { | 191 link('type_${typeReference.typeName}', () { |
192 write(displayName); | 192 write(displayName); |
193 }); | 193 }); |
194 } else { | 194 } else { |
195 write(displayName); | 195 write(displayName); |
196 } | 196 } |
197 } | 197 } |
| 198 |
| 199 @override |
| 200 void visitTypeUnion(TypeUnion typeUnion) { |
| 201 bool verticalBarNeeded = false; |
| 202 for (TypeDecl choice in typeUnion.choices) { |
| 203 if (verticalBarNeeded) { |
| 204 write(' | '); |
| 205 } |
| 206 visitTypeDecl(choice); |
| 207 verticalBarNeeded = true; |
| 208 } |
| 209 } |
198 } | 210 } |
199 | 211 |
200 /** | 212 /** |
201 * Visitor that records the mapping from HTML elements to various kinds of API | 213 * Visitor that records the mapping from HTML elements to various kinds of API |
202 * nodes. | 214 * nodes. |
203 */ | 215 */ |
204 class ApiMappings extends HierarchicalApiVisitor { | 216 class ApiMappings extends HierarchicalApiVisitor { |
205 ApiMappings(Api api) : super(api); | 217 ApiMappings(Api api) : super(api); |
206 | 218 |
207 Map<dom.Element, Domain> domains = <dom.Element, Domain>{}; | 219 Map<dom.Element, Domain> domains = <dom.Element, Domain>{}; |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 */ | 546 */ |
535 main() { | 547 main() { |
536 ToHtmlVisitor visitor = new ToHtmlVisitor(readApi()); | 548 ToHtmlVisitor visitor = new ToHtmlVisitor(readApi()); |
537 dom.Document document = new dom.Document(); | 549 dom.Document document = new dom.Document(); |
538 for (dom.Node node in visitor.collectHtml(visitor.visitApi)) { | 550 for (dom.Node node in visitor.collectHtml(visitor.visitApi)) { |
539 document.append(node); | 551 document.append(node); |
540 } | 552 } |
541 File outputFile = new File('../../doc/api.html'); | 553 File outputFile = new File('../../doc/api.html'); |
542 outputFile.writeAsStringSync(document.outerHtml); | 554 outputFile.writeAsStringSync(document.outerHtml); |
543 } | 555 } |
OLD | NEW |