remove zyl.gay blog-image helper

This commit is contained in:
zyl 2025-01-14 23:05:01 -08:00
parent 1d502881f6
commit cb0c4e7391
Signed by: zyl
SSH key fingerprint: SHA256:uxxbSXbdroP/OnKBGnEDk5q7EKB2razvstC/KmzdXXs

View file

@ -261,10 +261,28 @@ impl SiteBuilder {
Ok(()) Ok(())
}), }),
element!("img", |el| {
if let Some(mut src) = el.get_attribute("src") {
if let Some((command, new_src)) = src.split_once('$') {
let mut new_src = new_src.to_string();
#[allow(clippy::single_match)]
match command {
"cdn" => {
new_src = self.site.config.cdn_url(&new_src)?.to_string();
}
_ => new_src = src,
}
src = new_src;
el.set_attribute("src", &src)?;
}
}
Ok(())
}),
element!("a", |el| { element!("a", |el| {
if let Some(mut href) = el.get_attribute("href") { if let Some(mut href) = el.get_attribute("href") {
if let Some((command, mut new_href)) = href.split_once('$') { if let Some((command, new_href)) = href.split_once('$') {
#[allow(clippy::single_match)] let mut new_href = new_href.to_string();
match command { match command {
"me" => { "me" => {
el.set_attribute( el.set_attribute(
@ -273,11 +291,14 @@ impl SiteBuilder {
+ " me"), + " me"),
)?; )?;
} }
"cdn" => {
new_href = self.site.config.cdn_url(&new_href)?.to_string();
}
_ => { _ => {
new_href = &href; new_href = href;
} }
} }
href = new_href.to_string(); href = new_href;
el.set_attribute("href", &href)?; el.set_attribute("href", &href)?;
} }
if let Ok(url) = Url::parse(&href) { if let Ok(url) = Url::parse(&href) {
@ -294,47 +315,6 @@ impl SiteBuilder {
} }
} }
Ok(())
}),
element!("md", |el| {
el.remove();
let class = el.get_attribute("class");
let md_type = el
.get_attribute("type")
.ok_or_eyre("missing type attribute on markdown tag")?;
if md_type == "blog-image" {
let mut src = el
.get_attribute("src")
.ok_or_eyre("missing src attribute")?;
if src.starts_with("cdn$") {
src = self.site.config.cdn_url(&src[4..])?.to_string();
}
let class = format!("image {}", class.unwrap_or_default());
let content = el
.get_attribute("content")
.ok_or_eyre("missing content attribute")?;
el.replace(
&format!(
r#"
<div class="{class}">
<a href="{src}">
<img src="{src}">
</a>
<span>{content}</span>
</div>
"#
),
ContentType::Html,
);
} else {
return Err(eyre!("unknown markdown tag type: {md_type}").into());
}
Ok(()) Ok(())
}), }),
], ],