UNPKG

doctin

Version:

Tool that reduces generated ActionScript documentation (ASDOC) to a shallow abstract syntax tree (AST), in JSON format.

103 lines (86 loc) 2.55 kB
# doctin ### (ActionScript) Documentation Thinner **doctin** is a lightweight CLI tool that extracts a JSON-formatted abstract syntax tree (AST) from static HTML documentation generated by the ActionScript `asdoc` tool. It helps developers parse, audit, or auto-document large ActionScript codebases by reducing noisy HTML into structured, actionable data. --- ## What It Does - Parses `asdoc`-generated documentation. - Extracts class metadata, properties, and methods. - Includes visibility, type, modifiers, and documentation text. - Generates: - One JSON file per class. - One `contentTree.json` for navigation/indexing. --- ## Installation To install globally: ```bash npm install -g doctin ``` ## Usage ```bash node index.js <asdoc-folder> <astjson-folder> [--clean] ``` ### Arguments: | Argument | Description | | ------------------ | ---------------------------------------- | | `<asdoc-folder>` | Path to the folder generated by `asdoc` | | `<astjson-folder>` | Path to output folder for JSON AST | | `--clean` | Optional. Clears the output folder first | ## Output Structure The tool generates: 1. One JSON file per class, e.g.: ```bash ~/my_ast_folder/org/bytearray/display/ScaleBitmap.json ``` 2. `contentTree.json` a lookup tree of all packages and classes: ```json { "org.bytearray.display": { "ScaleBitmap": "org/bytearray/display/ScaleBitmap.json" } } ``` ## JSON Schema Overview Each class JSON includes: ```json { "name": "ScaleBitmap", "package": "org.bytearray.display", "inheritance": [], "properties": [ { "name": "bitmapData", "type": "BitmapData", "visibility": "public", "modifiers": ["override", "write-only"], "hasAsdoc": true, "asdoc": "setter bitmapData" } ], "methods": [ { "name": "setSize", "returnType": "void", "params": [{ "name": "w", "type": "Number" }], "visibility": "public", "hasAsdoc": true, "asdoc": "setSize" } ] } ``` This makes it ideal for: - Re-generating docs in your own format. - Writing linters or documentation audits. - Feeding a local LLM for doc autocompletion. ## Development The codebase uses ES modules. Requires **Node.js 18+**. Main files: - `index.js` CLI entry point. - `parser.js` HTML parser logic. Dependencies: - `cheerio` for HTML parsing. - `fs-extra` for robust file I/O. ## 📄 License **MIT** ## Feedback Issues and PRs welcome on [GitHub](https://github.com/ciacob/doctin).