1
Fork 0
mirror of https://github.com/RGBCube/rgbcube.github.io synced 2025-05-14 05:54:58 +00:00
rgbcube.github.io/src/page/mod.rs
2023-12-28 11:32:22 +03:00

69 lines
1.6 KiB
Rust

pub mod cube;
use std::sync::LazyLock;
use cargo_toml::Manifest;
use maud::{
html,
Markup,
DOCTYPE,
};
use crate::asset;
static MANIFEST: LazyLock<Manifest> =
LazyLock::new(|| Manifest::from_str(&embed::string!("../../Cargo.toml")).unwrap());
fn property(name: &str, content: &str) -> Markup {
html! {
meta property=(name) content=(content);
}
}
fn pname(name: &str, content: &str) -> Markup {
html! {
meta name=(name) content=(content);
}
}
pub(crate) fn create(head: Markup, body: Markup) -> Markup {
html! {
(DOCTYPE)
head {
meta charset="UTF-8";
(pname("viewport", "width=device-width, initial-scale=1.0"))
(property("og:type", "website"))
@let name = "RGBCube";
title { (name) }
(pname("author", name))
(property("og:site_name", name))
(property("og:title", name))
@let description = MANIFEST.package.as_ref().unwrap().description().unwrap();
(pname("description", description))
(property("og:description", description))
link rel="icon" href=(asset!("icon.gif")) type="image/gif";
(property("og:image", "thumbnail.png"))
(property("og:image:type", "image/png"))
(property("og:image:height", "1080"))
(property("og:image:width", "600"))
@let url = MANIFEST.package.as_ref().unwrap().homepage().unwrap();
(property("og:url", url))
link rel="canonical" href=(url);
(head)
}
body {
(body)
}
}
}