Subconscious Alpha 0.0.4
Wikilinks come to Subconscious
Subconscious 0.0.4 is rolling out to TestFlight.
Folks already on the alpha waitlist: I’m adding batches of about 20x as the software stabilizes, so that I am able keep up with feedback.
If you’re not on the waitlist yet, and want to be part of this and future alphas, please sign up for the waitlist.
The biggest change in this release is the addition of some new markup to Subtext:
[[wikilinks]] *bold* _italic_ `code`
A few design notes on these additions…
The markup for bold/italic/code probably all look familiar if you’ve ever used Slack, Discord, or Markdown. We’ve chosen the Slack syntax for
_italic_, because we think this combo is the prettiest of the lot.
[[Wikilinks]] come from Wikipedia, have been popularized by Roam, and are now making appearances in many other apps.
So why wikilinks, when Subconscious already has /slashlinks? It’s a bit of a pivot.
The short answer is that I think wikilinks might be MAYA, and I’ve worked out a way to synthesize them with slashlinks that I feel is reasonably elegant.
How? To get into it, it’s worth taking a look at the history of wikis and linking. You’re here for that kind of obsessive gritty detail, right? Yes.
In the beginning, the first wiki had a simple link syntax called WikiWords. Any CamelCased combination of words turned into a link. Ugly? You’ll live. What about single words? RepeatRepeat them.
WikiWords are a delightful expression of Ward Cunningham’s commitment to doing the simplest thing that could possibly work. Like many of Ward’s simple choices, WikiWords had this marvelous emergent effect called accidental linking.
Accidental Linking: a property of wiki where authors citing non-existent pages discover that they do exist. (wiki.c2.com)
It seems that the constraints of WikiWords nudge people toward the same page titles more often, causing them to stumble upon pages that others have already started. Why is this? A few hypotheses:
WikiWords must always use the same casing, so you don’t get case-sensitive page splits.
WikiWords can’t contain special characters like quotes, dashes, apostrophes, which again removes opportunities for splitting.
VeryLongMeanderingWikiWordsWithDetailedQualifiers are awkward to write, and awkward to read, so people choose short titles more often.
WikiWords collapse the possibility space of practical titles. So, you choose the shortest title, and discover that someone else already started the page. You add to it. Others do the same. Over time, this closes a feedback loop between yourself and others, causing knowledge to grow from the bottom up.
All this is good, but WikiWords are a bit programmery. When Wikipedia launched, they started with WikiWords, but soon evolved a link markup that could support plain language:
[[wikilinks]]. The text in the brackets is lightly normalized into a link by sentence casing and replacing spaces with underscores.
So bearing all this in mind, I wondered if we could come up with a syntax that had the properties of WikiWords, but looked more familiar. And it turns out we do something like WikiWords a lot, actually, for URL slugs. It’s typical for web software like WordPress, or Substack, or anything else, to take the title of a page and “slugify” it, so that a title like
Corita Kent / Paulo Freire
gets normalized to
Right there, we have much of the win of WikiWords. Slugification collapses the possibility space of titles. We can just knock off the address part of the link and we have:
Happily, this is what you would write anyway for relative links, and it’s kind of reminiscent of
#hashtags. So that’s how we got to Slashlinks.
Slashlinks forced us to think through a set of slug normalization steps that collapsed the possibility space of titles in a nice way. I’m also not totally convinced that links should have been text anyway, so embracing their address-y nature feels good.
On the other hand, slashlinks are harder to type. It’s much easier to wrap some text in brackets. With wikilinks, you can also more easily link chunks of text within some text you’ve pasted in. Slashlinks would require you to type out a separate slug.
Thesis, antithesis, synthesis. Subconscious will now let you write
[[wikilinks]], your choice. Everything in the wikilink brackets gets normalized to a slashlink slug. It’s all slashlinks in the end.
I’ve been playtesting this for a couple weeks now, and wikilinks feel great, more fluid. At the same time, I’m happy we’ve gone down this slashlinks sidepath, because it has helped us think through addressing in a detailed way.
I like this approach to the tools for thought design space—taking time to look at familiar things with beginner’s mind. Sometimes you end up back in the same place, but with new eyes.
I do not propose to say anything new or original in these lectures. But I am a great believer in saying familiar, well-known things backwards and inside out, hoping that from some new vantage point the old facts will take on a deeper significance.
(John Tyler Bonner, as quoted by Dawkins in The Extended Phenotype)