2.1 KiB
Additions to JSON Canvas 1.0
Everything jsoncanvas-desktop does beyond JSON Canvas 1.0, and nothing else.
The original is kept alongside as 1.0.md; the whole format, original
and additions together, is in spec.md.
Two rules keep the additions from splitting the format in two:
- Every addition is optional. A file that uses none of them is a plain JSON Canvas 1.0 file, and a reader that ignores all of them sees a complete canvas — an addition may improve how something is displayed, never what it means.
- An addition reuses a name the format already has where one fits, so that the same idea is not called two things in one file.
A client that does not know an addition will ignore it. Whether it keeps the attribute when it saves is up to that client; this editor keeps every attribute it does not know (see Unrecognised data in spec.md).
Format additions
| Attribute | Applies to | Added |
|---|---|---|
label |
Link type nodes | 2026-09-09 |
label on link type nodes
label (optional, string) is a text label shown in place of the URL when the
node is displayed.
A canvas is read at a glance, and a URL is rarely what a reader wants to see: an
address is long, it repeats the same prefix on every node, and the part that says
what the page actually is tends to be at the end, past where the node is wide
enough to show. The label lets the node say The JSON Canvas spec instead of
https://jsoncanvas.org/spec/1.0/.
- The name is
labelbecause group nodes and edges already uselabelfor exactly this — a piece of text that names the thing. - The URL is not hidden: the node still shows the host, and the full address is the link's tooltip.
- Without the attribute, or with a blank one, the node displays its URL, which is what a JSON Canvas 1.0 file gets.
- The label is display text only. Clicking the node still opens
url.
{
"id": "spec",
"type": "link",
"url": "https://jsoncanvas.org/spec/1.0/",
"label": "The JSON Canvas spec",
"x": 220, "y": -250, "width": 320, "height": 140
}