krz/orgo

Lightning fast org-mode static site generator.

clone: git clone https://gitbay.org/krz/orgo.git

v0.20.2: Cargo.toml · raw

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