Hi! I’m learning code: I’ve been doing a bit of JavaScript, and now i’m switching to TypeScript before going through frameworks.
One thing i’m quite missing is the possibility to have a personal documentation environment: something that let me write documentation on what i’m learning WHILE writing code and following my courses, using something like typedoc or javadoc.
I have been using Obsidian, that is good for markdown content, and i can generate docs with typedoc-markdown-plugin that i can then open on obsidian. However i would like to have both my code and my docs all togheter, not for a single project but for all the courses and little projects i’m doing, having it all togheter stored in one place, and possibly being able to share it as a portfolio in the future.
I don’t specifically need to show the code in this environment, i just need the docs to be visible and to be pointing to the specific sections of the environment holding my code (wich can be github links like the ones that typedoc automatically add). I would like to have one directory for each project containing both my code and my docs.
Something like a programming digital garden! But integrated with tools that generate documentation from my code.
I’ve tried the typedoc-hugo-plugin to host a static docs website with Hugo, but it’s not quite mantained and came with a lot of bugs, like broken links.
I’m trying to use Docusaurus and docusaurus-plugin-typedoc; it looks quite good, however i understood it is designed more to hold documentation for a single big project than for a series of small (learning oriented) projects. You need to configure each extra (more than one) docs folder to get it work properly, which is something i would avoid, if possible.
I love all the TSdoc standard thing, but i don’t really know how to put everything togheter.
There is a learning curve, but emacs org-mode sounds exactly like what you want.
With org-mode you can have your docs and your code in the same place or use your docs to create and link to different files.
You can even run your code inside your docs and have it execute on a networked computer without ever leaving your doc.
https://www.youtube.com/watch?v=34zODp_lhqg
And with org-roam, you can keep the same functionality you are used to with obsidian.
Emacs is a bit of a rabbit hole however. So if you want to keep things simple you could just use git.
Git has its own learning curve but it’s pretty much a requirement everywhere code is developed and released professionally so it’s a good idea to have some experience with it.
I’d suggest having different repos for your different projects, and either one single readme.md file in each repo for all your docs or using the wiki feature that is built into most free git web UIs like GitHub and gitlab.
Once on git, it’s trivial to link to specific files or even individual lines in your repo.