Note: This site is currently "Under construction". I'm migrating to a new version of my site building software. Lots of things are in a state of disrepair as a result (for example, footnote links aren't working). It's all part of the process of building in public. Most things should still be readable though.

Transitioning The Site Grimoire From nvAlt To Emacs Org-mode

After a decade of using nvAlt I'm switch to Emacs Org-mode (TKTKTKT link) for my note taking. I was using nvAlt and MDX (TKTKTK link) to manage the content for this site. That means some work to update the publishing setup to work with Org-mode files.

This is the TODO list for making that happen along with some features to add to the Grimoire functionality

- [ ] Rename files to .org? Or setup org mode to treat .txt files as org files?

- [ ] Convert YAML file headers to Org-mode file headers

- [ ] Convert `##`, `###`, and `####` section headers to the `*` version

- [ ] Add Org-mode headers to all files in the Grimoire

- [ ] Add KSUID with file creation date to any files that don't alrady have them

- [ ] Convert code fences to Org-mode `#_+begin_src` code blocks including the language when available

- [ ] Build deployer code into Grimoire

- [ ] Add hotkey that creates new Grimoire posts with a default header

- [ ] Setup code blocks to have both input and output

- [ ] Hide blocks with HIDDEN headers

- [ ] Ability to put source blocks at the front of a post and then place them in the post at later points to make it easier to use them as reference without the prose while still providing the details for the posts

- [ ] Ability to have expandable sections in the posts for more details about a section.

- [ ] Setup so you can have code and personal notes at the top of a page and then a post for the site in the lower part that pulls source code blocks in from above. (Check out "Conditional Matches aka Checking If A String Contains Another String In Python") for a prototype that might work for the setup. Basic idea is that if there is a `#_+POST` header somewhere in the page to start there and then pull in code blocks from above by name if they exist.

- [ ] Come up with conventions for things like adding optional filenames to source blocks with `#_+FILENAME`

** Notes

- The YAML headers have a single "categories" key with an array of values. The Org-mode format is multiple `#_+CATEGORY:` tags. One for each category