blob: 66d0a4639d7a681d20f63c87758265e2c5fb4c67 [file] [log] [blame] [view]
docgen
======
A documentation generator for Dart.
- - -
The docgen tool takes in a file or directory as input and produces documentation
for all `.dart` file it finds as YAML or JSON files. This outputs information
about all classes, variables, functions, and methods defined in the library and
its imported libraries.
### Generating Files & Uploading to Cloud Storage
The viewer uses YAML files generated by the docgen package as the data
being displayed. These files are stored in Google Cloud Storage.
- Run `python upload_docgen.py` to generate these files and upload them to
Cloud Storage as a new version.
- - -
These tasks can be done separately if necessary:
#####
#### Generating YAML Files
YAML files can be generated using the docgen package in the dart repository.
###### Usage
Run `dart docgen.dart [OPTIONS] <path to directory or file>`
###### Options available
- `-h`, `--help` Prints help and usage information.
- `-v`, `--verbose` Output more logging information.
- `-j`, `--[no-]json` Outputs to JSON. Files are outputted to YAML by default.
If `--append` is used, it takes the file-format of the previous run stated in
library_list.json ignoring the flag.
- `--include-private` Flag to include private declarations.
- `--include-sdk` Flag to parse SDK Library files imported.
- `--parse-sdk` Parses the SDK libraries only. (Ignores the path passed in.)
- `--package-root` Sets the package root of the library being analyzed.
- `--append` Appends to the docs folder, library_list.json, and index.txt.
- `--introduction` Adds the provided markdown text file as the introduction
for the outputted documentation.
###### Output Directory
Documented libraries will be located at bin/docs in either YAML or JSON format
depending on options specified. There will also be a library_list.json,
containing a list of all the libraries inside the docs folder.
To get more information on how to use the outputted documentation with
dartdoc-viewer, please take a look at the
[dartdoc-viewer documentation][dartdoc-viewer].
#### Uploading to Cloud Storage
To push new files to Google Cloud Storage for use by the viewer, use the
`gsutil` tool located at third_party/gsutil/gsutil in the Dart repository.
- Run `python gsutil -m cp -q -a public-read -r <folder> gs://dartlang-docgen`
to upload the specified folder to the viewer's bucket. Be sure to also upload
a new VERSION file if the uploaded folder is to be used.**
**Note that the bucket contains several numbered folders for each version of
the documentation. Run `python gsutil ls gs://dartlang-docgen` to see the file
layout. Follow this convention and update a new VERSION file when uploading
a new version of documentation. You can see the format of the VERSION file
by running `python gsutil cat gs://dartlang-docgen/VERSION`.
### Viewing Generated Documentation
Docgen's generated YAML files can be used by the
[Dart Documentation Viewer][dartdoc-viewer] for easy viewing and navigation
through a project.
---
#### Using dartdoc.py
The `dartdoc.py` script located in the `bin` directory is a useful tool for
creating documentation for a Dart project and running it locally.
##### Setup
The `dartdoc.py` script makes use of the
[Google App Engine SDK for Python][GAE]'s development server to serve the
documentation viewer. Install a recent version of the SDK before running
`dartdoc.py`.
##### Running dartdoc.py
######Common Options
The following options are the most used:
python dartdoc.py --gae-sdk=<path to SDK>
--options=<path to files>
--options=--parse-sdk
--options='--include-sdk <path to files>'
--options='--append <path to files>'
######All Options
Run `python dartdoc.py -h` from the `bin` directory for all available options.
The two required options are as follows:
1. The `--options` option describes any options being passed into `docgen.dart`.
If more then one option is desired, separate the options with a space
(ex. `--options='--include-sdk files'`).
2. The `--gae-sdk` option gives the absolute path to the
[Google App Engine SDK][GAE].
Running `python dartdoc.py --options=<docgen options> --gae-sdk=<path to SDK>`
will serve files generated by `docgen.dart` in your browser.
[dartdoc-viewer]: https://github.com/dart-lang/dartdoc-viewer "Dartdoc-Viewer"
[GAE]: https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python "Google App Engine SDK for Python"