From 4116713c1f5b0ee56698bc0489a0491cb1d48a79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Mon, 28 Dec 2020 19:59:57 +0100 Subject: [PATCH] opengraph tags, favicon --- src/main.rs | 19 ++++++++++++++++--- templates/favicon.png | Bin 0 -> 17293 bytes templates/main.html | 6 ++++++ 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 templates/favicon.png diff --git a/src/main.rs b/src/main.rs index 6840c2c..30d8ee2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,6 +24,7 @@ struct State { garden_dir: PathBuf, index_file: Option, title: Option, + server_name: String, tera: Tera, } @@ -84,6 +85,13 @@ fn main() -> anyhow::Result<()> { .short("t") .long("title") .help("Title of this digital garden."), + ) + .arg( + Arg::with_name("SERVER_NAME") + .takes_value(true) + .short("u") + .long("garden-url") + .help("Hostname of the server of this digital garden (for metadata)."), ); let matches = app.get_matches(); @@ -115,6 +123,11 @@ fn main() -> anyhow::Result<()> { garden_dir: directory.to_path_buf(), index_file: matches.value_of("INDEX_FILE").map(|s| s.to_string()), title: matches.value_of("TITLE").map(|s| s.to_string()), + server_name: matches + .value_of("SERVER_NAME") + .map_or(matches.value_of("BIND").unwrap().to_string(), |s| { + s.to_string() + }), tera, }; @@ -167,9 +180,7 @@ async fn render( let full_path = data.garden_dir.join(path.as_str()); // Redirect to ".md" version if requested path matches a .md file without the extension - if !full_path.exists() - && Path::new(&format!("{}.md", full_path.to_str().unwrap())).exists() - { + if !full_path.exists() && Path::new(&format!("{}.md", full_path.to_str().unwrap())).exists() { return Ok(HttpResponse::Found() .header(http::header::LOCATION, format!("{}.md", path.to_string())) .finish()); @@ -241,6 +252,8 @@ async fn render( None => None, }, ); + context.insert("server_name", &data.server_name); + context.insert("path", &path.to_string()); Ok(HttpResponse::Ok().body( data.tera diff --git a/templates/favicon.png b/templates/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d3103c40a37c9d0584018656778eb8d4cba22d34 GIT binary patch literal 17293 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 H)sz1P;0#X* literal 0 HcmV?d00001 diff --git a/templates/main.html b/templates/main.html index ecf9414..b52ccf3 100644 --- a/templates/main.html +++ b/templates/main.html @@ -9,6 +9,12 @@ href="https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,400;0,700;1,400;1,700&family=Montserrat&display=swap" rel="stylesheet"> + + + + + +