krz/orgo
Lightning fast org-mode static site generator.
clone: git clone https://gitbay.org/krz/orgo.git
v0.19.1: Cargo.toml · raw
1[package]
2name = "orgo"
3version = "0.19.1"
4edition = "2021"
5description = "Org-mode static site generator that renders the org element tree straight to HTML"
6license = "0BSD"
7readme = "README.md"
8keywords = ["org-mode", "static-site-generator", "emacs", "html", "blog"]
9categories = ["command-line-utilities", "text-processing"]
10repository = "https://github.com/ccleberg/orgo"
11homepage = "https://ccleberg.github.io/orgo/"
12
13# The compiler floor, checked in CI rather than assumed. orgo's own code needs 1.82
14# (`Option::is_none_or`); the floor is 1.88 because dependencies in Cargo.lock declare it
15# — `plist` and `time`, both by way of syntect. Raising this is a minor-version change,
16# never a patch.
17rust-version = "1.88"
18
19# Published crates carry the source, the fixtures the tests need, and nothing else. The
20# documentation site is 14 org files plus its build output, which nobody installing a
21# binary wants to download.
22exclude = ["docs/", "target/", "/.github/"]
23
24[lib]
25name = "orgo"
26path = "src/lib.rs"
27
28[[bin]]
29name = "orgo"
30path = "src/main.rs"
31
32[dependencies]
33# Parsing / model
34serde = { version = "1", features = ["derive"] }
35serde_json = "1"
36chrono = { version = "0.4", features = ["serde"] }
37camino = { version = "1", features = ["serde1"] }
38
39# Pipeline
40walkdir = "2"
41syntect = "5"
42minijinja = "2"
43blake3 = "1"
44
45# CLI / errors
46clap = { version = "4", features = ["derive"] }
47anyhow = "1"
48thiserror = "2"
49rayon = "1.12.0"
50toml = "1.1.4"
51notify = "8.2.0"
52tiny_http = "0.12.0"
53
54[dev-dependencies]
55insta = { version = "1", features = ["json"] }
56
57# Release binaries are downloaded by people evaluating the tool, so they are built to be
58# small and quick to start rather than quick to compile. Thin LTO keeps CI build times
59# reasonable; full LTO bought a few percent for minutes per job.
60[profile.release]
61lto = "thin"
62strip = "symbols"