Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(535)

Side by Side Diff: utils/dartdoc/files.dart

Issue 9318013: Fix build break in dartdoc. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Review. Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « utils/dartdoc/dartdoc.dart ('k') | utils/tests/dartdoc/src/dartdoc_tests.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 // Functions for working with files and paths.
6
7 /** The path to the file currently being written to, relative to [outdir]. */
8 String _filePath;
9
10 /** The file currently being written to. */
11 StringBuffer _file;
12
13 /** Path to generate HTML files into. */
14 final _outdir = 'docs';
15
16 startFile(String path) {
17 _filePath = path;
18 _file = new StringBuffer();
19 }
20
21 write(String s) {
22 _file.add(s);
23 }
24
25 writeln(String s) {
26 write(s);
27 write('\n');
28 }
29
30 endFile() {
31 String outPath = '$_outdir/$_filePath';
32 world.files.createDirectory(dirname(outPath), recursive: true);
33
34 world.files.writeString(outPath, _file.toString());
35 _filePath = null;
36 _file = null;
37 }
38
39 /**
40 * Converts [fullPath] which is understood to be a full path from the root of
41 * the generated docs to one relative to the current file.
42 */
43 String relativePath(String fullPath) {
44 // Don't make it relative if it's an absolute path.
45 if (isAbsolute(fullPath)) return fullPath;
46
47 // TODO(rnystrom): Walks all the way up to root each time. Shouldn't do this
48 // if the paths overlap.
49 return repeat('../', countOccurrences(_filePath, '/')) + fullPath;
50 }
51
52 /** Gets whether or not the given URL is absolute or relative. */
53 bool isAbsolute(String url) {
54 // TODO(rnystrom): This is a bit hackish. We consider any URL that lacks
55 // a scheme to be relative.
56 return const RegExp(@'^\w+:').hasMatch(url);
57 }
58
59 /** Gets the URL to the documentation for [library]. */
60 libraryUrl(Library library) => '${sanitize(library.name)}.html';
61
62 /** Gets the URL for the documentation for [type]. */
63 typeUrl(Type type) {
64 if (type.isTop) return '${sanitize(type.library.name)}.html';
65 // Always get the generic type to strip off any type parameters or arguments.
66 // If the type isn't generic, genericType returns `this`, so it works for
67 // non-generic types too.
68 return '${sanitize(type.library.name)}/${type.genericType.name}.html';
69 }
70
71 /** Gets the URL for the documentation for [member]. */
72 memberUrl(Member member) {
73 final typeUrl = typeUrl(member.declaringType);
74 if (!member.isConstructor) return '$typeUrl#${member.name}';
75 if (member.constructorName == '') return '$typeUrl#new:${member.name}';
76 return '$typeUrl#new:${member.name}.${member.constructorName}';
77 }
78
79 /** Gets the anchor id for the document for [member]. */
80 memberAnchor(Member member) => '${member.name}';
OLDNEW
« no previous file with comments | « utils/dartdoc/dartdoc.dart ('k') | utils/tests/dartdoc/src/dartdoc_tests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698