subtext icon indicating copy to clipboard operation
subtext copied to clipboard

Consider making Subtext MAYA

Open gordonbrander opened this issue 3 years ago • 2 comments

Umbrella for considering

  • [x] Bold/italic #20 TODO: write up RFC
    • [ ] Possible support for **bold** double-asterisk form
  • [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

gordonbrander avatar Mar 15 '22 16:03 gordonbrander

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.

bburns avatar Aug 21 '22 11:08 bburns

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)

gordonbrander avatar Aug 26 '22 13:08 gordonbrander