Cross-project links
A project's identity is the URL of its git repository — decentralised, no registry. GitHub is the common host, but any git remote is equal.
Registration
A space registers each project it knows under a short alias:
https://github.com/you/proj = proj
Connecting a project to a space means adding this line; opening one that is not on the machine yet means cloning that URL.
Links
The primary form is the alias:
See [the first document](@proj/docs/doc1.md).
@proj/docs/doc1.md resolves through the space's registration to the local
clone. The alias is stable across machines because the registration travels
with the space, not with the machine.
A direct URL is the secondary form: an ordinary
https://github.com/you/proj/blob/main/docs/doc1.md link is recognised by
its registered remote and opened locally when the project is connected —
and it still works as a plain web link everywhere else.
Rules
- An
@aliasnobody registered is not a link — the text is left as written and drawn as text. - Renaming an alias rewrites
@alias/links in the space's own documents in the same operation; it never edits a connected project's files. - A link into a project that is registered but not downloaded offers to fetch it, in plain language.