[ Disclaimer: I work for the company that owns GitHub, but these opinions are my own and not corporate policy ]

On 18/01/2021 23:36, Ivan Vučica wrote:
- Should we turn the index into a set of static pages generated from
MySQL data, which we then check in?
- If we turn each entry into a single .md file, we can perhaps
leveragehttps://github.com/allejo/jekyll-toc

There are two things you can do with GitHub Pages:

- Run a GitHub Action that builds the branch that Pages uses from commits to another branch (using whatever static site generator you want).
 - Use GitHub's version of Jekyll to do this transparently.

I generally prefer the latter where possible. There are some places where it doesn't work (for example, if you want to run Doxygen or similar to generate API docs on any commit to a header file), but it's generally pretty good.

The big downside of using GitHub Pages' version of Jekyll is that you can't run arbitrary Jekyll plugins unless they are shipped with the GitHub install. That said, you don't need anything custom to do aggregation like this. Jekyll's support for collections makes it very easy to write pages that have summaries and detail both generated from the same data (YAML file or Markdown files in a directory with YAML in their frontmatter). I've used this, for example, for open student projects on my University web page: each project has a description in a .md file with who it's appropriate for, whether it was completed already, and so on and these are built into a family of pages with navigation links and summaries between them.

Jekyll has some rough corners, but it can generally be battered into the right shape for most things.

David


Reply via email to