Observations about the suitability and challenges using various frameworks.

(1) Pelican
- Suitable for our Markdown, but we will need to rename all files - mdtext -> md
- Has it's own methods for HTML which are not really compatible with our current methods.
  We would need to write our own plugin and rename all of the htm and html files to a special prefix like aoo.

Seems like a bad fit. Thumbs down.

(2) JBake
- Suitable for our Markdown, but will need to rename all files - mdtext -> md
- Html and Htm will need to have a minimal piece of metadata inserted in order to call out the particular template.
  See https://jbake.org/docs/2.6.5/#content_files and https://jbake.org/docs/2.6.5/#custom_templates

- Assets and Content is separated so that all of our as is files should be in a sepearate tree.
- We can obsolete directories without deleting the content via https://jbake.org/docs/2.6.5/#ignoring_files_and_directories

This could be a good fit. Thumbs up.

(3) Hugo
- Go based.
- Looks like a lot of rewrite.

No opinion, but it looks like a steep learning curve

(4) Jekyll
- Ruby based
- Suitable for our Markdown, but will need to rename all files - mdtext -> md
- Unclear how we would handle the html parsing.

