Deep in the guts of the renderer, right before it renders a fragment of text, check if it's a file, and turn it into my button abstraction if so.
Caveats: links can't wrap over multiple lines, links can't contain spaces.
Incredibly inefficient, to check the file system for every single word. So it's in a fork for now while I decide just what to do with this new super power.
It's interesting to compare this approach with Gemini.
Gemini: links on their own line, support arbitrary link text.
Me: inline links are ok, but the text will always be the URL.
Drop a Mastodon or HN URL on a window, and it constructs a more dense 2D graphical layout for a thread.
- Separate card for each comment.
- Ideal readable width per card.
- Short arrows from comments to their replies.
- Keyboard shortcuts to pan along semantically to sibling or child.
Side-effects:
- It needs the network, obviously.
- Zero contact with file-system.
Inspirations:
- Colin Wright's Chartodon
- S-ol Bekic's FediDag tool (example)
Things of note:
- Operates on a hard-coded directory of text files.
- No overlapping, no tiling, just an infinite 2D surface of columns. Commands open new columns.
- Wordstar-style menu up top of important commands in current context, and their shortcuts.
- Command palette at top left that filters commands available in current context.
- Files/nodes can have links. Links can form graphs, as the picture shows (original: http://www.maplefish.com/todd/papers/Experiences.html)
- Links have labels (next/previous by default).
- Graph-traversal commands can take an argument (next/previous by default) of the edge label you want to follow.
- 'add' adds an edge immediately to the current node, 'append' traverses the edge repeatedly to the end, then adds.
- 'step' navigates along an edge from the current node and opens it in a new column, 'unroll' traverses the edge repeatedly to the end and collects all nodes into a single column.
add:append :: step:unroll
Jun 2012: I need fuck you software.
That pretty much explains why I started Mu 2 years later :D
To be precise, I've been migrating my existing 10+ year old note-taking workflows out of terminal and unix tools into a more integrated and hopefully more accessible environment.
Not released yet, but here's a demo. (5 minutes; mirror)
This is a feature that doesn't have to be bundled with the main app.