[package]
edition = "2021"
rust-version = "1.88.0"
name = "ssg"
version = "0.0.39"
authors = ["SSG Contributors"]
build = "build.rs"
exclude = [
"/.git/*",
"/.github/*",
"/.gitignore",
"/.vscode/*",
]
include = [
"/CONTRIBUTING.md",
"/LICENSE-APACHE",
"/LICENSE-MIT",
"/benches/**",
"/build.rs",
"/Cargo.toml",
"/content/**",
"/examples/**",
"/README.md",
"/src/**",
"/template/**",
"/tests/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
A Content-First Open Source Static Site Generator (SSG) crafted in Rust.
"""
homepage = "https://github.com/sebastienrousseau/static-site-generator"
documentation = "https://docs.rs/ssg"
readme = "README.md"
keywords = [
"rust",
"markdown",
"jamstack",
"ssg",
"wasm",
]
categories = [
"command-line-utilities",
"parsing",
"template-engine",
"web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/sebastienrousseau/static-site-generator"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
targets = [
"x86_64-unknown-linux-gnu",
"x86_64-unknown-linux-musl",
"aarch64-unknown-linux-gnu",
"x86_64-apple-darwin",
"aarch64-apple-darwin",
"x86_64-pc-windows-msvc",
]
[[package.metadata.generate-rpm.assets]]
source = "target/x86_64-unknown-linux-gnu/release/ssg"
dest = "/usr/bin/ssg"
mode = "755"
[[package.metadata.generate-rpm.assets]]
source = "LICENSE-MIT"
dest = "/usr/share/doc/ssg/LICENSE-MIT"
mode = "644"
doc = true
[[package.metadata.generate-rpm.assets]]
source = "LICENSE-APACHE"
dest = "/usr/share/doc/ssg/LICENSE-APACHE"
mode = "644"
doc = true
[[package.metadata.generate-rpm.assets]]
source = "README.md"
dest = "/usr/share/doc/ssg/README.md"
mode = "644"
doc = true
[package.metadata.wix]
upgrade-guid = "B7C9E10D-3F4E-4F12-9E86-2C9D7E45A1B0"
path-guid = "C8DA01EE-401F-4E13-AF97-3DAEAF56B2C1"
license = false
eula = false
[features]
benchmark = ["tempfile"]
cli = []
default = [
"templates",
"image-optimization",
]
image-optimization = ["image"]
otel = [
"dep:tracing",
"dep:tracing-subscriber",
]
templates = ["minijinja"]
test-fault-injection = ["fail/failpoints"]
[lib]
name = "ssg"
path = "src/lib.rs"
[[bin]]
name = "ssg"
path = "src/main.rs"
[[example]]
name = "basic"
path = "examples/basic_example.rs"
[[example]]
name = "blog"
path = "examples/blog_example.rs"
[[example]]
name = "docs"
path = "examples/docs_example.rs"
[[example]]
name = "landing"
path = "examples/landing_example.rs"
[[example]]
name = "multilingual"
path = "examples/multilingual_example.rs"
[[example]]
name = "plugins"
path = "examples/plugins_example.rs"
[[example]]
name = "portfolio"
path = "examples/portfolio_example.rs"
[[example]]
name = "quickstart"
path = "examples/quickstart_example.rs"
[[test]]
name = "chaos"
path = "tests/chaos.rs"
[[test]]
name = "doc_links"
path = "tests/doc_links.rs"
[[test]]
name = "docs_accuracy"
path = "tests/docs_accuracy.rs"
[[test]]
name = "element_presence"
path = "tests/element_presence.rs"
[[test]]
name = "example_outputs"
path = "tests/example_outputs.rs"
[[test]]
name = "fault_injection"
path = "tests/fault_injection.rs"
[[test]]
name = "golden_files"
path = "tests/golden_files.rs"
[[test]]
name = "jsonld_validation"
path = "tests/jsonld_validation.rs"
[[test]]
name = "perf_budgets"
path = "tests/perf_budgets.rs"
[[test]]
name = "perf_regression"
path = "tests/perf_regression.rs"
[[test]]
name = "plugin_contracts"
path = "tests/plugin_contracts.rs"
[[test]]
name = "regression"
path = "tests/regression.rs"
[[test]]
name = "schema_validation"
path = "tests/schema_validation.rs"
[[test]]
name = "test_cname"
path = "tests/test_cname.rs"
[[test]]
name = "test_file"
path = "tests/test_file.rs"
[[test]]
name = "test_human"
path = "tests/test_human.rs"
[[test]]
name = "test_json"
path = "tests/test_json.rs"
[[test]]
name = "test_manifest"
path = "tests/test_manifest.rs"
[[test]]
name = "test_navigation"
path = "tests/test_navigation.rs"
[[test]]
name = "test_tags"
path = "tests/test_tags.rs"
[[test]]
name = "test_uuid"
path = "tests/test_uuid.rs"
[[bench]]
name = "bench"
path = "benches/bench.rs"
harness = false
[[bench]]
name = "bench_concurrent_operations"
path = "benches/bench_concurrent_operations.rs"
[[bench]]
name = "bench_file"
path = "benches/bench_file.rs"
[[bench]]
name = "bench_scalability"
path = "benches/bench_scalability.rs"
[[bench]]
name = "bench_site_generation"
path = "benches/bench_site_generation.rs"
[[bench]]
name = "bench_utilities"
path = "benches/bench_utilities.rs"
[dependencies.anyhow]
version = "1.0.102"
[dependencies.base64]
version = "0.22"
[dependencies.clap]
version = "4.6.1"
features = [
"derive",
"cargo",
"env",
]
[dependencies.fail]
version = "0.5"
optional = true
[dependencies.frontmatter-gen]
version = "0.0.5"
[dependencies.http-handle]
version = "0.0.4"
[dependencies.image]
version = "0.25"
features = [
"jpeg",
"png",
"gif",
"webp",
"bmp",
"tiff",
]
optional = true
default-features = false
[dependencies.log]
version = "0.4.29"
features = ["std"]
[dependencies.minijinja]
version = "2"
features = ["loader"]
optional = true
[dependencies.pulldown-cmark]
version = "0.13"
features = ["html"]
default-features = false
[dependencies.rayon]
version = "1.12.0"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.149"
[dependencies.sha2]
version = "0.10"
[dependencies.staticdatagen]
version = "0.0.8"
[dependencies.tempfile]
version = "3.27.0"
optional = true
[dependencies.toml]
version = "1.1.2"
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
"json",
]
optional = true
[dev-dependencies.criterion]
version = "0.8.2"
[dev-dependencies.fail]
version = "0.5"
features = ["failpoints"]
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.serial_test]
version = "3.2"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.uuid]
version = "1.23.1"
features = ["v4"]
[build-dependencies.version_check]
version = "0.9.5"
[target.'cfg(all(unix, not(target_os = "macos")))'.dependencies.openssl]
version = "0.10.79"
features = ["vendored"]
[lints.clippy]
case_sensitive_file_extension_comparisons = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
default_trait_access = "allow"
doc_overindented_list_items = "allow"
expect_used = "warn"
field_reassign_with_default = "allow"
format_in_format_args = "allow"
format_push_string = "allow"
ignored_unit_patterns = "allow"
implicit_hasher = "allow"
items_after_statements = "allow"
literal_string_with_formatting_args = "allow"
manual_assert = "allow"
many_single_char_names = "allow"
match_same_arms = "allow"
missing_docs_in_private_items = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_inception = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
must_use_candidate = "allow"
needless_pass_by_value = "allow"
needless_raw_string_hashes = "allow"
no_effect_underscore_binding = "allow"
option_if_let_else = "allow"
range_plus_one = "allow"
redundant_clone = "allow"
redundant_closure = "allow"
redundant_closure_for_method_calls = "allow"
return_self_not_must_use = "allow"
significant_drop_tightening = "allow"
similar_names = "allow"
single_char_lifetime_names = "allow"
single_char_pattern = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
trivially_copy_pass_by_ref = "allow"
uninlined_format_args = "allow"
unnecessary_map_or = "allow"
unnecessary_wraps = "allow"
unused_self = "allow"
unwrap_used = "warn"
useless_let_if_seq = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.complexity]
level = "warn"
priority = -1
[lints.clippy.correctness]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.perf]
level = "warn"
priority = -1
[lints.clippy.style]
level = "warn"
priority = -1
[lints.clippy.suspicious]
level = "warn"
priority = -1
[lints.rust]
bare_trait_objects = "allow"
dead_code = "deny"
deprecated_in_future = "deny"
elided_lifetimes_in_paths = "allow"
ellipsis_inclusive_range_patterns = "deny"
explicit_outlives_requirements = "deny"
macro_use_extern_crate = "deny"
meta_variable_misuse = "deny"
missing_copy_implementations = "warn"
missing_debug_implementations = "forbid"
missing_docs = "warn"
non_ascii_idents = "forbid"
non_camel_case_types = "allow"
non_upper_case_globals = "allow"
noop_method_call = "deny"
single_use_lifetimes = "deny"
trivial_bounds = "allow"
trivial_casts = "deny"
trivial_numeric_casts = "deny"
unreachable_pub = "warn"
unsafe_code = "forbid"
unstable_features = "warn"
unused_extern_crates = "warn"
unused_features = "deny"
unused_import_braces = "deny"
unused_labels = "deny"
unused_lifetimes = "deny"
unused_macro_rules = "deny"
unused_qualifications = "deny"
unused_results = "warn"
variant_size_differences = "deny"
[lints.rust.future_incompatible]
level = "deny"
priority = -1
[lints.rust.keyword_idents]
level = "deny"
priority = -1
[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1
[lints.rust.rust_2021_compatibility]
level = "deny"
priority = -1
[lints.rust.unused]
level = "deny"
priority = -1
[profile.dev]
opt-level = 0
lto = false
codegen-units = 16
debug = 1
debug-assertions = true
rpath = false
panic = "unwind"
overflow-checks = true
incremental = true
strip = false
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
debug = 0
debug-assertions = false
rpath = false
panic = "abort"
overflow-checks = true
incremental = false
strip = "symbols"
[profile.test]
opt-level = 0
lto = false
codegen-units = 16
debug = 1
debug-assertions = true
rpath = false
overflow-checks = true
incremental = true
strip = false