Replace logger with a real logger

This commit is contained in:
Sofia 2025-02-10 21:47:28 +02:00
parent 0f6cd578b1
commit 10baf12e0e
7 changed files with 304 additions and 136 deletions

261
Cargo.lock generated
View File

@ -12,12 +12,18 @@ dependencies = [
]
[[package]]
name = "ansi_term"
version = "0.11.0"
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
name = "android_system_properties"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
dependencies = [
"winapi",
"libc",
]
[[package]]
@ -69,12 +75,53 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "autocfg"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "bitflags"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
[[package]]
name = "bumpalo"
version = "3.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"
[[package]]
name = "cc"
version = "1.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda"
dependencies = [
"shlex",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
version = "0.4.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"wasm-bindgen",
"windows-targets",
]
[[package]]
name = "clap"
version = "4.5.28"
@ -121,6 +168,12 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
[[package]]
name = "core-foundation-sys"
version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "equivalent"
version = "1.0.1"
@ -145,6 +198,35 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
[[package]]
name = "iana-time-zone"
version = "0.1.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
"windows-core",
]
[[package]]
name = "iana-time-zone-haiku"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
dependencies = [
"cc",
]
[[package]]
name = "indexmap"
version = "2.7.1"
@ -155,18 +237,66 @@ dependencies = [
"hashbrown",
]
[[package]]
name = "is-terminal"
version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37"
dependencies = [
"hermit-abi",
"libc",
"windows-sys",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "js-sys"
version = "0.3.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
dependencies = [
"once_cell",
"wasm-bindgen",
]
[[package]]
name = "libc"
version = "0.2.169"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
[[package]]
name = "log"
version = "0.4.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"
[[package]]
name = "memchr"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "num-traits"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"
[[package]]
name = "pathdiff"
version = "0.2.3"
@ -239,6 +369,12 @@ version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "rustversion"
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"
[[package]]
name = "serde"
version = "1.0.217"
@ -268,6 +404,25 @@ dependencies = [
"serde",
]
[[package]]
name = "shlex"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "stderrlog"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61c910772f992ab17d32d6760e167d2353f4130ed50e796752689556af07dc6b"
dependencies = [
"chrono",
"is-terminal",
"log",
"termcolor",
"thread_local",
]
[[package]]
name = "strsim"
version = "0.11.1"
@ -289,16 +444,36 @@ dependencies = [
name = "teascade-generator"
version = "0.1.0"
dependencies = [
"ansi_term",
"clap",
"log",
"pathdiff",
"pulldown-cmark",
"regex",
"serde",
"serde_derive",
"stderrlog",
"toml",
]
[[package]]
name = "termcolor"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
dependencies = [
"winapi-util",
]
[[package]]
name = "thread_local"
version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
dependencies = [
"cfg-if",
"once_cell",
]
[[package]]
name = "toml"
version = "0.8.20"
@ -352,26 +527,80 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "winapi"
version = "0.3.4"
name = "wasm-bindgen"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3"
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
"cfg-if",
"once_cell",
"rustversion",
"wasm-bindgen-macro",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
name = "wasm-bindgen-backend"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
dependencies = [
"bumpalo",
"log",
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-shared",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
name = "wasm-bindgen-macro"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
dependencies = [
"unicode-ident",
]
[[package]]
name = "winapi-util"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
"windows-sys",
]
[[package]]
name = "windows-core"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-sys"

View File

@ -9,8 +9,9 @@ edition = "2021"
pulldown-cmark = "0.12.2"
toml = "0.8.20"
regex = "1.11.1"
ansi_term = "*"
pathdiff = "0.2.3"
clap = { version = "4.5.28", features = ["derive"] }
serde = "1.0.217"
serde_derive = "1.0.217"
stderrlog = "0.6.0"
log = "*"

View File

@ -8,7 +8,7 @@ use pathdiff;
use crate::config::Config;
use crate::error::Error;
use crate::file_writer;
use crate::logger::{LogLevel, Logger};
use crate::logger::LogLevel;
use crate::options::Options;
use crate::renderer;
use crate::template::Template;
@ -28,8 +28,8 @@ fn fetch_config() -> Result<Config, Error> {
}
}
pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
logger.log(LogLevel::INFO, "Starting build");
pub fn build(opt: &Options) -> Result<(), Error> {
log::info!("Starting build");
let config = fetch_config()?;
if config.global_config.website.use_default_css {
@ -42,7 +42,7 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
.output
.unwrap_or("public".to_owned()),
);
logger.log(LogLevel::DETAIL, format!("Adding {:?}", css_path));
log::debug!("Adding {:?}", css_path);
file_writer::write_file(&css_path, DEFAULT_CSS, opt.overwrite)?;
}
@ -56,11 +56,11 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
.output
.unwrap_or("public".to_owned()),
);
logger.log(LogLevel::DETAIL, format!("Adding {:?}", js_path));
log::debug!("Adding {:?}", js_path);
file_writer::write_file(&js_path, DEFAULT_JS, opt.overwrite)?;
}
logger.log(LogLevel::INFO, "Generating page templates");
log::info!("Generating page templates");
let page_template = Template::new(PAGE_TEMPLATE);
let css_tag_template = Template::new(CSS_TAG);
let js_tag_template = Template::new(JS_TAG);
@ -69,22 +69,19 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
if config.global_config.navbar.is_some() {
let navbar_item_template = Template::new(NAVBAR_ITEM);
let navbar_image_item_template = Template::new(NAVBAR_IMAGE_ITEM);
logger.log(LogLevel::DETAIL, "Rendering Navbar");
log::debug!("Rendering Navbar");
navbar_content =
renderer::render_navbar(&config, navbar_item_template, navbar_image_item_template)?;
}
logger.log(LogLevel::INFO, "Rendering");
log::info!("Rendering");
let configs = config.get_configs()?;
let mut renders = Vec::new();
for config in configs.clone() {
logger.log(
LogLevel::DETAILER,
format!("Setting up to render {}", config.page_config.page.html_path),
);
log::trace!("Setting up to render {}", config.page_config.page.html_path);
// Generate CSS tagstags
logger.log(LogLevel::DETAILER, "Generating CSS tags");
log::trace!("Generating CSS tags");
let mut css_string = String::new();
let css_list = config.global_config.website.css.clone();
@ -101,7 +98,7 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
}
// Generate JS tags
logger.log(LogLevel::DETAILER, "Generating JS tags");
log::trace!("Generating JS tags");
let mut js_string = String::new();
let js_list = config.global_config.website.javascript.clone();
@ -118,11 +115,10 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
}
// Generate and render Injections
logger.log(LogLevel::DETAILER, "Rendering injections.");
let (before_navbar, before_content, after_content) =
renderer::render_injections(&logger, &config)?;
log::trace!("Rendering injections.");
let (before_navbar, before_content, after_content) = renderer::render_injections(&config)?;
logger.log(LogLevel::DETAILER, "Rendering");
log::trace!("Rendering");
let markdown = renderer::render_markdown_content(&config)?;
let markdown = renderer::render_custom_markdown(markdown)?;
@ -139,13 +135,10 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
let rendered = page_template.render(&data);
renders.push(rendered);
logger.log(
LogLevel::DETAIL,
format!("Rendered {}", config.page_config.page.html_path),
);
log::debug!("Rendered {}", config.page_config.page.html_path);
}
logger.log(LogLevel::INFO, "Writing");
log::info!("Writing");
for (idx, config) in configs.clone().iter().enumerate() {
let html_path = config.clone().page_config.page.html_path;
let html_path = file_writer::add_to_beginning(
@ -157,7 +150,7 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
.output
.unwrap_or("public".to_owned()),
);
logger.log(LogLevel::DETAIL, format!("Writing {:?}", html_path));
log::debug!("Writing {:?}", html_path);
if let Some(render) = renders.get(idx) {
file_writer::write_file(&html_path, render.clone(), opt.overwrite)?;
} else {
@ -168,7 +161,7 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
}
}
logger.log(LogLevel::INFO, "Copying resources");
log::info!("Copying resources");
if let Some(resources) = config.global_config.resources.clone() {
for resource in resources.values() {
let path = Path::new(&resource.source);
@ -187,19 +180,16 @@ pub fn build(logger: &Logger, opt: &Options) -> Result<(), Error> {
PathBuf::from(resource.source.clone()),
dest,
) {
Ok(_) => logger.log(LogLevel::DETAIL, "Resource successfully copied."),
Ok(_) => log::debug!("Resource successfully copied."),
Err(err) => return Err(err),
}
} else {
logger.log(
LogLevel::WARNING,
format!("Resource does not exist: {:?}", path),
);
log::warn!("Resource does not exist: {:?}", path);
}
}
}
logger.log(LogLevel::INFO, "Done!");
log::info!("Done!");
Ok(())
}

