OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 * This generates the reference documentation for the core libraries that come | 6 * This generates the reference documentation for the core libraries that come |
7 * with dart. It is built on top of dartdoc, which is a general-purpose library | 7 * with dart. It is built on top of dartdoc, which is a general-purpose library |
8 * for generating docs from any Dart code. This library extends that to include | 8 * for generating docs from any Dart code. This library extends that to include |
9 * additional information and styling specific to our standard library. | 9 * additional information and styling specific to our standard library. |
10 * | 10 * |
11 * Usage: | 11 * Usage: |
12 * | 12 * |
13 * $ dart apidoc.dart [--out=<output directory>] | 13 * $ dart apidoc.dart [--out=<output directory>] |
14 */ | 14 */ |
| 15 library apidoc; |
15 | 16 |
16 #library('apidoc'); | 17 import 'dart:io'; |
17 | 18 import 'dart:json'; |
18 #import('dart:io'); | 19 import 'html_diff.dart'; |
19 #import('dart:json'); | |
20 #import('html_diff.dart'); | |
21 // TODO(rnystrom): Use "package:" URL (#4968). | 20 // TODO(rnystrom): Use "package:" URL (#4968). |
22 #import('../../pkg/dartdoc/lib/mirrors.dart'); | 21 import '../../sdk/lib/_internal/dartdoc/lib/mirrors.dart'; |
23 #import('../../pkg/dartdoc/lib/mirrors_util.dart'); | 22 import '../../sdk/lib/_internal/dartdoc/lib/mirrors_util.dart'; |
24 #import('../../pkg/dartdoc/lib/dartdoc.dart', prefix: 'doc'); | 23 import '../../sdk/lib/_internal/dartdoc/lib/dartdoc.dart' as doc; |
25 #import('../../lib/_internal/libraries.dart'); | 24 import '../../sdk/lib/_internal/libraries.dart'; |
26 | 25 |
27 HtmlDiff _diff; | 26 HtmlDiff _diff; |
28 | 27 |
29 void main() { | 28 void main() { |
30 final args = new Options().arguments; | 29 final args = new Options().arguments; |
31 | 30 |
32 int mode = doc.MODE_STATIC; | 31 int mode = doc.MODE_STATIC; |
33 Path outputDir = new Path('docs'); | 32 Path outputDir = new Path('docs'); |
34 bool generateAppCache = false; | 33 bool generateAppCache = false; |
35 | 34 |
(...skipping 22 matching lines...) Expand all Loading... |
58 } else if (arg.startsWith('--out=')) { | 57 } else if (arg.startsWith('--out=')) { |
59 outputDir = new Path.fromNative(arg.substring('--out='.length)); | 58 outputDir = new Path.fromNative(arg.substring('--out='.length)); |
60 } else { | 59 } else { |
61 print('Unknown option: $arg'); | 60 print('Unknown option: $arg'); |
62 return; | 61 return; |
63 } | 62 } |
64 break; | 63 break; |
65 } | 64 } |
66 } | 65 } |
67 | 66 |
68 final libPath = doc.scriptDir.append('../../'); | 67 final libPath = doc.scriptDir.append('../../sdk/lib'); |
69 final pkgPath = doc.scriptDir.append('../../pkg/'); | 68 final pkgPath = doc.scriptDir.append('../../pkg/'); |
70 | 69 |
71 doc.cleanOutputDirectory(outputDir); | 70 doc.cleanOutputDirectory(outputDir); |
72 | 71 |
73 // The basic dartdoc-provided static content. | 72 // The basic dartdoc-provided static content. |
74 final copiedStatic = doc.copyDirectory( | 73 final copiedStatic = doc.copyDirectory( |
75 doc.scriptDir.append('../../pkg/dartdoc/static'), | 74 doc.scriptDir.append('../../sdk/lib/_internal/dartdoc/static'), |
76 outputDir); | 75 outputDir); |
77 | 76 |
78 // The apidoc-specific static content. | 77 // The apidoc-specific static content. |
79 final copiedApiDocStatic = doc.copyDirectory( | 78 final copiedApiDocStatic = doc.copyDirectory( |
80 doc.scriptDir.append('static'), | 79 doc.scriptDir.append('static'), |
81 outputDir); | 80 outputDir); |
82 | 81 |
83 print('Parsing MDN data...'); | 82 print('Parsing MDN data...'); |
84 final mdnFile = new File.fromPath(doc.scriptDir.append('mdn/database.json')); | 83 final mdnFile = new File.fromPath(doc.scriptDir.append('mdn/database.json')); |
85 final mdn = JSON.parse(mdnFile.readAsTextSync()); | 84 final mdn = JSON.parse(mdnFile.readAsTextSync()); |
86 | 85 |
87 print('Cross-referencing dart:html...'); | 86 print('Cross-referencing dart:html...'); |
88 HtmlDiff.initialize(libPath); | 87 HtmlDiff.initialize(libPath); |
89 _diff = new HtmlDiff(printWarnings:false); | 88 _diff = new HtmlDiff(printWarnings:false); |
90 _diff.run(); | 89 _diff.run(); |
91 | 90 |
92 // Process handwritten HTML documentation. | 91 // Process handwritten HTML documentation. |
93 print('Processing handwritten HTML documentation...'); | 92 print('Processing handwritten HTML documentation...'); |
94 final htmldoc = new Htmldoc(); | 93 final htmldoc = new Htmldoc(); |
95 htmldoc.includeApi = true; | 94 htmldoc.includeApi = true; |
96 htmldoc.documentLibraries( | 95 htmldoc.documentLibraries( |
97 <Path>[doc.scriptDir.append('../../lib/html/doc/html.dartdoc')], | 96 <Path>[doc.scriptDir.append('../../sdk/lib/html/doc/html.dartdoc')], |
98 libPath, pkgPath); | 97 libPath, pkgPath); |
99 | 98 |
100 // Process libraries. | 99 // Process libraries. |
101 | 100 |
102 // TODO(johnniwinther): Libraries for the compilation seem to be more like | 101 // TODO(johnniwinther): Libraries for the compilation seem to be more like |
103 // URIs. Perhaps Path should have a toURI() method. | 102 // URIs. Perhaps Path should have a toURI() method. |
104 // Add all of the core libraries. | 103 // Add all of the core libraries. |
105 final apidocLibraries = <Path>[]; | 104 final apidocLibraries = <Path>[]; |
106 LIBRARIES.forEach((String name, LibraryInfo info) { | 105 LIBRARIES.forEach((String name, LibraryInfo info) { |
107 if (info.documented) { | 106 if (info.documented) { |
(...skipping 21 matching lines...) Expand all Loading... |
129 includedLibraries.add(libName); | 128 includedLibraries.add(libName); |
130 } else { | 129 } else { |
131 print('Warning: could not find package at $path'); | 130 print('Warning: could not find package at $path'); |
132 } | 131 } |
133 }; | 132 }; |
134 | 133 |
135 lister.onDone = (success) { | 134 lister.onDone = (success) { |
136 print('Generating docs...'); | 135 print('Generating docs...'); |
137 final apidoc = new Apidoc(mdn, htmldoc, outputDir, mode, generateAppCache, | 136 final apidoc = new Apidoc(mdn, htmldoc, outputDir, mode, generateAppCache, |
138 excludedLibraries); | 137 excludedLibraries); |
139 apidoc.dartdocPath = doc.scriptDir.append('../../pkg/dartdoc/'); | 138 apidoc.dartdocPath = |
| 139 doc.scriptDir.append('../../sdk/lib/_internal/dartdoc/'); |
140 // Select the libraries to include in the produced documentation: | 140 // Select the libraries to include in the produced documentation: |
141 apidoc.includeApi = true; | 141 apidoc.includeApi = true; |
142 apidoc.includedLibraries = includedLibraries; | 142 apidoc.includedLibraries = includedLibraries; |
143 | 143 |
144 Futures.wait([copiedStatic, copiedApiDocStatic]).then((_) { | 144 Futures.wait([copiedStatic, copiedApiDocStatic]).then((_) { |
145 apidoc.documentLibraries(apidocLibraries, libPath, pkgPath); | 145 apidoc.documentLibraries(apidocLibraries, libPath, pkgPath); |
146 | 146 |
147 final compiled = doc.compileScript(mode, outputDir, libPath); | 147 final compiled = doc.compileScript(mode, outputDir, libPath); |
148 | 148 |
149 Futures.wait([compiled, copiedStatic, copiedApiDocStatic]).then((_) { | 149 Futures.wait([compiled, copiedStatic, copiedApiDocStatic]).then((_) { |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 return ''' | 578 return ''' |
579 <div class="mdn"> | 579 <div class="mdn"> |
580 $mdnComment | 580 $mdnComment |
581 <div class="mdn-note"><a href="$mdnUrl">from MDN</a></div> | 581 <div class="mdn-note"><a href="$mdnUrl">from MDN</a></div> |
582 </div> | 582 </div> |
583 '''; | 583 '''; |
584 } | 584 } |
585 | 585 |
586 String toString() => mdnComment; | 586 String toString() => mdnComment; |
587 } | 587 } |
OLD | NEW |