diff --git a/Cargo.lock b/Cargo.lock index 1e3034e..b0b1af1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -554,6 +554,29 @@ dependencies = [ "syn", ] +[[package]] +name = "env_filter" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1180,6 +1203,30 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-static" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -1341,9 +1388,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" @@ -1590,6 +1637,15 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + [[package]] name = "postcard" version = "1.1.1" @@ -1773,9 +1829,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -1785,9 +1841,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -2338,6 +2394,8 @@ name = "typssg" version = "0.1.0" dependencies = [ "clap", + "env_logger", + "log", "typst", "typst-as-lib", "typst-html", diff --git a/Cargo.toml b/Cargo.toml index fd7f150..cabf63d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,8 @@ edition = "2021" [dependencies] clap = { version = "4.6.1", features = ["derive"] } +env_logger = "0.11.10" +log = "0.4.29" typst = "0.14.2" typst-as-lib = { version = "0.15.4", features = ["typst-html", "typst-kit-fonts", "typst-kit-embed-fonts"] } typst-html = "0.14.2" diff --git a/src/lib.rs b/src/lib.rs index efb7942..258b55c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,12 +4,14 @@ use std::path::PathBuf; use typst::ecow::EcoString; use typst_as_lib::{typst_kit_options::TypstKitFontOptions, TypstEngine}; use typst_html::{HtmlAttr, HtmlDocument, HtmlElement, HtmlNode}; +use log::info; pub fn compile_article( article_dir: &PathBuf, prepend: &Option, ) -> Result<(), Box> { + info!("compiling {} ...", article_dir.display()); let template_file = article_dir.join("index.typ"); let output = article_dir.join("index.html"); @@ -183,7 +185,6 @@ pub fn compile_all( compile_all(&path, prepend)?; } else if path.file_name().is_some_and(|n| n == "index.typ") { let dir = path.parent().unwrap().to_path_buf(); - println!("compiling {}", dir.display()); compile_article(&dir, prepend)?; } } diff --git a/src/main.rs b/src/main.rs index 4e5ce4f..6529a6c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,7 @@ use std::path::PathBuf; use clap::Parser; use typssg::{compile_article, compile_all}; +use log::{info, error}; #[derive(Parser)] struct Args { @@ -17,9 +18,11 @@ struct Args { } fn main() { + env_logger::init(); + match env::current_dir() { - Ok(path) => println!("Current working directory: {}", path.display()), - Err(e) => eprintln!("Error getting current directory: {}", e), + Ok(path) => info!("Starting in working directory: {}", path.display()), + Err(e) => error!("Error getting current directory: {}", e), } let args = Args::parse(); @@ -31,7 +34,7 @@ fn main() { }; if let Err(e) = result { - eprintln!("{e}"); + error!("{e}"); std::process::exit(1); } }