mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-27 19:56:51 -06:00
.indd and .indt documents open through File › Open, drop, the web inbox,
file.open, file.openBytes, file.openIdml and the CLI. The engine converts
them to IDML in memory with storytold/indd-utils (pinned by rev, MIT OR
Apache-2.0, no dependencies, builds for wasm) and imports the result
through the existing IDML path. The converter's warnings come first in the
open result's `warnings`, before the IDML importer's and the font
warnings. A file the converter can't read is an open error, shown in the
Can't Open the File alert.
Routing: a path or name ending in .indd/.indt, or bytes starting with the
INDD signature (the web inbox passes the name without its extension).
opens_as_document and the desktop and web Open dialogs list indd/indt.
Tests use synthetic bytes only: signature-bearing junk, a zero-filled
.indd and a short .indt all fail as open errors with no document added;
a dropped unreadable .indd raises the open alert.
(cherry picked from commit bb8a6a23fa)
49 lines
1.5 KiB
TOML
49 lines
1.5 KiB
TOML
[package]
|
|
name = "designcraft-engine"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "DesignCraft engine: session, documents, history, selection, command registry, tool hosting"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
craft-print = { workspace = true }
|
|
designcraft-images = { workspace = true }
|
|
designcraft-geom = { workspace = true }
|
|
designcraft-color = { workspace = true }
|
|
designcraft-doc = { workspace = true }
|
|
designcraft-fonts = { workspace = true }
|
|
designcraft-compose = { workspace = true }
|
|
designcraft-render = { workspace = true }
|
|
designcraft-format = { workspace = true }
|
|
designcraft-epub = { workspace = true }
|
|
designcraft-textimport = { workspace = true }
|
|
designcraft-pdf = { workspace = true }
|
|
designcraft-tools = { workspace = true }
|
|
designcraft-idml = { workspace = true }
|
|
indd = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
log = { workspace = true }
|
|
quick-xml = { workspace = true }
|
|
caseless = { workspace = true }
|
|
unicode-segmentation = { workspace = true }
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
craft-atomic = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
designcraft-fonts = { workspace = true, features = ["testing"] }
|
|
zip = { workspace = true }
|
|
hayro-syntax = "0.7.2"
|
|
hayro-interpret = { version = "0.7.0", default-features = false, features = ["embed-fonts"] }
|
|
hayro-cmap = "0.1"
|
|
kurbo = { workspace = true }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
|
|
wasm-bindgen-test = "0.3"
|