file.c:12 and the permalink file.c:12:d8K3A link is an in-prose reference to a file and a position in it. Links are used in code comments, tickets, chats and docs. A link differs from a URI in its minimal syntax. It merely needs a file name and enough of a path to disambiguate. A link is resolved by an index, not by a filesystem. For that reason, absolute or relative paths are unnecessary. Normally, a commit hook converts line-anchored links into permalinks.
The grammar accepts ticket | relfile | rooted; a nav target is a ticket code, or a name carrying evidence — a known extension, or an anchor past a slash.
Examples, one per accepted shape:
main.js — a known extension is evidence by itselfdog/tok/LINK.rl:52 — dirs, known ext, a line anchorabc/Makefile:20 — ext-less name vouched for by an anchor past a slashsrc/weird.xyz:12 — unknown extension, same vouchingmin_addr.c:30:Lj — line:col, the transient form (second code is decimal)min_addr.c:30:LjJu — permalink: line + blob hashlet (second code is base64)/README:10, ./view/pager.js:452 — rooted, the anchor is mandatoryLITE-029, DOG-034:64 — ticket code, optionally anchored