aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorXe <me@christine.website>2022-07-24 17:32:34 +0000
committerXe <me@christine.website>2022-07-24 17:32:34 +0000
commite9733ce6844894f4f1f30948611a57a02c6766ec (patch)
tree7206f0b26f610e8018ffe345b093023c9f475702 /src
parent57b2b0a5e321c758be687393ff94e5f429b1fc9e (diff)
downloadxesite-e9733ce6844894f4f1f30948611a57a02c6766ec.tar.xz
xesite-e9733ce6844894f4f1f30948611a57a02c6766ec.zip
add xeblog-sticker element
Signed-off-by: Xe <me@christine.website>
Diffstat (limited to 'src')
-rw-r--r--src/app/markdown.rs10
-rw-r--r--src/tmpl/mod.rs12
2 files changed, 21 insertions, 1 deletions
diff --git a/src/app/markdown.rs b/src/app/markdown.rs
index d73a5c5..dee4eef 100644
--- a/src/app/markdown.rs
+++ b/src/app/markdown.rs
@@ -107,7 +107,15 @@ pub fn render(cfg: Arc<Config>, inp: &str) -> Result<String> {
el.replace(&crate::tmpl::xeblog_salary_history(cfg.clone()).0, ContentType::Html);
Ok(())
- })
+ }),
+ element!("xeblog-sticker", |el| {
+ let name = el.get_attribute("name").expect("wanted xeblog-sticker to contain name");
+ let name_lower = name.clone().to_lowercase();
+ let mood = el.get_attribute("mood").expect("wanted xeblog-sticker to contain mood");
+ el.replace(&crate::tmpl::xeblog_sticker(name, mood).0, ContentType::Html);
+
+ Ok(())
+ }),
],
..RewriteStrSettings::default()
}).unwrap();
diff --git a/src/tmpl/mod.rs b/src/tmpl/mod.rs
index 5391e9f..08ab090 100644
--- a/src/tmpl/mod.rs
+++ b/src/tmpl/mod.rs
@@ -56,3 +56,15 @@ pub fn xeblog_conv(name: String, mood: String, body: Markup) -> Markup {
}
}
}
+
+pub fn xeblog_sticker(name: String, mood: String) -> Markup {
+ html! {
+ center {
+ picture {
+ source type="image/avif" srcset={"https://cdn.xeiaso.net/file/christine-static/stickers/" (name_lower) "/" (mood) ".avif"};
+ source type="image/webp" srcset={"https://cdn.xeiaso.net/file/christine-static/stickers/" (name_lower) "/" (mood) ".webp"};
+ img alt={(name) " is " (mood)} src={"https://cdn.xeiaso.net/file/christine-static/stickers/" (name_lower) "/" (mood) ".png"};
+ }
+ }
+ }
+}