extern crate pulldown_cmark; extern crate regex; #[macro_use] extern crate serde_derive; extern crate toml; mod config_toml; mod config; mod template; mod renderer; use config::Config; use template::Template; use std::error::Error; use std::fs::{create_dir_all, File}; use std::io::prelude::*; const DEFAULT_CSS: &'static str = include_str!("templates/default-css.css"); const PAGE_TEMPLATE: &'static str = include_str!("templates/page-template.html"); fn main() { println!("Fetching configs"); let config = match Config::new() { Ok(config) => config, Err(err) => panic!(err.description().to_owned()), }; if config.global_config.website.use_default_css { println!("Adding public/css/default.css"); create_dir_all("public/css").ok(); let mut file = File::create("public/css/default.css").unwrap(); file.write_all(DEFAULT_CSS.as_bytes()).ok(); } println!("Generating page template"); let template = Template::new(PAGE_TEMPLATE); println!("Rendering public/test.html"); let rendered = match config.get_configs_for(0) { Ok(page_config) => template.render(&Template::page_data_from( page_config.clone(), renderer::render_markdown_content(&page_config).unwrap(), )), Err(err) => panic!(err), }; println!("Writing public/test.html"); create_dir_all("public").ok(); let mut file = File::create("public/test.html").unwrap(); file.write_all(rendered.as_bytes()).ok(); println!("Done!"); }