add content type, allowing firefox to see source code of pages
All checks were successful
ci/woodpecker/push/publish Pipeline was successful

This commit is contained in:
Mylloon 2023-10-24 13:27:02 +02:00
parent 6fe2ec2df3
commit 49af05a565
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
9 changed files with 55 additions and 26 deletions

View file

@ -1,5 +1,9 @@
use actix_web::{
http::header::{self, ContentType, TryIntoHeaderValue},
HttpRequest, HttpResponse, Responder,
};
use cached::proc_macro::cached;
use reqwest::Client;
use reqwest::{Client, StatusCode};
use crate::config::FileConfig;
@ -26,3 +30,18 @@ pub fn get_url(fc: FileConfig) -> String {
pub fn make_kw(list: &[&str]) -> Option<String> {
Some(list.join(", "))
}
/// Send HTML file
pub struct Html(pub String);
impl Responder for Html {
type Body = String;
fn respond_to(self, _req: &HttpRequest) -> HttpResponse<Self::Body> {
let mut res = HttpResponse::with_body(StatusCode::OK, self.0);
res.headers_mut().insert(
header::CONTENT_TYPE,
ContentType::html().try_into_value().unwrap(),
);
res
}
}

View file

@ -1,5 +1,5 @@
use crate::{config::Config, misc::utils::get_url, template::Infos};
use actix_web::{get, routes, web, HttpResponse, Responder};
use actix_web::{get, http::header::ContentType, routes, web, HttpResponse, Responder};
use cached::proc_macro::once;
use ramhorns::Content;
@ -7,7 +7,9 @@ use ramhorns::Content;
#[get("/.well-known/security.txt")]
#[get("/security.txt")]
async fn security(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_securitytxt(config.get_ref().to_owned()))
HttpResponse::Ok()
.content_type(ContentType::plaintext())
.body(build_securitytxt(config.get_ref().to_owned()))
}
#[derive(Content, Debug)]
@ -32,7 +34,9 @@ fn build_securitytxt(config: Config) -> String {
#[get("/humans.txt")]
async fn humans(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_humanstxt(config.get_ref().to_owned()))
HttpResponse::Ok()
.content_type(ContentType::plaintext())
.body(build_humanstxt(config.get_ref().to_owned()))
}
#[derive(Content, Debug)]
@ -57,7 +61,9 @@ fn build_humanstxt(config: Config) -> String {
#[get("/robots.txt")]
async fn robots() -> impl Responder {
HttpResponse::Ok().body(build_robotstxt())
HttpResponse::Ok()
.content_type(ContentType::plaintext())
.body(build_robotstxt())
}
#[once]

View file

@ -21,7 +21,7 @@ use crate::{
markdown::{
get_metadata, get_options, read_file, File, FileMetadataBlog, TypeFileMetadata,
},
utils::{get_url, make_kw},
utils::{get_url, make_kw, Html},
},
template::{Infos, NavBar},
};
@ -30,7 +30,7 @@ const MIME_TYPE_RSS: &str = "application/rss+xml";
#[get("/blog")]
async fn index(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_index(config.get_ref().to_owned()))
Html(build_index(config.get_ref().to_owned()))
}
#[derive(Content, Debug)]
@ -185,7 +185,7 @@ struct BlogPostTemplate {
#[get("/blog/p/{id}")]
async fn page(path: web::Path<(String,)>, config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_post(path.into_inner().0, config.get_ref().to_owned()))
Html(build_post(path.into_inner().0, config.get_ref().to_owned()))
}
fn build_post(file: String, config: Config) -> String {

View file

@ -1,4 +1,4 @@
use actix_web::{get, routes, web, HttpRequest, HttpResponse, Responder};
use actix_web::{get, routes, web, HttpRequest, Responder};
use cached::proc_macro::once;
use glob::glob;
use ramhorns::Content;
@ -8,7 +8,7 @@ use crate::{
config::Config,
misc::{
markdown::{read_file, File, TypeFileMetadata},
utils::make_kw,
utils::{make_kw, Html},
},
template::{Infos, NavBar},
};
@ -27,7 +27,7 @@ pub fn pages(cfg: &mut web::ServiceConfig) {
#[get("")]
async fn page(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_page(config.get_ref().to_owned()))
Html(build_page(config.get_ref().to_owned()))
}
#[derive(Clone, Debug)]

View file

@ -4,17 +4,17 @@ use crate::{
config::Config,
misc::{
github::{fetch_pr, ProjectState},
utils::make_kw,
utils::{make_kw, Html},
},
template::{Infos, NavBar},
};
use actix_web::{get, web, HttpResponse, Responder};
use actix_web::{get, web, Responder};
use cached::proc_macro::once;
use ramhorns::Content;
#[get("/contrib")]
async fn page(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_page(config.get_ref().to_owned()).await)
Html(build_page(config.get_ref().to_owned()).await)
}
#[derive(Content, Debug)]

View file

@ -1,16 +1,16 @@
use actix_web::{get, web, HttpResponse, Responder};
use actix_web::{get, web, Responder};
use cached::proc_macro::once;
use ramhorns::Content;
use crate::{
config::Config,
misc::utils::make_kw,
misc::utils::{make_kw, Html},
template::{Infos, NavBar},
};
#[get("/")]
async fn page(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_page(config.get_ref().to_owned()))
Html(build_page(config.get_ref().to_owned()))
}
#[derive(Content, Debug)]

View file

@ -1,15 +1,15 @@
use actix_web::{web, HttpResponse, Responder};
use actix_web::{web, Responder};
use cached::proc_macro::once;
use ramhorns::Content;
use crate::{
config::Config,
misc::utils::get_url,
misc::utils::{get_url, Html},
template::{Infos, NavBar},
};
pub async fn page(config: web::Data<Config>) -> impl Responder {
HttpResponse::NotFound().body(build_page(config.get_ref().to_owned()))
Html(build_page(config.get_ref().to_owned()))
}
#[derive(Content, Debug)]

View file

@ -1,4 +1,4 @@
use actix_web::{get, web, HttpResponse, Responder};
use actix_web::{get, web, Responder};
use cached::proc_macro::once;
use glob::glob;
use ramhorns::Content;
@ -7,14 +7,14 @@ use crate::{
config::Config,
misc::{
markdown::{read_file, File, TypeFileMetadata},
utils::make_kw,
utils::{make_kw, Html},
},
template::{Infos, NavBar},
};
#[get("/portfolio")]
async fn page(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_page(config.get_ref().to_owned()))
Html(build_page(config.get_ref().to_owned()))
}
#[derive(Content, Debug)]

View file

@ -1,11 +1,15 @@
use actix_web::{get, web, HttpResponse, Responder};
use actix_web::{get, web, Responder};
use cached::proc_macro::once;
use crate::{config::Config, misc::utils::make_kw, template::Infos};
use crate::{
config::Config,
misc::utils::{make_kw, Html},
template::Infos,
};
#[get("/web3")]
async fn page(config: web::Data<Config>) -> impl Responder {
HttpResponse::Ok().body(build_page(config.get_ref().to_owned()))
Html(build_page(config.get_ref().to_owned()))
}
#[once]