|
|
|
@ -9,12 +9,13 @@ use askama_actix::Template;
|
|
|
|
use askama_actix::TemplateToResponse;
|
|
|
|
use askama_actix::TemplateToResponse;
|
|
|
|
|
|
|
|
|
|
|
|
use crate::commons::AppData;
|
|
|
|
use crate::commons::AppData;
|
|
|
|
use crate::database::DatabaseConnection;
|
|
|
|
//use crate::database::DatabaseConnection;
|
|
|
|
|
|
|
|
|
|
|
|
#[derive(Template)]
|
|
|
|
#[derive(Template)]
|
|
|
|
#[template(path = "page.html")]
|
|
|
|
#[template(path = "page.html")]
|
|
|
|
pub struct PageTemplate {
|
|
|
|
pub struct PageTemplate {
|
|
|
|
pub name: String,
|
|
|
|
pub name: String,
|
|
|
|
|
|
|
|
pub root: String,
|
|
|
|
pub md: String,
|
|
|
|
pub md: String,
|
|
|
|
pub init: String,
|
|
|
|
pub init: String,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -23,13 +24,14 @@ pub struct PageTemplate {
|
|
|
|
async fn page(path: web::Path<(String,)>, data: web::Data<AppData>) -> impl Responder {
|
|
|
|
async fn page(path: web::Path<(String,)>, data: web::Data<AppData>) -> impl Responder {
|
|
|
|
let pagename = &path.0;
|
|
|
|
let pagename = &path.0;
|
|
|
|
let name = data.name.to_owned() + " " + pagename.as_str();
|
|
|
|
let name = data.name.to_owned() + " " + pagename.as_str();
|
|
|
|
|
|
|
|
let root = data.root.to_owned();
|
|
|
|
let filename = String::from("pages/") + pagename.as_str() + ".md";
|
|
|
|
let filename = String::from("pages/") + pagename.as_str() + ".md";
|
|
|
|
let md = match fs::read_to_string(filename) {
|
|
|
|
let md = match fs::read_to_string(filename) {
|
|
|
|
Ok(txt) => txt,
|
|
|
|
Ok(txt) => txt,
|
|
|
|
Err(_) => String::from("# Nouvelle page"),
|
|
|
|
Err(_) => String::from("# Nouvelle page"),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
let init = String::from("init();");
|
|
|
|
let init = String::from("init();");
|
|
|
|
PageTemplate { name, md, init }.to_response()
|
|
|
|
PageTemplate { name, root, md, init }.to_response()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[put("/page/{page}")]
|
|
|
|
#[put("/page/{page}")]
|
|
|
|
|