Consider making Subtext MAYA
Umbrella for considering
- [x] Bold/italic #20 TODO: write up RFC
- [ ] Possible support for
**bold**double-asterisk form
- [ ] Possible support for
- [x] Wikilinks #29 TODO: write up RFC
- [ ] Deep lists (implemented as line-oriented list plus whitespace "indent")
- [ ] Multiple heading levels (h1-h6)
- [ ] Hashtags #21, a common Markdown extension
- [ ]
==highlight==, a common Markdown extension - [ ] #55
The value would be in trying to hit a MAYA (most advanced yet acceptable) threshold of "good enough" surface-level similarity to the unofficial Markdown flavors used by popular wikis and TfTs, while retaining the advantage of having a flat list block model.
Goals:
- Surface-level similarity to some markup features used in Markdown-flavored wikis and TfTs.
- "Mostly working" for the simplest markdown/wikilink markup cases. This will be a subjective criteria.
Non-goals:
- Compatibility. It is a non-goal to implement 1:1 feature compatibility with Markdown or Obsidian
- Strict subsetting. It is a non-goal to implement strict subset compatibility. This would be a "mostly works due to passing resemblance" kind of thing. The value is in the familiarity, not in 1:1 semantic equivalency.
Subtext deliberately takes a fundamentally different, line-oriented parsing strategy that enables you to treat lines as a flat list of blocks. This means that while it has a passing resemblance to Markdown, it will always be subtly different from Markdown at a deeper level (by design!)
Tradeoffs:
- Pro: conformability with existing infrastructure
- Pro: known/proven set of features (although I think many of these, such as deep headings are long-tail)
- Con: complicates Subtext
- Con: not a strict subset. There will be edge-cases.
- Con: adds an additional linking flavor
Some comparison tables here - https://en.m.wikipedia.org/wiki/Lightweight_markup_language
I like also = for highlight and ~ for strikethrough, if wanted to assign meaning to those chars.
Update: we've already moved forward with some of these in the Subconscious client, and have to catch up on writing RFCs for these changes https://subconscious.substack.com/p/subconscious-alpha-004.
- Wikilinks (
[[]]) - Bold (asterisk)
- Italic (underscore)
- Code (backticks)