| 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 reading an HTML API description. | 6 * Code for reading an HTML API description. |
| 7 */ | 7 */ |
| 8 library from.html; | 8 library from.html; |
| 9 | 9 |
| 10 import 'dart:io'; | 10 import 'dart:io'; |
| 11 | 11 |
| 12 import 'package:analyzer/src/codegen/html.dart'; |
| 12 import 'package:html/dom.dart' as dom; | 13 import 'package:html/dom.dart' as dom; |
| 13 import 'package:html/parser.dart' as parser; | 14 import 'package:html/parser.dart' as parser; |
| 15 import 'package:path/path.dart'; |
| 14 | 16 |
| 15 import 'api.dart'; | 17 import 'api.dart'; |
| 16 import 'html_tools.dart'; | |
| 17 | 18 |
| 18 const List<String> specialElements = const [ | 19 const List<String> specialElements = const [ |
| 19 'domain', | 20 'domain', |
| 20 'feedback', | 21 'feedback', |
| 21 'object', | 22 'object', |
| 22 'refactorings', | 23 'refactorings', |
| 23 'refactoring', | 24 'refactoring', |
| 24 'type', | 25 'type', |
| 25 'types', | 26 'types', |
| 26 'request', | 27 'request', |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 checkAttributes(child, ['field'], context); | 281 checkAttributes(child, ['field'], context); |
| 281 String field = child.attributes['field']; | 282 String field = child.attributes['field']; |
| 282 types.add( | 283 types.add( |
| 283 new TypeUnion(processContentsAsTypes(child, context), field, child)); | 284 new TypeUnion(processContentsAsTypes(child, context), field, child)); |
| 284 } | 285 } |
| 285 }); | 286 }); |
| 286 return types; | 287 return types; |
| 287 } | 288 } |
| 288 | 289 |
| 289 /** | 290 /** |
| 290 * Read the API description from the file 'spec_input.html'. | 291 * Read the API description from the file 'spec_input.html'. [pkgPath] is the |
| 292 * path to the current package. |
| 291 */ | 293 */ |
| 292 Api readApi() { | 294 Api readApi(String pkgPath) { |
| 293 File htmlFile = new File('spec_input.html'); | 295 File htmlFile = new File(join(pkgPath, 'tool', 'spec', 'spec_input.html')); |
| 294 String htmlContents = htmlFile.readAsStringSync(); | 296 String htmlContents = htmlFile.readAsStringSync(); |
| 295 dom.Document document = parser.parse(htmlContents); | 297 dom.Document document = parser.parse(htmlContents); |
| 296 dom.Element htmlElement = document.children | 298 dom.Element htmlElement = document.children |
| 297 .singleWhere((element) => element.localName.toLowerCase() == 'html'); | 299 .singleWhere((element) => element.localName.toLowerCase() == 'html'); |
| 298 return apiFromHtml(htmlElement); | 300 return apiFromHtml(htmlElement); |
| 299 } | 301 } |
| 300 | 302 |
| 301 void recurse(dom.Element parent, String context, | 303 void recurse(dom.Element parent, String context, |
| 302 Map<String, ElementProcessor> elementProcessors) { | 304 Map<String, ElementProcessor> elementProcessors) { |
| 303 for (String key in elementProcessors.keys) { | 305 for (String key in elementProcessors.keys) { |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 TypeDefinition typeDefinition = typeDefinitionFromHtml(child); | 540 TypeDefinition typeDefinition = typeDefinitionFromHtml(child); |
| 539 types[typeDefinition.name] = typeDefinition; | 541 types[typeDefinition.name] = typeDefinition; |
| 540 } | 542 } |
| 541 }); | 543 }); |
| 542 return new Types(types, html); | 544 return new Types(types, html); |
| 543 } | 545 } |
| 544 | 546 |
| 545 typedef void ElementProcessor(dom.Element element); | 547 typedef void ElementProcessor(dom.Element element); |
| 546 | 548 |
| 547 typedef void TextProcessor(dom.Text text); | 549 typedef void TextProcessor(dom.Text text); |
| OLD | NEW |