diff options
| author | Xe <me@christine.website> | 2022-07-24 17:32:34 +0000 |
|---|---|---|
| committer | Xe <me@christine.website> | 2022-07-24 17:32:34 +0000 |
| commit | e9733ce6844894f4f1f30948611a57a02c6766ec (patch) | |
| tree | 7206f0b26f610e8018ffe345b093023c9f475702 | |
| parent | 57b2b0a5e321c758be687393ff94e5f429b1fc9e (diff) | |
| download | xesite-e9733ce6844894f4f1f30948611a57a02c6766ec.tar.xz xesite-e9733ce6844894f4f1f30948611a57a02c6766ec.zip | |
add xeblog-sticker element
Signed-off-by: Xe <me@christine.website>
| -rw-r--r-- | src/app/markdown.rs | 10 | ||||
| -rw-r--r-- | src/tmpl/mod.rs | 12 |
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"}; + } + } + } +} |
