teascade-generator/src/main.rs

55 lines
1.5 KiB
Rust

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!");
}