rustyphoenixlecture 1.7.0

This project aims to provide a simple a powerfull lecture compilation to generate html web sites
/***************************************
	Auteur : Pierre Aubert
	Mail : pierre.aubert@lapp.in2p3.fr
	Licence : CeCILL-C
****************************************/

use std::path::PathBuf;

use clap::Parser;

mod pstrbuffer;
mod phighlighter;
mod pinvitation;
mod pcontent;
mod ptimetable;
mod plectureparser;
mod lecture_config;
mod plecture;

use crate::lecture_config::{
	LectureConfig,
	load_lecture_config
};

use crate::plecture::create_lecture_website;

/// Arguments given to our program
#[derive(Debug, Parser)]
#[command(version, about)]
struct Args {
	///Configuration TOML file to set the lecture website
	#[arg(short, long)]
	config: String,
	///Output directory where to generate the lectuer website
	#[arg(short, long, default_value = "./output_lecture")]
	output: String,
}

///Create the full website
fn create_full_website(args: &Args){
	let config: LectureConfig = match load_lecture_config(&args.config) {
		Ok(conf) => conf,
		Err(err) => panic!("Cannot load lecture configuration {}", err),
	};
	create_lecture_website(&config, &PathBuf::from(&args.output));
}

fn main() {
	// Parse CLI arguments
	let args = Args::parse();
	create_full_website(&args);
}


#[cfg(test)]
mod tests{
	use super::*;
	
	///Test the creation of the full website
	#[test]
	fn test_create_full_website(){
		create_full_website(&Args { config: String::from("tests/lecture.toml"), output: String::from("target/test_base_lecture") });
		// assert!(false);
	}
}