Description
This issue tracks the work being done on the next feature release of TypeDoc. I will be posting a weekly update here covering what I've done this week, as well as what's next to be done.
You can try out a beta of 0.20 by installing typedoc@beta
with npm i typedoc@beta
.
Originally, this release was slated to be version 1.0, it contained a major rewrite which fixed most to all of the issues I have with the current implementation of TypeDoc. However, I've since realized that this was a bad idea - I broke too many things, so "library mode" will be releasing as 0.20 before the end of the year.
Old text
This issue tracks the work being done on version 1.0. I will be posting a weekly update here covering what I've done this week, any new problems discovered, and updating the checklist in this post with what's been completed. The checklist in this post was originally taken from this post in the original PR, without including any of the already completed items.
If you are interested in looking at the work in progress package, you can install typedoc@dev
, which will be published whenever a change in version is pushed to the library-mode
branch.
At the current rate that I'm getting things done, it's looking like this won't be ready until November/December... I was really hoping for sooner, but can't devote every weekend to this, though I try to do at least one task per week ;)
Tasks
TypeDoc proper
- Finish
ObjectReflection
converter (medium) - Fix converter for destructured outputs (small)
- Add indexed signatures to models that can have them. I forgot they existed when rebuilding the models... (medium)
- Detect and convert static class members (smallish)
- Update plugins that were broken when rebuilding converters
- Decorator plugin (medium)
- Implements plugin (medium)
- Deep comment plugin (small, probably merge with the existing comment plugin)
- Test on a bunch of different projects, particularly large ones. (Apache Arrow, Jupyterlab) (??? depends on what issues are found)
- (done) Review existing options to see which ones still make sense. (medium)
- Update variable converter to possibly convert variables as functions (smallish) (Function exported as variable despite @function tag #858, but without requiring
@function
, Variables of kindConditionalExpression
have defaultValue set to condition #401, ) - Sort order option (Beyond alphabetic ordering or methods and properties #112), see src/lib/plugins/sort.ts
Comments
- Make
@category
work again (medium) - Fix {@link} and [[link]] (medium)
- Make
@inheritdoc
work (small/medium)
Themes
- Support hideGenerator flag (smallish, need to allow templates access to
application.options
) - (done) Make overriding templates easy for users (small/medium)
- (done) Write docs on how to create a custom theme (medium, I want to do this right, not just the minimal page we currently have, particularly important because 1.0 breaks existing themes)
- Talk with the people that built the markdown plugin about how to integrate (medium)
- Make search work (medium)
- Make sure mobile experience is decent (medium)
- (done) Make light/dark code themes configurable (small)
- Add icons for reflection types (medium)
Plugins / Developer Docs
- Take a look at existing plugins to see what events they use, if the existing emitted events meet those needs, or if we need other events. (medium)
- Write "how to build a TypeDoc plugin" (medium)
- Update the development page on the website (medium)
- Figure out what should be exported, and export only those symbols
Extra (nice to have, but won't block a release)
- Highlight headings according to the color scheme chosen by users, not just code snippets (medium? Tricky. I spent a few hours on it, failed)
- Add a reflection for "union enums" RFC: Specify that doc comments are allowed on simple union types microsoft/tsdoc#164
- Update models to make type parameters have a reflection - Support making type parameters private #1319.
- Recognize global objects and combine them all into a single special module,
- Figure out how
@event
ought to work. The old way of handling it flat won't work anymore... and it isn't particularly clear how it should be used. - Create a second theme
Future (almost certainly not in 1.0, but I'm thinking about it)
- JSON deserialization (Json deserialization #910)
- Support for
///
comments Triple-slash comments for JSDoc microsoft/TypeScript#39930
Help out
There's still quite a bit to be done. Help on any of the uncompleted items above is greatly appreciated. I could especially use some help on making the default theme better - frontend dev is not my specialty. If you are having trouble, feel free to reach out by making an issue for the task you're working on, through the TypeScript Discord, or through the TypeDoc Gitter.