The missing documentation tool for your Angular application
Vincent Ogloblinsky
Software architect
" Frontend technologies "
@vogloblinsky
Angular trainer
and
also HTML5, JavaScript, TypeScript
Speaker
French meetups and conferences
Let me tell you a story
David
Pascal
Richard
Once upon a time...
3 guys from one startup team had to build a great application using Angular
David
Pascal
Richard
- tooling
- global architecture
- code quality
- data & communication services
- continuous integration
- shared components
Their
missions
Pascal starts the architecture using Angular CLI
He also starts several views of the application in many "views" components
The timeline
David adds after few Angular services in ./shared/services folder
Richard adds the first shared components in ./shared/components folder
At this moment, everything is fine for each team member, but...
Hey Pascal, where are the views which will use my services ?
the first team interaction appears
Watch the ./src/views
folder bro
Hey Richard, which component handle the customer wizard ?
Second team interaction
It is the WizardComponent
in the file
./shared/components/wizard.ts
Imagine the situation after several weeks...
Pascal who is a meticulous guy
starts searching a documentation tool
for their project on the web
and found something interesting in the first search results
Humm...
Feels nice and solid, let's have a look
> npm i --save-dev @compodoc/compodoc
...
compodoc -p src/tsconfig.json -s -w
...
After 30 minutes of code documentation, Pascal commited his work...
Hey Pascal, what is the input for the final processing view component ?
and another team interaction appears
Watch the documentation bro ;)
...
now each team member has a clear view of the documentation, architecture etc
Story conclusion
" Smart tools give smart developers "
French proverb
Let me now introduce
Living documentation
A low-effort approach of documentation, always up-to-date, inspired by Domain-Driven Design "
As you understand, Compodoc is a documentation tool for Angular applications
what are the key features ?
Features
- full Angular APIs support
- display each API by type : module, component, directive, service, class, pipe
- and also application routing
- application documentation coverage report
- others TypeScript files like interfaces or simple enums, types or variables
- additional documentation (markdown files)
Advantages
- offline tool using Node.js
- no source code uploaded online for metadata scanning
- no local TypeScript compilation
now, let's have a deep look
Main views - README
(if available at the root of the project)
Main views - Overview
Modules
General infos
Modules
Source code
Components
General infos (metadata, methods, properties, ...)
Components
Source code
Components
Link between general view and source code
Components
Template view
Components
DOM Tree with link to internal components
Components
Services
Classes
Classes
Miscellaneous
Global variables, types, functions etc
Application routing
Routes with modules, lazy-loaded and link to targeted component
Documentation coverage
Get a clean and quick overview of documentation coverage in your project
Additional documentation
Extend generated documentation with additional markdown files
Themes
Use one of the supplied themes that you like
Search
Search engine available for all scanned files
Comments
4 JSDoc tags supported
/**
* This is a great function
*
* @example
* processTarget('yo')
*
* @param {string} target The target to process see {@link Todo}
* @returns The processed target number
*/
Running scenarios
1. Simple generation
compodoc -p src/tsconfig.json
2. Simple generation and serve
compodoc -p src/tsconfig.json -s
3. Simple generation, serve & watch
compodoc -p src/tsconfig.json -s -w
Roadmap
Modules graph (@compodoc/ngd from @manekinekko) using vis.js
Support of more general TypeScript/ES6 syntax
@flow : bottom slide
...
@flow
The idea is to generate a graph of the flow of the data for one user experience scenario (ex: account creation)
WizardComponentPart1
WizardComponentPart2
Online demo
v1.0.4 available
Thanks
for listening
Happy documentation !
Compodoc - The missing documentation tool for your Angular application
By Vincent Ogloblinsky
Compodoc - The missing documentation tool for your Angular application
Compodoc - The missing documentation tool for your Angular application
- 4,406