View File

@ -1,28 +1,3 @@
use ansi_term::Color::{Blue, Cyan, Red, Yellow};
pub struct Logger {
log_level: LogLevel,
}
impl Logger {
pub fn new(log_level: LogLevel) -> Logger {
Logger { log_level }
}
pub fn log<T: Into<String>>(&self, log_level: LogLevel, message: T) {
if self.log_level.clone() as i32 >= log_level.clone() as i32 {
match log_level {
LogLevel::QUIET => (),
LogLevel::SEVERE => eprintln!("{}: {}", Red.paint("[SEVERE]"), message.into()),
LogLevel::INFO => println!("{}: {}", Cyan.paint("[INFO]"), message.into()),
LogLevel::WARNING => println!("{}: {}", Yellow.paint("[WARNING]"), message.into()),
LogLevel::DETAIL => println!("{}: {}", Blue.paint("[DETAIL]"), message.into()),
LogLevel::DETAILER => println!("{}: {}", Blue.paint("[DETAILER]"), message.into()),
}
}
}
}
#[allow(dead_code)]
#[derive(Clone, Debug)]
#[repr(u8)]

View File

@ -16,7 +16,6 @@ use std::process::exit;
use clap::Parser;
use crate::config_toml::{GlobalConfigToml, NavbarConfig, NavbarItem, WebsiteConfig};
use crate::logger::{LogLevel, Logger};
use crate::options::{Options, Subcommands};
//TODO: Custom markdown
@ -31,36 +30,39 @@ fn run() -> Result<(), ()> {
let opt: Options = Options::parse();
let log_level = (3 - opt.quiet as i8 + opt.verbose as i8).max(0).min(5);
let logger = Logger::new(LogLevel::from(log_level as u8));
stderrlog::new()
.module(module_path!())
.verbosity(log_level as usize)
.timestamp(stderrlog::Timestamp::Second)
.init()
.unwrap();
match opt.clone().cmd {
Subcommands::Build => match builder::build(&logger, &opt) {
Subcommands::Build => match builder::build(&opt) {
Ok(_) => {
logger.log(LogLevel::DETAILER, "Building finished successfully.");
log::trace!("Building finished successfully.");
Ok(())
}
Err(err) => {
logger.log(err.severity(), err.description());
logger.log(LogLevel::SEVERE, "Aborting building due to error.");
log::error!("{}", err.description());
log::error!("Aborting building due to error.");
Err(())
}
},
Subcommands::New(new_opt) => match new_page::generate_new_page(&logger, &opt, &new_opt) {
Subcommands::New(new_opt) => match new_page::generate_new_page(&opt, &new_opt) {
Ok(_) => {
logger.log(
LogLevel::DETAILER,
"Generating the new page finished successfully.",
);
log::trace!("Generating the new page finished successfully.");
Ok(())
}
Err(err) => {
logger.log(err.severity(), err.description());
logger.log(LogLevel::SEVERE, "Aborting building due to error.");
log::error!("{}", err.description());
log::error!("Aborting building due to error.");
Err(())
}
},
Subcommands::Initialize(init_opt) => {
logger.log(LogLevel::DETAIL, "Generating config.toml");
log::debug!("Generating config.toml");
let mut navbar = None;
if !init_opt.no_default_navbar {
@ -115,14 +117,11 @@ fn run() -> Result<(), ()> {
match file_writer::write_toml(&PathBuf::from("config.toml"), &config, opt.overwrite) {
Ok(_) => {
logger.log(LogLevel::INFO, "Done!");
log::info!("Done!");
Ok(())
}
Err(err) => {
logger.log(
err.severity(),
format!("Initialization failed: {}", err.description()),
);
log::error!("Initialization failed: {}", err.description());
Err(())
}
}

View File

@ -3,7 +3,7 @@ use std::path::PathBuf;
use crate::config_toml::{GlobalConfigToml, PageConfig, PageConfigToml};
use crate::error::Error;
use crate::file_writer;
use crate::logger::{LogLevel, Logger};
use crate::logger::LogLevel;
use crate::options::{NewOpt, Options};
use pathdiff;
@ -16,11 +16,8 @@ This is the markdown file, where you will insert this page's contents.
See [CommonMark](http://commonmark.org/help/) for reference."#;
pub fn generate_new_page(logger: &Logger, opt: &Options, new_opt: &NewOpt) -> Result<(), Error> {
logger.log(
LogLevel::DETAILER,
format!("Starting to create paths for given files"),
);
pub fn generate_new_page(opt: &Options, new_opt: &NewOpt) -> Result<(), Error> {
log::trace!("Starting to create paths for given files");
let toml_path = ensure_extension(new_opt.toml_path.clone(), "toml", false)?;
@ -31,18 +28,13 @@ pub fn generate_new_page(logger: &Logger, opt: &Options, new_opt: &NewOpt) -> Re
markdown_path = ensure_extension(toml_path.clone(), "md", true)?;
}
logger.log(
LogLevel::INFO,
format!(
"Creating page config at {:?} and markdown at {:?}",
toml_path, markdown_path
),
log::info!(
"Creating page config at {:?} and markdown at {:?}",
toml_path,
markdown_path
);
logger.log(
LogLevel::DETAIL,
format!("Creating a new .toml file at {:?}", toml_path),
);
log::debug!("Creating a new .toml file at {:?}", toml_path);
let html_path;
if let Some(path) = new_opt.html_path.clone() {
@ -66,10 +58,7 @@ pub fn generate_new_page(logger: &Logger, opt: &Options, new_opt: &NewOpt) -> Re
}
}
logger.log(
LogLevel::DETAILER,
format!("Generating page config.toml contents"),
);
log::trace!("Generating page config.toml contents");
let page_config = PageConfigToml {
page: PageConfig {
@ -87,10 +76,7 @@ pub fn generate_new_page(logger: &Logger, opt: &Options, new_opt: &NewOpt) -> Re
};
match file_writer::write_toml(&toml_path, &page_config, opt.overwrite) {
Ok(_) => logger.log(
LogLevel::INFO,
format!("{:?} created successfully", toml_path),
),
Ok(_) => log::info!("{:?} created successfully", toml_path),
Err(err) => {
return Err(Error::new(
err.severity(),
@ -99,10 +85,7 @@ pub fn generate_new_page(logger: &Logger, opt: &Options, new_opt: &NewOpt) -> Re
}
}
logger.log(
LogLevel::DETAIL,
format!("Creating a new .md file at {:?}", markdown_path),
);
log::debug!("Creating a new .md file at {:?}", markdown_path);
file_writer::write_file(&markdown_path, PLACEHOLDER_MARKDOWN, opt.overwrite)?;
@ -111,20 +94,14 @@ pub fn generate_new_page(logger: &Logger, opt: &Options, new_opt: &NewOpt) -> Re
return Err(Error::new(LogLevel::SEVERE, "Add --overwrite flag to overwrite config.toml, or --no-modify-config to not modify config.toml automatically."));
}
logger.log(
LogLevel::INFO,
format!("Adding page config path to config.toml"),
);
log::info!("Adding page config path to config.toml");
let mut config = GlobalConfigToml::get_config()?;
config
.website
.built_pages
.push(toml_path.to_str().unwrap().to_owned());
logger.log(
LogLevel::DETAIL,
format!("Re-serializing config and writing it"),
);
log::debug!("Re-serializing config and writing it");
match file_writer::write_toml(&PathBuf::from("config.toml"), &config, opt.overwrite) {
Ok(_) => {}

View File

@ -8,7 +8,7 @@ use regex::{Captures, Regex};
use crate::config::{Config, SinglePageConfigs};
use crate::config_toml::InjectionToml;
use crate::error::Error;
use crate::logger::{LogLevel, Logger};
use crate::logger::LogLevel;
use crate::template::Template;
fn get_file_contents(path: Option<String>) -> Result<String, Error> {
@ -28,10 +28,7 @@ fn get_file_contents(path: Option<String>) -> Result<String, Error> {
}
}
pub fn render_injections(
logger: &Logger,
config: &SinglePageConfigs,
) -> Result<(String, String, String), Error> {
pub fn render_injections(config: &SinglePageConfigs) -> Result<(String, String, String), Error> {
let before_navbar_url = match config.page_config.page.before_navbar_url.clone() {
Some(url) => Some(url),
None => config.global_config.website.before_navbar_url.clone(),
@ -48,21 +45,21 @@ pub fn render_injections(
let before_navbar = match get_file_contents(before_navbar_url) {
Ok(content) => content,
Err(error) => {
logger.log(error.severity(), error.description());
log::error!("{}", error.description());
String::new()
}
};
let before_content = match get_file_contents(before_content_url) {
Ok(content) => content,
Err(error) => {
logger.log(error.severity(), error.description());
log::error!("{}", error.description());
String::new()
}
};
let after_content = match get_file_contents(after_content_url) {
Ok(content) => content,
Err(error) => {
logger.log(error.severity(), error.description());
log::error!("{}", error.description());
String::new()
}
};