Add a warning when a Font Awesome font is missing

With the migration to Font Awesome 6, I'm running into books where the
icon names are missing or have changed. This adds a warning to help
identify those situations.
This commit is contained in:
Eric Huss 2025-10-30 19:30:01 -07:00
parent 7e5fa3565b
commit b3bd103742
2 changed files with 21 additions and 10 deletions

View file

@ -977,19 +977,29 @@ where
new_classes += class; new_classes += class;
} }
} }
if icon.is_empty() {
continue;
}
if !icon.is_empty() match fa::svg(type_, &icon) {
&& let Ok(svg) = fa::svg(type_, &icon) Ok(svg) => {
{ let mut span = Element::new("span");
let mut span = Element::new("span"); span.insert_attr("class", new_classes.into());
span.insert_attr("class", new_classes.into()); for (name, value) in &i_el.attrs {
for (name, value) in &i_el.attrs { if *name != attr_qual_name!("class") {
if *name != attr_qual_name!("class") { span.attrs.insert(name.clone(), value.clone());
span.attrs.insert(name.clone(), value.clone()); }
} }
*node.value() = Node::Element(span);
node.append(Node::RawData(svg.into()));
}
Err(e) => {
warn!(
"failed to find Font Awesome icon for icon `{icon}` \
with type `{type_}` in `{}`: {e}",
self.options.path.display()
);
} }
*node.value() = Node::Element(span);
node.append(Node::RawData(svg.into()));
} }
} }
} }

View file

@ -52,6 +52,7 @@ fn fontawesome() {
cmd.expect_stderr(str![[r#" cmd.expect_stderr(str![[r#"
INFO Book building has started INFO Book building has started
INFO Running the html backend INFO Running the html backend
WARN failed to find Font Awesome icon for icon `does-not-exist` with type `regular` in `fa.md`: Invalid Font Awesome icon name: visit https://fontawesome.com/icons?d=gallery&m=free to see valid names
INFO HTML book written to `[ROOT]/book` INFO HTML book written to `[ROOT]/book`
"#]]); "#]]);