-
Notifications
You must be signed in to change notification settings - Fork 0
Description
The current setup is fairly simple:
- Checkout
bcc-documentation-base(this repository) - Checkout local repository that has docs ("docs repository")
- Copy across docs to the
vuepressfolder inbcc-documentation-base - Build a VuePress site from that folder
This works quite well for basic documentation that is attached to a repo. To add a VuePress site is only three steps. However there are several shortcomings with this approach:
- It is impossible to run VuePress locally from the docs repository, so it is not possible to preview the website before pushing. Note: this might be alleviated with branch deploys (mentioned here)
- Including Vue components from the docs repository is only possible if they don't have external dependencies, because we don't have anything to do with the
package.jsonin that repository and instead use that one in thevuepressfolder.
I'm curious how we can improve on this setup. I think we should keep in mind the following goals for this setup:
- Documentation lives as close to the code as possible (i.e. in the same repository, not some centralized docs repository)
- It's as frictionless as possible to add a documentation site to a project. If you have an existing docs folder, it should be plug-and-play (i.e. add a GitHub action)
I would rather not include VuePress as a dependency in all the other repositories, as it rather defeats the "frictionless" goal (especially when your code isn't Javascript and doesn't have a package.json already).
One final thing to consider is that some of this sprang forth from a discussion on the developer.bcc.no repository: https://github.com/bcc-code/bcc-code.github.io/issues/57 - this repository is a special case as it's intended as a website with generic documentation, without any attached code. Perhaps this repository should not use the same setup as the other repositories. Still, other repositories would benefit from us solving the problems with local running and including Vue components.