You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Auto-generate and update the sidebar i.e _sidebar.md by looking into the folders/files
Motivation
If you have a big project or a project having many markdown files. It is kind of extra work look for each file and writes the path and the file name and the text to display it.
Maximum projects I have seen take each .md file as a single page and .md files under a folder inside the docs directory is a sub-page. So if we go with usual lookups through each file/folder. This is quite easy to achieve.
Detailed Design
No changes are required in the core. Only needs changes in cli. New command probably
We need to traverse through the directory and create an object or tree and then just print the tree as a list in the markdown.
Documentation
Update the docs in the main docs site as a separate page and create docs for the command in the cli and do a remote rendering of the page in the main docs
Drawbacks
Few
It won't know whether markdown file should be in the heading or in subheading if it goes out of our prediction.
cant do the operation for the .html files.
Backwards Compatibility Analysis
Not required as no changes in the core is being done.
This would be very useful.
I think you will also need some sort of rule for ordering/ignoring the entries, with a prefix on the filename or some front-matter maybe.
Personally, I think this can be limiting and it should be optional. For example, we like that sidebars are just markdown files and we can customize it and swap it (for multilanguage docs, etc). Also, we think that sidebars that are not related to the file structure can be more useful in some situations.
This is how our sidebar looks. We added emoticons and custom HTML badges beside titles. Such level of customizations should be preserved and so, the auto-generated sidebar must be opt-in or at least, opt-out.
This would be so nice! No need to update two places and everything are inferred with convention. Most of the time the directories are organized with the files anyway, if not, there is always extra cognitive load. This can be an opt-in option and would also allow the existing _sidebar.md to override if it exists so existing users can adopt it incrementally in select directories. ❤️❤️❤️
Sy, can you update the docs here for docsify.js.org? (might be a good reason to have cli in the same repo, so we can update the docs in the same pull request, etc).
Activity
ajboni commentedon Aug 5, 2020
This would be very useful.
I think you will also need some sort of rule for ordering/ignoring the entries, with a prefix on the filename or some front-matter maybe.
result
equinusocio commentedon Sep 5, 2020
Personally, I think this can be limiting and it should be optional. For example, we like that sidebars are just markdown files and we can customize it and swap it (for multilanguage docs, etc). Also, we think that sidebars that are not related to the file structure can be more useful in some situations.
This is how our sidebar looks. We added emoticons and custom HTML badges beside titles. Such level of customizations should be preserved and so, the auto-generated sidebar must be opt-in or at least, opt-out.
randomor commentedon Jun 5, 2021
This would be so nice! No need to update two places and everything are inferred with convention. Most of the time the directories are organized with the files anyway, if not, there is always extra cognitive load. This can be an opt-in option and would also allow the existing _sidebar.md to override if it exists so existing users can adopt it incrementally in select directories. ❤️❤️❤️
fangyuqiang commentedon Jul 30, 2021
We need this! please!
Anilople commentedon Oct 24, 2021
Here is my way to generate sidebar.
I write java code to do it.
The code in .zip file Generator.zip
Download it to docsify's directory which contains .md files. And unzip it.
Compile java code by
javacGenerate sidebar to stdout
java Generator build-sidebar .trusktr commentedon Jan 26, 2022
@sy-records already added an initial version of this to
docsifycli in docsifyjs/docsify-cli#130Sy, can you update the docs here for docsify.js.org? (might be a good reason to have cli in the same repo, so we can update the docs in the same pull request, etc).
sy-records commentedon Jan 27, 2022
Ok, I will add it later.
Added it in docsify-cli before
see https://github.com/docsifyjs/docsify-cli#generate-command