The interface side is easy enough (all praise to the dialog
tag), add a 'post options' button/dialog with inputs for (probably)
- Title
- Slug (auto generated from title by default)
- Include in TOC (bool)
- Private (Maybe? I've been in two minds about private posts for a while. Knowing that people are potentially reading this is one of the main incentives for writing it. On the other hand, there's stuff that I don't want to share but that I still want to record.)(bool)
The current plan for metadata is a second file next to the entry, either in JSON (easy for machines to read/write, especially to/from c#, but hard(ish, relatively) for humans to read/write) or some kind of key/value map (e.g. Email headers, or TOML. Harder for machines, a little easier for humans, but I'm not sure how important human readable is for the metadata).
A missing metadata file shouldn't be an issue (I don't want to go back and create empty metadata for all my previous notes), and I want to be able to add new properties easily.
Having said that, bulk creating more or less empty metadata files shouldn't be too hard with a little bash scripting.
Let's also add a metadata version number, maybe in the filename, and an entity format version (more for paranoia than any foreseen problems).
That leaves us with:
- JSON
- matching name to entry except different extension
- Property values must all be nullable, or have a defined default
- Unknown properties in the file are ignored