mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-02 14:16:56 -06:00
Links: follow linked file paths only on this computer or the document's share
Paths stored with linked images and placed documents, and the hrefs of SVG images, go through fileio::document_path (craft-docpath): a relative path is taken from the document's folder, and only local files or files on the document's own network share are looked at. Opening a document, Link Info, Package, the linked-file watch and SVG import all use it; the watch stats files through fileio, so automation roots apply to it too. A path that is not followed counts as missing; document.open, links.check and links.info say why in `refused`.
This commit is contained in:
+7
-4
@@ -466,7 +466,8 @@ symbol with strokes) stays art. `feGaussianBlur`, `feDropShadow` and the usual s
|
||||
colour matrix, composite, merge) become Gaussian Blur, Drop Shadow, Outer Glow, Inner Glow and Feather effects; other
|
||||
filters are listed in `warnings`. Undisplayed objects (`display:none`) come back hidden, nested clip paths intersect,
|
||||
and reflected or repeated gradients (`spreadMethod`) are expanded into stops. `<image>` files (relative links are
|
||||
found in the SVG's folder) stay linked images (see Linked images); SVG files and `data:` SVGs become art; a file that
|
||||
found in the SVG's folder; only files on this computer or the SVG's network share are read, and pasted SVG reads only
|
||||
absolute paths) stay linked images (see Linked images); SVG files and `data:` SVGs become art; a file that
|
||||
can't be read becomes a placeholder in its box, named in `warnings` and `missingLinks`.
|
||||
|
||||
Native files: `run_command document.save {compress: true}` writes a gzip-compressed `.vectorcraft` (the
|
||||
@@ -2372,9 +2373,11 @@ A placed image linked to its file (`file.place {path}`, Link on) records the fil
|
||||
modification time and hash, and keeps a low-resolution preview (at most 256 px a side): a `.vectorcraft` save writes
|
||||
the preview instead of the pixels, plus the path relative to the saved file. `document.open` reads
|
||||
the linked files again, looking for each at its path, then at its relative path and by name in the document's folder
|
||||
(so a folder moved with its links still opens): the result lists `missingLinks` (their images show the preview),
|
||||
`modifiedLinks` (left as they were; read again only with the preference `updateLinks: "automatically"`, then they are
|
||||
in `updatedLinks`), each as `{name, path, ids}`. The desktop app also checks the active document's links when its window
|
||||
(so a folder moved with its links still opens). Only files on this computer, or on the network share the document is
|
||||
on, are looked at: a path to another computer, a device or a URL counts as missing. The result lists `missingLinks`
|
||||
(their images show the preview), `modifiedLinks` (left as they were; read again only with the preference
|
||||
`updateLinks: "automatically"`, then they are in `updatedLinks`), each as `{name, path, ids}`, with `refused` (why the
|
||||
path isn't followed) when it isn't. The desktop app also checks the active document's links when its window
|
||||
comes back to the front, following the same preference. `links.check` reports every link's `status` (`ok`, `modified`,
|
||||
`missing`), `links.update {ids?}` reads modified files again and `links.relink {ids?, path | folder}` points images at
|
||||
another file (or each at the file of its name in a folder); images keep their bounds, one undo step each. Without a
|
||||
|
||||
Reference in New Issue
Block a user