| 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 * To generate docs for a library, run this script with the path to an | 6 * To generate docs for a library, run this script with the path to an |
| 7 * entrypoint .dart file, like: | 7 * entrypoint .dart file, like: |
| 8 * | 8 * |
| 9 * $ dart dartdoc.dart foo.dart | 9 * $ dart dartdoc.dart foo.dart |
| 10 * | 10 * |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 final MODE_LIVE_NAV = 1; | 49 final MODE_LIVE_NAV = 1; |
| 50 | 50 |
| 51 /** | 51 /** |
| 52 * Run this from the `lib/dartdoc` directory. | 52 * Run this from the `lib/dartdoc` directory. |
| 53 */ | 53 */ |
| 54 void main() { | 54 void main() { |
| 55 final args = new Options().arguments; | 55 final args = new Options().arguments; |
| 56 | 56 |
| 57 // Parse the dartdoc options. | 57 // Parse the dartdoc options. |
| 58 bool includeSource; | 58 bool includeSource; |
| 59 String mode; | 59 int mode; |
| 60 String outputDir; | 60 String outputDir; |
| 61 | 61 |
| 62 for (int i = 0; i < args.length - 1; i++) { | 62 for (int i = 0; i < args.length - 1; i++) { |
| 63 final arg = args[i]; | 63 final arg = args[i]; |
| 64 | 64 |
| 65 switch (arg) { | 65 switch (arg) { |
| 66 case '--no-code': | 66 case '--no-code': |
| 67 includeSource = false; | 67 includeSource = false; |
| 68 break; | 68 break; |
| 69 | 69 |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 void compileScript(String compilerPath, String libDir, | 175 void compileScript(String compilerPath, String libDir, |
| 176 String dartPath, String jsPath) { | 176 String dartPath, String jsPath) { |
| 177 final process = new Process.start(compilerPath, [ | 177 final process = new Process.start(compilerPath, [ |
| 178 '--libdir=$libDir', '--out=$jsPath', | 178 '--libdir=$libDir', '--out=$jsPath', |
| 179 '--compile-only', '--enable-type-checks', '--warnings-as-errors', | 179 '--compile-only', '--enable-type-checks', '--warnings-as-errors', |
| 180 dartPath]); | 180 dartPath]); |
| 181 | 181 |
| 182 process.stdout.pipe(stdout, close: false); | 182 process.stdout.pipe(stdout, close: false); |
| 183 | 183 |
| 184 process.onError = (error) { | 184 process.onError = (error) { |
| 185 print('Failed to compile $dartPath. Error:'); | 185 print('Failed to compile $dartPath with $compilerPath. Error:'); |
| 186 print(error); | 186 print(error); |
| 187 }; | 187 }; |
| 188 } | 188 } |
| 189 | 189 |
| 190 class Dartdoc { | 190 class Dartdoc { |
| 191 |
| 191 /** Set to `false` to not include the source code in the generated docs. */ | 192 /** Set to `false` to not include the source code in the generated docs. */ |
| 192 bool includeSource = true; | 193 bool includeSource = true; |
| 193 | 194 |
| 194 /** | 195 /** |
| 195 * Dartdoc can generate docs in a few different ways based on how dynamic you | 196 * Dartdoc can generate docs in a few different ways based on how dynamic you |
| 196 * want the client-side behavior to be. The value for this should be one of | 197 * want the client-side behavior to be. The value for this should be one of |
| 197 * the `MODE_` constants. | 198 * the `MODE_` constants. |
| 198 */ | 199 */ |
| 199 int mode = MODE_LIVE_NAV; | 200 int mode = MODE_LIVE_NAV; |
| 200 | 201 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 217 * this is `null` then no search box will be shown. | 218 * this is `null` then no search box will be shown. |
| 218 */ | 219 */ |
| 219 String searchEngineId = null; | 220 String searchEngineId = null; |
| 220 | 221 |
| 221 /* The URL that the embedded search results should be displayed on. */ | 222 /* The URL that the embedded search results should be displayed on. */ |
| 222 String searchResultsUrl = 'results.html'; | 223 String searchResultsUrl = 'results.html'; |
| 223 | 224 |
| 224 /** Set this to add footer text to each generated page. */ | 225 /** Set this to add footer text to each generated page. */ |
| 225 String footerText = ''; | 226 String footerText = ''; |
| 226 | 227 |
| 228 /** Set this to add content before the footer */ |
| 229 String preFooterText = ''; |
| 230 |
| 227 /** | 231 /** |
| 228 * From exposes the set of libraries in `world.libraries`. That maps library | 232 * From exposes the set of libraries in `world.libraries`. That maps library |
| 229 * *keys* to [Library] objects. The keys are *not* exactly the same as their | 233 * *keys* to [Library] objects. The keys are *not* exactly the same as their |
| 230 * names. This means if we order by key, we won't actually have them sorted | 234 * names. This means if we order by key, we won't actually have them sorted |
| 231 * correctly. This list contains the libraries in correct order by their | 235 * correctly. This list contains the libraries in correct order by their |
| 232 * *name*. | 236 * *name*. |
| 233 */ | 237 */ |
| 234 List<Library> _sortedLibraries; | 238 List<Library> _sortedLibraries; |
| 235 | 239 |
| 236 CommentMap _comments; | 240 CommentMap _comments; |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 default: throw 'Unknown mode $mode.'; | 402 default: throw 'Unknown mode $mode.'; |
| 399 } | 403 } |
| 400 } | 404 } |
| 401 | 405 |
| 402 void writeHeadContents(String title) { | 406 void writeHeadContents(String title) { |
| 403 writeln( | 407 writeln( |
| 404 ''' | 408 ''' |
| 405 <meta charset="utf-8"> | 409 <meta charset="utf-8"> |
| 406 <title>$title</title> | 410 <title>$title</title> |
| 407 <link rel="stylesheet" type="text/css" | 411 <link rel="stylesheet" type="text/css" |
| 408 href="${relativePath('styles.css')}" /> | 412 href="${relativePath('styles.css')}"> |
| 409 <link href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,700
,800" rel="stylesheet" type="text/css"> | 413 <link href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,700
,800" rel="stylesheet" type="text/css"> |
| 410 <link rel="shortcut icon" href="${relativePath('favicon.ico')}" /> | 414 <link rel="shortcut icon" href="${relativePath('favicon.ico')}"> |
| 411 <script src="${relativePath('$clientScript.js')}"></script> | |
| 412 '''); | 415 '''); |
| 413 } | 416 } |
| 414 | 417 |
| 415 void writeFooter() { | 418 void writeFooter() { |
| 416 writeln( | 419 writeln( |
| 417 ''' | 420 ''' |
| 418 </div> | 421 </div> |
| 419 <div class="clear"></div> | 422 <div class="clear"></div> |
| 420 </div> | 423 </div> |
| 424 ${preFooterText} |
| 421 <div class="footer">$footerText</div> | 425 <div class="footer">$footerText</div> |
| 426 <script async src="${relativePath('$clientScript.js')}"></script> |
| 422 </body></html> | 427 </body></html> |
| 423 '''); | 428 '''); |
| 424 } | 429 } |
| 425 | 430 |
| 426 void docIndex() { | 431 void docIndex() { |
| 427 startFile('index.html'); | 432 startFile('index.html'); |
| 428 | 433 |
| 429 writeHeader(mainTitle, []); | 434 writeHeader(mainTitle, []); |
| 430 | 435 |
| 431 writeln('<h2>$mainTitle</h2>'); | 436 writeln('<h2>$mainTitle</h2>'); |
| (...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1272 | 1277 |
| 1273 return new md.Element.text('code', name); | 1278 return new md.Element.text('code', name); |
| 1274 } | 1279 } |
| 1275 | 1280 |
| 1276 // TODO(rnystrom): Move into SourceSpan? | 1281 // TODO(rnystrom): Move into SourceSpan? |
| 1277 int getSpanColumn(SourceSpan span) { | 1282 int getSpanColumn(SourceSpan span) { |
| 1278 final line = span.file.getLine(span.start); | 1283 final line = span.file.getLine(span.start); |
| 1279 return span.file.getColumn(line, span.start); | 1284 return span.file.getColumn(line, span.start); |
| 1280 } | 1285 } |
| 1281 } | 1286 } |
| OLD | NEW |