[package] name = "orgo" version = "0.20.1" edition = "2021" description = "Org-mode static site generator that renders the org element tree straight to HTML" license = "0BSD" readme = "README.md" # crates.io caps a keyword at 20 characters, which "static-site-generator" is not. keywords = ["org-mode", "static-site", "ssg", "emacs", "blog"] categories = ["command-line-utilities", "text-processing"] repository = "https://github.com/krazywarez/orgo" homepage = "https://krazywarez.github.io/orgo/" # The compiler floor, checked in CI rather than assumed. orgo's own code needs 1.82 # (`Option::is_none_or`); the floor is 1.88 because dependencies in Cargo.lock declare it # — `plist` and `time`, both by way of syntect. Raising this is a minor-version change, # never a patch. rust-version = "1.88" # Published crates carry the source, the fixtures the tests need, and nothing else. The # documentation site is 14 org files plus its build output, which nobody installing a # binary wants to download. exclude = ["docs/", "target/", "/.github/"] [lib] name = "orgo" path = "src/lib.rs" [[bin]] name = "orgo" path = "src/main.rs" [dependencies] # Parsing / model serde = { version = "1", features = ["derive"] } serde_json = "1" chrono = { version = "0.4", features = ["serde"] } camino = { version = "1", features = ["serde1"] } # Pipeline walkdir = "2" syntect = "5" minijinja = "2" blake3 = "1" # CLI / errors clap = { version = "4", features = ["derive"] } anyhow = "1" thiserror = "2" rayon = "1.12.0" toml = "1.1.4" notify = "8.2.0" tiny_http = "0.12.0" [dev-dependencies] insta = { version = "1", features = ["json"] } # Release binaries are downloaded by people evaluating the tool, so they are built to be # small and quick to start rather than quick to compile. Thin LTO keeps CI build times # reasonable; full LTO bought a few percent for minutes per job. [profile.release] lto = "thin" strip = "symbols"