diff --git a/.gitignore b/.gitignore index 2ceb8eed93..5a741cd012 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ # Don’t commit the following directories created by pub. build/ packages/ +bin/packages .buildlog +.project # Or the files created by dart2js. *.dart.js diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..5c60afea39 --- /dev/null +++ b/LICENSE @@ -0,0 +1,26 @@ +Copyright 2014, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000000..31576e9724 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +#dartdoc + +A documentation generator for Dart. + +Note: This tool is currently in pre-alpha stage. + +Issues and bugs + +Please file reports on the [GitHub Issue Tracker](https://github.com/dart-lang/dartdoc/issues). + +License + +See the LICENSE file for information. diff --git a/bin/dartdoc.dart b/bin/dartdoc.dart new file mode 100644 index 0000000000..8e74a024cc --- /dev/null +++ b/bin/dartdoc.dart @@ -0,0 +1,45 @@ +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'package:args/args.dart'; + +import 'package:dartdoc/dartdoc.dart'; + +/// Analyzes Dart files and generates a representation of included libraries, +/// classes, and members. Uses the current directory to look for libraries. +void main(List arguments) { + var parser = _createArgsParser(); + var results = parser.parse(arguments); + + if (results['help']) { + _printUsageAndExit(parser); + } + List excludeLibraries = results['exclude'] == null ? + [] : results['exclude'].split(','); + + var currentDir = Directory.current; + new DartDoc(currentDir, excludeLibraries).generate(); +} + +/// Print help if we are passed the help option or invalid arguments. +void _printUsageAndExit(ArgParser parser) { + print(parser.usage); + print('Usage: dartdoc [OPTIONS]'); + exit(0); +} + + ArgParser _createArgsParser() { + // TODO: more options to be added + var parser = new ArgParser(); + parser.addOption( + 'exclude', + help: 'a comma-separated list of library names to ignore'); + parser.addFlag('help', + abbr: 'h', + negatable: false, + help: 'show command help'); + return parser; +} diff --git a/lib/dartdoc.dart b/lib/dartdoc.dart new file mode 100644 index 0000000000..45efa06de2 --- /dev/null +++ b/lib/dartdoc.dart @@ -0,0 +1,23 @@ +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +library dartdoc; + +import 'dart:io'; + +/// Generates Dart documentation for all public Dart libraries in the given +/// directory. +class DartDoc { + + List _excludes; + Directory _rootDir; + + DartDoc(this._rootDir,this._excludes); + + /// Generate the documentation + void generate() { + print("TODO: impelement doc generation"); + } +} + diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000000..5603af9652 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,10 @@ +name: dartdoc +version: 0.0.1 +author: Dart Team +description: A documentation generator for Dart. +homepage: https://github.com/dart-lang/dartdoc +dependencies: + analyzer: any + args: any +executables: + dartdoc: