Another possible approach would be to externalize this even further, rather than do it as a plugin or a theme component.
Some prior art here: Discourse Public Data Dump
Again, I think approaching this as much as possible from the perspective from the end result you’re working towards, the easier it’ll be to advise.
So thanks for sharing this link:
Perhaps we can use that as a jumping off point to further clarify the functional spec you’ve implicitly defined so far.
The way I’m understanding it now you want to:
- create a static html archive of a Discourse site
- keep it up to date as new content is created
- exclude certain categories
And the design you’re currently exploring is:
- create a plugin that:
- allows admins to:
- explicitly configure which categories to exclude
- configure a git URL to store static content
- runs a background job periodically that:
- creates markdown files for topics and posts
- store them in some file/directory structure in a git repo
- pushes that to GitHub
- end users can see the content on GitHub as html
Is that about right?