Part 8d, the last of stage 8, and with it everything on DESIGN.md's v1 list. Connect mode (C): the cursor goes to another node, a dashed arrow in the visual color follows it, and Enter links the two; then the cursor goes back to where C was typed (the user's pick). d removes the line between them (a branch is cut, and the child comes loose), > puts the node under the other one, and <Space> a, l, c, s and t style the line as you watch, making it when it isn't there yet. Everything connect mode changes is one undo group, and Esc takes it back with History::cancel, which leaves nothing to redo. From visual mode every selected node connects, and the line pickers go back to connect mode when they close. Portals show their document live, from a cache of what each document file holds (open documents from their buffers, the others from their files, looked at every second): the root's title, its color and how many nodes it has, or ? when the document isn't there. Enter or gf goes through, as a jump, and the pane's breadcrumb starts with the documents it came through. <Space>p types :portal (the user's pick): a path as :e takes it, or the title of a new document. Backlinks are put right whenever a document is opened or saved; the root shows how many, the Note view lists them, gu goes up to them (the user's pick) and :backlinks lists them. File names follow the root's title: when it changed, the next save renames the file (-2 when the name is taken; a folder's default document keeps its name), and the portals pointing at it, its backlinks in the documents it leads to, the recent documents, the capital marks and the jump lists follow. A portal whose file was moved by hand finds its document in that folder by uid. Portals in a register keep full paths, so a pasted portal leads to the same document from any folder. Co-Authored-By: Claude Opus 5.5 <[email protected]>
51 lines
1.1 KiB
Plaintext
51 lines
1.1 KiB
Plaintext
// cumulus document. Hand edits are fine: cumulus reloads it when it changes.
|
|
(
|
|
format: 1,
|
|
uid: "c01d5e7aa0f3b912",
|
|
root: 1,
|
|
nodes: [
|
|
(
|
|
id: 1,
|
|
title: "Kitchen",
|
|
pos: (0, 6),
|
|
color: "yellow",
|
|
),
|
|
(
|
|
id: 2,
|
|
parent: 1,
|
|
title: "Herbs on the sill",
|
|
pos: (16, 2),
|
|
color: "green",
|
|
),
|
|
(
|
|
id: 3,
|
|
parent: 2,
|
|
title: "Basil",
|
|
pos: (40, 1),
|
|
),
|
|
(
|
|
id: 4,
|
|
parent: 2,
|
|
title: "Mint, in its own pot",
|
|
pos: (40, 4),
|
|
body: "It spreads everywhere if it can.",
|
|
),
|
|
(
|
|
id: 5,
|
|
parent: 1,
|
|
title: "Compost bin",
|
|
pos: (16, 9),
|
|
tags: "#todo",
|
|
body: "Under the sink.
|
|
Empty it on Sundays.",
|
|
),
|
|
],
|
|
backlinks: [
|
|
(
|
|
from: "garden.cum",
|
|
uid: "7f3c9a1e52b04d18",
|
|
node: 10,
|
|
),
|
|
],
|
|
)
|