subconsciousnetwork / subtext

Markup for note taking
Apache License 2.0
271 stars 20 forks source link

RFC for wikilinks #29

Open gordonbrander opened 2 years ago

gordonbrander commented 2 years ago

I'm on the fence about this one, but [[wiklink]] could be normalized to a /slashlink such that it's actually just an alternative notation.

Advantages:

Disadvantages:

bburns commented 1 year ago

I like the single character / for links also.

Some more inspiration - orgmode uses the wikilink syntax - https://orgmode.org/guide/Hyperlinks.html

bburns commented 1 year ago

Q. How would you handle spaces with a slash?

with quotes? (looks weird)

This is a link: /"foo bar"

or brackets? (better)

This is a link: /[foo bar]

or backslashes? (like linux, but hard to read)

This is a link: /foo\ bar

or just not allow them? I guess it depends on what links point to -

This is a link: /foobar

More from your wikilink.md file - https://github.com/subconsciousnetwork/subtext/blob/main/explorations/wikilink.md -


Wikilinks and search links

"Any sufficiently advanced search is indistinguishable from a hyperlink". Rather than linking to file paths or URLs, links could include a search string, allowing a client to choose the best match from an index. This "search link" approach is inspired by Notational Velocity's treatment of [[WikiLinks]] as search strings.

& French toast recipe

Important: we must consider how this would interact with multiple reference links. How might the syntax for search strings and URLs be differentiable?


On the last point, maybe [[french toast recipe]] could be a search, /[french toast recipe] could be a link?

gordonbrander commented 1 year ago

That exploration references an earlier version of Subtext that has been superseded by the latest spec. Subtext now has a link form called a /slashlink that may be embedded in the text body. You can think of it as roughly a relative URL.

My preferred approach given Subtext today is to normalize [[Link Text]] to /link-text. You can write either one. Wikilink style allows you to includes spaces, cases, etc.

The major advantage to this approach is that wikilinks then have a defined semantics for normalization to paths/URLs.

We went forward with this approach in Subconscious 0.0.4 Alpha and it works well in practice. I need to put together and RFC for the language spec to reflect this. https://subconscious.substack.com/p/subconscious-alpha-004