| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 * Generates the complete set of corelib reference documentation. | 6 * Generates the complete set of corelib reference documentation. |
| 7 */ | 7 */ |
| 8 #library('apidoc'); | 8 #library('apidoc'); |
| 9 | 9 |
| 10 #import('dart:json'); | 10 #import('dart:json'); |
| 11 #import('html_diff.dart'); | 11 #import('html_diff.dart'); |
| 12 #import('../../frog/lang.dart'); | 12 #import('../../frog/lang.dart'); |
| 13 #import('../../frog/file_system_node.dart'); | 13 #import('../../frog/file_system_node.dart'); |
| 14 #import('../../frog/file_system.dart'); | 14 #import('../../frog/file_system.dart'); |
| 15 #import('../dartdoc/dartdoc.dart', prefix: 'doc'); | 15 #import('../dartdoc/dartdoc.dart', prefix: 'doc'); |
| 16 | 16 |
| 17 HtmlDiff _diff; | 17 HtmlDiff _diff; |
| 18 | 18 |
| 19 final GET_PREFIX = 'get:'; |
| 20 |
| 19 void main() { | 21 void main() { |
| 20 var files = new NodeFileSystem(); | 22 var files = new NodeFileSystem(); |
| 21 parseOptions('../../frog', [] /* args */, files); | 23 parseOptions('../../frog', [] /* args */, files); |
| 22 initializeWorld(files); | 24 initializeWorld(files); |
| 23 | 25 |
| 24 print('Parsing MDN data...'); | 26 print('Parsing MDN data...'); |
| 25 final mdn = JSON.parse(files.readAll('mdn/database.json')); | 27 final mdn = JSON.parse(files.readAll('mdn/database.json')); |
| 26 | 28 |
| 27 print('Cross-referencing dart:dom and dart:html...'); | 29 print('Cross-referencing dart:dom and dart:html...'); |
| 28 HtmlDiff.initialize(); | 30 HtmlDiff.initialize(); |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 } else if (member.library.name != 'dom') { | 273 } else if (member.library.name != 'dom') { |
| 272 // Not a DOM type. | 274 // Not a DOM type. |
| 273 return null; | 275 return null; |
| 274 } | 276 } |
| 275 | 277 |
| 276 // Ignore top-level functions. | 278 // Ignore top-level functions. |
| 277 if (member.declaringType.isTop) return null; | 279 if (member.declaringType.isTop) return null; |
| 278 | 280 |
| 279 final mdnType = mdn[member.declaringType.name]; | 281 final mdnType = mdn[member.declaringType.name]; |
| 280 if (mdnType == null) return null; | 282 if (mdnType == null) return null; |
| 281 | 283 var nameToFind = member.name; |
| 284 if (nameToFind.startsWith(GET_PREFIX)) { |
| 285 nameToFind = nameToFind.substring(GET_PREFIX.length); |
| 286 } |
| 282 var mdnMember = null; | 287 var mdnMember = null; |
| 283 for (final thisMember in mdnType['members']) { | 288 for (final candidateMember in mdnType['members']) { |
| 284 if (thisMember['name'] == member.name) { | 289 if (candidateMember['name'] == nameToFind) { |
| 285 mdnMember = thisMember; | 290 mdnMember = candidateMember; |
| 286 break; | 291 break; |
| 287 } | 292 } |
| 288 } | 293 } |
| 289 | 294 |
| 290 if (mdnMember == null) return null; | 295 if (mdnMember == null) return null; |
| 291 | 296 |
| 292 // Remember which MDN page we're using so we can attribute it. | 297 // Remember which MDN page we're using so we can attribute it. |
| 293 mdnUrl = mdnType['srcUrl']; | 298 mdnUrl = mdnType['srcUrl']; |
| 294 return mdnMember['help']; | 299 return mdnMember['help']; |
| 295 } | 300 } |
| 296 | 301 |
| 297 /** | 302 /** |
| 298 * Returns a link to [member], relative to a type page that may be in a | 303 * Returns a link to [member], relative to a type page that may be in a |
| 299 * different library than [member]. | 304 * different library than [member]. |
| 300 */ | 305 */ |
| 301 String _linkMember(Member member) { | 306 String _linkMember(Member member) { |
| 302 final GET_PREFIX = 'get:'; | |
| 303 | |
| 304 final typeName = member.declaringType.name; | 307 final typeName = member.declaringType.name; |
| 305 var memberName = '$typeName.${member.name}'; | 308 var memberName = '$typeName.${member.name}'; |
| 306 if (member.isConstructor || member.isFactory) { | 309 if (member.isConstructor || member.isFactory) { |
| 307 final separator = member.constructorName == '' ? '' : '.'; | 310 final separator = member.constructorName == '' ? '' : '.'; |
| 308 memberName = 'new $typeName$separator${member.constructorName}'; | 311 memberName = 'new $typeName$separator${member.constructorName}'; |
| 309 } else if (member.name.startsWith(GET_PREFIX)) { | 312 } else if (member.name.startsWith(GET_PREFIX)) { |
| 310 memberName = '$typeName.${member.name.substring(GET_PREFIX.length)}'; | 313 memberName = '$typeName.${member.name.substring(GET_PREFIX.length)}'; |
| 311 } | 314 } |
| 312 | 315 |
| 313 return a(memberUrl(member), memberName); | 316 return a(memberUrl(member), memberName); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 return | 383 return |
| 381 ''' | 384 ''' |
| 382 <p class="correspond">This corresponds to $domTypesText in the | 385 <p class="correspond">This corresponds to $domTypesText in the |
| 383 ${a("dom.html", "dart:dom")} library.</p> | 386 ${a("dom.html", "dart:dom")} library.</p> |
| 384 '''; | 387 '''; |
| 385 } | 388 } |
| 386 | 389 |
| 387 return ''; | 390 return ''; |
| 388 } | 391 } |
| 389 } | 392 } |
| OLD | NEW |