[package]
name = "writ"
version = "0.17.2"
description = "A hybrid markdown editor combining raw text editing with live inline rendering"
authors = ["Wilfred Denton <wilfred@hey.com>"]
license = "MIT"
edition = "2024"
repository = "https://github.com/wilfreddenton/writ"
homepage = "https://github.com/wilfreddenton/writ"
documentation = "https://docs.rs/writ"
[package.metadata.docs.rs]
all-features = true
[lints.clippy]
too_many_arguments = "allow"
[lib]
name = "writ"
path = "src/lib.rs"
[[bin]]
name = "writ"
path = "src/bin/writ_next.rs"
required-features = ["app"]
[[bin]]
name = "writd"
path = "src/writd.rs"
required-features = ["ghosttext"]
[features]
default = ["app"]
_net = ["dep:tokio", "dep:reqwest", "dep:rustls", "dep:serde_json"]
git = ["dep:gix"]
github = ["_net"]
watch = ["dep:notify", "dep:notify-debouncer-full"]
remote-images = ["_net"]
mermaid = ["dep:mermaid-rs-renderer"]
math = ["dep:ratex-parser", "dep:ratex-layout", "dep:ratex-render", "dep:ratex-types"]
editor = ["git", "github", "watch"]
app = ["editor", "remote-images", "mermaid", "math", "dep:winit", "dep:arboard", "dep:open", "dep:clap", "dep:toml", "dep:dirs"]
ghosttext = ["app", "dep:tokio-tungstenite", "dep:futures"]
[dependencies]
anyhow = "1"
clap = { version = "4.5", features = ["derive", "env"], optional = true }
futures = { version = "0.3", optional = true }
imara-diff = "0.2"
gix = { version = "0.84", default-features = false, features = ["sha1"], optional = true }
arboard = { version = "3", default-features = false, features = ["wayland-data-control"], optional = true }
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp"] }
mermaid-rs-renderer = { version = "0.3", default-features = false, optional = true }
ratex-parser = { version = "0.1.12", optional = true }
ratex-layout = { version = "0.1.12", optional = true }
ratex-render = { version = "0.1.12", features = ["embed-fonts"], optional = true }
ratex-types = { version = "0.1.12", optional = true }
resvg = "0.46"
parley = "0.11"
vello = "0.9"
winit = { version = "0.30", optional = true }
fontique = { version = "0.11", features = ["fontconfig-dlopen"] }
pollster = "0.4"
notify = { version = "8.2", optional = true }
open = { version = "5", optional = true }
regex = "1.12.2"
reqwest = { version = "0.13", default-features = false, features = ["http2", "rustls", "json"], optional = true }
ropey = "1.6"
rustls = { version = "0.23.36", features = ["ring"], optional = true }
unicode-segmentation = "1.13"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", optional = true }
toml = { version = "0.8", optional = true }
dirs = { version = "5", optional = true }
tokio = { version = "1", features = ["full"], optional = true }
tokio-tungstenite = { version = "0.29", optional = true }
tree-sitter = "0.26"
tree-sitter-bash = "0.25"
tree-sitter-highlight = "0.26"
tree-sitter-md = "0.5"
tree-sitter-rust = "0.24"
undo = "0.52"
notify-debouncer-full = { version = "0.5", optional = true }
[profile.dev.package."*"]
opt-level = 2
[profile.release]
lto = "thin"
codegen-units = 1
[profile.release-fast]
inherits = "release"
lto = false
codegen-units = 16
[dev-dependencies]
vello = "0.9"