ngcp-project / progress-board-tracker

Empty repository only meant for tracking cards inside project boards in NGCP
0 stars 0 forks source link

Tech Spike - NGCP Docs Website Solution #86

Open marked01one opened 1 week ago

marked01one commented 1 week ago

Goal: Test around with Astro Docs to confirm whether or not it is a viable solution for an NGCP docs hub. Specifically, whether it can do the following:

Leaversa commented 1 week ago

Be deployed on GitHub Pages via Github Actions.

Yes this is supported out of the box and is well documented.

Have a way for non-programmers to edit and change them, or if there is a way we can implement such functionality.

Editing files can be done by utilizing markdown (md/mdx). As long as non-programmers are familiar with how to push and pull from github and editing markdown files, there wouldn't be any issue adding to the documentation. More details here.

Automation tools for documenting UI/DB/VI codebases.

There are several plugins that support automatic documentation. For frontend, an option for typescript would be starlight-typedoc. For backend or other non-typescript languages, an option would be starlight-openapi.

Can you automatically update the docs site directory structure (the tree list of pages)?

Page and documentation structure is defined and autogenerated by folder structure (as long as the specific folder is defined in config before hand).

How customizable is the UI styles? Are there pre-made themes that can be used to simplify our tasks?

UI styles are completely customizable with support for both tailwindcss and vanilla css. The pre-made theme that is used fits well and I believe it isn't necessary to change anything.

What extra functionalities makes it good as a place to document not only code & troubleshooting details.

It is extremely flexible and easy to use since it uses frontmatter and layouts. It is optimized well for a documentation site since it is used primarily for static sites but has support for embedded client-side frontend framework components on a static site using the islands architecture. This is ideal for frontend because it allows frontend to embed interactive components directly into its documentation page without compromising on the primary use case of static site generation.

Additionally it extends the same markdown approach used in the previous documentation site. So adding content like images, links, sections, etc. can be done the same way. However there are already included components that allow for more clarity in the documentation pages without requiring much knowledge about Astro.

Can you embed the ability to download files on it (far fetch).

Unsure by what this means or what it would look like for a documentation site? @marked01one