I'm bad at documentation, so in #MastoBot I'm making a concerted effort to be mindful of it.
On the writing side, JSDoc was an obvious choice. I already habitually write JSDoc-shaped comments, so cleaning that up is just a matter of mindfulness, along with consistently documenting methods.
Keeping the published docs up to date is automated using #GitLab CI and Pages. On every push to develop, GitLab will run the library through JSDoc and publish the output to gitlab.io.
The result? https://eroosenmaallen.gitlab.io/mastobot/
It's a work in progress, but I've automated it enough that keeping the documentation moving forward doesn't burden me, so it'll get done.