A typedoc theme that generates files links in a structure that is friendly for deployment to DAC
A typedoc plugin that generates files links in a structure that is friendly for deployment to DAC. Based on the typedoc-plugin-markdown.
yarn add typedoc @atlassian/typedoc-dac-plugin
`If you're in atlassian frontend you can run this command from your package:
`
bolt add typedoc @atlassian/typedoc-dac-plugin
`###Configure Typedoc
To configure typedoc it's recommended you use a
typedoc.json in the root of our package like this:`
{
"entryPoints": ["./test/test-module-one/index.ts", "./test/test-module-two/index.ts"],
"out": "test/docs",
"plugin": ["@atlassian/typedoc-dac-plugin"],
"baseUrl": "cloud/tool/my-docs",
"dacJsonFileOutput": "test/docs/data/typedoc-dac-plugin-dac.json",
"baseJsonFile": "test/base-docs-data.json",
"dacSubcategory": "Client API"
"projectName": "My Library",
"generateSeperateKindFilesFor": ["Class"],
"exampleData": {
"componentId": "stub-component-id"
}
}`- entryPoints: Typedoc supports scanning an entire directory for entry points, however for best results with DAC it's best to seperate your modules and declare your submodule entry points (see the
test/ directory combined with the typedoc.json in this repo for a good example of how this would work.)
- out: where your docs will be generated
- plugin: you only need to specify this plugin for it to work, you can see the typedoc website for more plugins if you want.
- baseUrl: set this to the base URL for your DAC docs, you would have generated this when you created your DAC docset. Since DAC url routes and directory structure are tightly coupled, this plugin generates files in a directory structure that reflects the base URL
- dacJsonFileOutput: set this to where you'd like your DAC navigation file to be output. If this is not set the plugin will not generate a JSON file for the case where you don't want it to.
- baseJsonFile: The plugin accepts a base file as input to generating the DAC Navigation json file, this is for the case where you need to modify any of the top level items or if you have items in addition to the generated ones.
- dacSubcategory: The title of the subcategory to put all the API docs under
- projectName: The name of the project, appears in the index file of the documentation
Note: you can also pass these options in as CLI parameters, however the typedoc.json file is recommended.
- generateSeperateKindFilesFor: Every reflection kind included in this list will get a separate page for each type. For example, if you include 'Class' in this list, you will get different pages for each class defined. If you don't include it, one page of all the classes will be generated.
- exampleData: The keys are properties in method inputs and the values are default values that will be set.Then this run command to generate your docs:
`
yarn typedoc
`Currently the plugin generates files in a flat structure and assumes you want your entire module inside a sub-category. DAC supports at most one level of nesting, if you'd like to add support for this please contact @bewong
$3
I get an
Unable to locate entry point warning when generating my docsMake sure your entry points are being picked up by typescript. This probably means you need to add something to the
includes property inside tsconfig.json.Developing typdoc-dac-plugin
$3
The repo has a sample module setup under
./test and an example setup of typedoc.json. To generate the docs based using the plugin you need to build the plugin first and then run typedoc. The test-generate command takes care of both for you:`
yarn test-generate
``