# Dart documentation generator

This directory includes static sources used by the Dart documentation generator
through the `dart doc` command.

To learn more about generating and viewing the generated documentation,
check out the [`dart doc` documentation][].

[`dart doc` documentation]: https://dart.dev/tools/dart-doc

## Third-party resources

## highlight.js

Generated from https://highlightjs.org/download/ on 2021-07-13.

**License:** https://github.com/highlightjs/highlight.js/blob/main/LICENSE

**Included languages:**

* bash
* c  
* css
* dart
* diff
* html, xml
* java
* javascript
* json
* kotlin
* markdown
* objective-c
* plaintext  
* shell
* swift
* yaml
