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.

Emacs Org-Mode Grimoire Setup And Features

I'm moving to Emacs Org-mode (TKTKTKTK link) for my notes taking tool after a decade using nvAlt. nvAlt has been great even as it continued to age. The speed of the search to find something in my collection of 9,000 notes is amazing.

The reason I'm making the jump is that Org-mode offers "literate programmin". Bascially, a way to add code snippets to your notes, run them directly, and have the results output back into the file.

That's the next step in the evoluation of my Grimoire (which is what I've been calling nvAlt for years).

This is my initial list of features to build:

- [x] Search notes using Meilisearch

- [x] Preview notes during the search

- [x] Streamer mode that hides certain results (this is the default)

- [ ] Make the first three results what ever comes out of serach directly instead of consolidating the facet.

- [ ] Add facets to the search engine document loading

- [ ] Add facets to the search engine search

- [ ] Setup search results so you can pass `all-` to get all the results including the ones that are normally hidden by default via the list in `~/.config/grimoire-mode/search-config.json`

- [ ] Ability to create new files from the Grimoire search line

- [ ] Rename resutls_padder to padder for output formatting.

- [ ] Fix the issue where if you have a file open that you've changed and the grimoire preview it, it asks you if you want to close the buffer

- [ ] Use filename for title when inserting into the search engine if there isn't a title.

- [ ] When making a new post, automatically use the file name, but capitalized.

- [ ] Open a new window when opening the grimoire if the buffer you were in has been modified.

- [ ] When opening a new window default to popping up the grimoire search

- [ ] Setup the search bar so the first time you hit escape it just clears it and then hittig it again shuts it down

- [ ] Load the preview as text first then convert to org mode so it loads faster? If you do that, probably want to keep the sizing of all the different fonts the same so there isn't content shift just color updates as org kicks in

- [ ] Preload all files into tmp buffers to make switching between results faster?

- [ ] Figure out how to make it so you can leave the frame/window/buffer and return to it without it locking up

- [ ] Make preview buffer read only?

- [ ] Figure out why saving changes is duplicating entries in meilisearch and stop it

- [ ] Use KSUIDs from files as meilisearch indexes when they exist maybe? There would need to be a fallback so that means it might not be worth doing the KSUID way since whatever else was built would need to be solid enough to handle everything

- [ ] Turn off highlight in empty `[ ]`

- [ ] Setup so there aren't highlights on the individual letters in the helm matches

- [ ] If a buffer is open for a file and the search matches it, but it on top

- [ ] Solve issue where if a search hits an already open file it tries to close the buffer when the search updates to a new file to preview

- [ ] (Possibly the same thing as above) when a buffer for a file is already open, don't try to open it again or close it. (i.e. the Grimoire stuff should happen independently)

- [ ] Commit all changes to git

- [ ] Switch newly created files to org-mode

- [ ] Auto populate new files with default header

- [ ] Auto-save files when switching buffers

- [ ] Auto populate new files with default headers

- [ ] Open and operate in an independend window

- [ ] If you fire Grimoire in one window it moves to the Grimoire window (opening it if it's not already open)

- [ ] Ability to rename files

- [ ] Add a command to publish the site

- [ ] Ability to send buffer to a new window

- [ ] Ability to scroll in the preview without leaving the serach field

- [ ] Document how to run code externally for languaes that don't have org-mode babel extensions (see post on key codes in osascript)

- [ ] Maybe setup serach results so they filter nonce words at the top of the results first

- [ ] Hot key to close buffer and move back to whatever was before it.

- [ ] Hot key to rotate between grimoire buffers?

- [ ] Format the candidate results list to padd all nonce words the same amount

- [ ] Mission control style view that shows all open Grimoire buffers in small windows and lets you hit a number or arrow keys to select which one to bring to the front

- [ ] Count the number of times pages are opened to use for metadata for a 'most useful' ordering of pages in categories on the site.

- [ ] Setup so most frequently accessed search results are sorted to the top (see if you can pass that to meilisearch?)

- [ ] Create a formatter that wraps code output as an option. (Or add an option to the padder to do it is likely a nicer approach)

- [ ] Figure out what to show in the search results if there are no results for a search

- [ ] Setup so ESC clears the search but keeps it open so you can run another search