OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 * |
11 * This will create a "docs" directory with the docs for your libraries. To | 11 * This will create a "docs" directory with the docs for your libraries. To |
12 * create these beautiful docs, dartdoc parses your library and every library | 12 * create these beautiful docs, dartdoc parses your library and every library |
13 * it imports (recursively). From each library, it parses all classes and | 13 * it imports (recursively). From each library, it parses all classes and |
14 * members, finds the associated doc comments and builds crosslinked docs from | 14 * members, finds the associated doc comments and builds crosslinked docs from |
15 * them. | 15 * them. |
16 */ | 16 */ |
17 library dartdoc; | 17 library dartdoc; |
18 | 18 |
19 import 'dart:async'; | 19 import 'dart:async'; |
| 20 import 'dart:convert'; |
20 import 'dart:io'; | 21 import 'dart:io'; |
21 import 'dart:isolate'; | 22 import 'dart:isolate'; |
22 import 'dart:json' as json; | |
23 import 'dart:math'; | 23 import 'dart:math'; |
24 | 24 |
25 import 'package:path/path.dart' as path; | 25 import 'package:path/path.dart' as path; |
26 | 26 |
27 import 'classify.dart'; | 27 import 'classify.dart'; |
28 import 'markdown.dart' as md; | 28 import 'markdown.dart' as md; |
29 import 'universe_serializer.dart'; | 29 import 'universe_serializer.dart'; |
30 | 30 |
31 import 'src/dartdoc/nav.dart'; | 31 import 'src/dartdoc/nav.dart'; |
32 import 'src/dartdoc/utils.dart'; | 32 import 'src/dartdoc/utils.dart'; |
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
771 void docIndexLibrary(LibraryMirror library) { | 771 void docIndexLibrary(LibraryMirror library) { |
772 writeln('<h4>${a(libraryUrl(library), displayName(library))}</h4>'); | 772 writeln('<h4>${a(libraryUrl(library), displayName(library))}</h4>'); |
773 } | 773 } |
774 | 774 |
775 /** | 775 /** |
776 * Walks the libraries and creates a JSON object containing the data needed | 776 * Walks the libraries and creates a JSON object containing the data needed |
777 * to generate navigation for them. | 777 * to generate navigation for them. |
778 */ | 778 */ |
779 void docNavigationJson() { | 779 void docNavigationJson() { |
780 startFile('nav.json'); | 780 startFile('nav.json'); |
781 writeln(json.stringify(createNavigationInfo())); | 781 writeln(JSON.encode(createNavigationInfo())); |
782 endFile(); | 782 endFile(); |
783 } | 783 } |
784 /// Whether dartdoc is running from within the Dart SDK or the | 784 /// Whether dartdoc is running from within the Dart SDK or the |
785 /// Dart source repository. | 785 /// Dart source repository. |
786 bool get runningFromSdk => | 786 bool get runningFromSdk => |
787 path.extension(Platform.script) == '.snapshot'; | 787 path.extension(Platform.script) == '.snapshot'; |
788 | 788 |
789 /// Gets the path to the root directory of the SDK. | 789 /// Gets the path to the root directory of the SDK. |
790 String get sdkDir => | 790 String get sdkDir => |
791 path.dirname(path.dirname(Platform.executable)); | 791 path.dirname(path.dirname(Platform.executable)); |
792 | 792 |
793 /// Gets the path to the dartdoc directory normalized for running in different | 793 /// Gets the path to the dartdoc directory normalized for running in different |
794 /// places. | 794 /// places. |
795 String get normalizedDartdocPath => path.normalize( | 795 String get normalizedDartdocPath => path.normalize( |
796 path.absolute(runningFromSdk ? | 796 path.absolute(runningFromSdk ? |
797 path.join(sdkDir, 'lib', '_internal', 'dartdoc') : | 797 path.join(sdkDir, 'lib', '_internal', 'dartdoc') : |
798 dartdocPath.toString())); | 798 dartdocPath.toString())); |
799 | 799 |
800 void docNavigationDart() { | 800 void docNavigationDart() { |
801 var tmpDir = new Directory(tmpPath); | 801 var tmpDir = new Directory(tmpPath); |
802 if (!tmpDir.existsSync()) { | 802 if (!tmpDir.existsSync()) { |
803 tmpDir.createSync(); | 803 tmpDir.createSync(); |
804 } | 804 } |
805 String jsonString = json.stringify(createNavigationInfo()); | 805 String jsonString = JSON.encode(createNavigationInfo()); |
806 String dartString = jsonString.replaceAll(r"$", r"\$"); | 806 String dartString = jsonString.replaceAll(r"$", r"\$"); |
807 var filePath = path.join(tmpPath, 'client.dart'); | 807 var filePath = path.join(tmpPath, 'client.dart'); |
808 | 808 |
809 var clientDir = path.join(normalizedDartdocPath,'lib', 'src', 'client'); | 809 var clientDir = path.join(normalizedDartdocPath,'lib', 'src', 'client'); |
810 | 810 |
811 writeString(new File(filePath), | 811 writeString(new File(filePath), |
812 '''library client; | 812 '''library client; |
813 import 'dart:html'; | 813 import 'dart:html'; |
814 import 'dart:json'; | 814 import 'dart:json'; |
815 import r'${path.toUri(path.join(clientDir, 'client-shared.dart'))}'; | 815 import r'${path.toUri(path.join(clientDir, 'client-shared.dart'))}'; |
(...skipping 1504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2320 return ''' | 2320 return ''' |
2321 <div class="mdn"> | 2321 <div class="mdn"> |
2322 $mdnComment | 2322 $mdnComment |
2323 <div class="mdn-note"><a href="$mdnUrl">from MDN</a></div> | 2323 <div class="mdn-note"><a href="$mdnUrl">from MDN</a></div> |
2324 </div> | 2324 </div> |
2325 '''; | 2325 '''; |
2326 } | 2326 } |
2327 | 2327 |
2328 String toString() => mdnComment; | 2328 String toString() => mdnComment; |
2329 } | 2329 } |
OLD | NEW |