diff --git a/crates/mdbook-html/src/html/tree.rs b/crates/mdbook-html/src/html/tree.rs
index 5a0786ea38..4184740d09 100644
--- a/crates/mdbook-html/src/html/tree.rs
+++ b/crates/mdbook-html/src/html/tree.rs
@@ -977,19 +977,29 @@ where
new_classes += class;
}
}
+ if icon.is_empty() {
+ continue;
+ }
- if !icon.is_empty()
- && let Ok(svg) = fa::svg(type_, &icon)
- {
- let mut span = Element::new("span");
- span.insert_attr("class", new_classes.into());
- for (name, value) in &i_el.attrs {
- if *name != attr_qual_name!("class") {
- span.attrs.insert(name.clone(), value.clone());
+ match fa::svg(type_, &icon) {
+ Ok(svg) => {
+ let mut span = Element::new("span");
+ span.insert_attr("class", new_classes.into());
+ for (name, value) in &i_el.attrs {
+ if *name != attr_qual_name!("class") {
+ 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()));
}
}
}
diff --git a/tests/testsuite/rendering.rs b/tests/testsuite/rendering.rs
index 1f8590ad33..7f2fffa92a 100644
--- a/tests/testsuite/rendering.rs
+++ b/tests/testsuite/rendering.rs
@@ -47,7 +47,17 @@ fn first_chapter_is_copied_as_index_even_if_not_first_elem() {
// Fontawesome `` tag support.
#[test]
fn fontawesome() {
- BookTest::from_dir("rendering/fontawesome").check_all_main_files();
+ BookTest::from_dir("rendering/fontawesome")
+ .run("build", |cmd| {
+ cmd.expect_stderr(str![[r#"
+ INFO Book building has started
+ 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`
+
+"#]]);
+ })
+ .check_all_main_files();
}
// Tests the rendering when setting the default rust edition.
diff --git a/tests/testsuite/rendering/fontawesome/expected/fa.html b/tests/testsuite/rendering/fontawesome/expected/fa.html
index a5cf5bf5ad..a2f9d4236e 100644
--- a/tests/testsuite/rendering/fontawesome/expected/fa.html
+++ b/tests/testsuite/rendering/fontawesome/expected/fa.html
@@ -2,4 +2,5 @@ Chapter 1
-
Some text here.
\ No newline at end of file +Text prevents translation.
+\ No newline at end of file diff --git a/tests/testsuite/rendering/fontawesome/src/fa.md b/tests/testsuite/rendering/fontawesome/src/fa.md index 7605f9465c..2f934da18d 100644 --- a/tests/testsuite/rendering/fontawesome/src/fa.md +++ b/tests/testsuite/rendering/fontawesome/src/fa.md @@ -6,4 +6,6 @@ -Some text here. +Text prevents translation. + +