diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs
index e170e2fc..a7c99225 100644
--- a/src/renderer/html_handlebars/hbs_renderer.rs
+++ b/src/renderer/html_handlebars/hbs_renderer.rs
@@ -275,7 +275,8 @@ impl HtmlHandlebars {
"FontAwesome/fonts/FontAwesome.ttf",
theme::FONT_AWESOME_TTF,
)?;
- if html_config.copy_fonts {
+ // Don't copy the stock fonts if the user has specified their own fonts to use.
+ if html_config.copy_fonts && theme.fonts_css.is_none() {
write_file(destination, "fonts/fonts.css", theme::fonts::CSS)?;
for (file_name, contents) in theme::fonts::LICENSES.iter() {
write_file(destination, file_name, contents)?;
@@ -291,20 +292,13 @@ impl HtmlHandlebars {
}
if let Some(fonts_css) = &theme.fonts_css {
if !fonts_css.is_empty() {
- if html_config.copy_fonts {
- warn!(
- "output.html.copy_fonts is deprecated.\n\
- Set copy_fonts=false and ensure the fonts you want are in \
- the `theme/fonts/` directory."
- );
- }
write_file(destination, "fonts/fonts.css", &fonts_css)?;
}
}
if !html_config.copy_fonts && theme.fonts_css.is_none() {
warn!(
- "output.html.copy_fonts is deprecated.\n\
- This book appears to have copy_fonts=false without a fonts.css file.\n\
+ "output.html.copy-fonts is deprecated.\n\
+ This book appears to have copy-fonts=false in book.toml without a fonts.css file.\n\
Add an empty `theme/fonts/fonts.css` file to squelch this warning."
);
}
diff --git a/tests/rendered_output.rs b/tests/rendered_output.rs
index a279c4f8..12999b44 100644
--- a/tests/rendered_output.rs
+++ b/tests/rendered_output.rs
@@ -891,8 +891,8 @@ fn custom_fonts() {
assert_eq!(actual_files(&p.join("book/fonts")), &builtin_fonts);
assert!(has_fonts_css(p));
- // Mixed with copy_fonts=true
- // This should generate a deprecation warning.
+ // Mixed with copy-fonts=true
+ // Should ignore the copy-fonts setting since the user has provided their own fonts.css.
let temp = TempFileBuilder::new().prefix("mdbook").tempdir().unwrap();
let p = temp.path();
MDBook::init(p).build().unwrap();
@@ -900,10 +900,10 @@ fn custom_fonts() {
write_file(&p.join("theme/fonts"), "myfont.woff", b"").unwrap();
MDBook::load(p).unwrap().build().unwrap();
assert!(has_fonts_css(p));
- let mut expected = Vec::from(builtin_fonts);
- expected.push("myfont.woff");
- expected.sort();
- assert_eq!(actual_files(&p.join("book/fonts")), expected.as_slice());
+ assert_eq!(
+ actual_files(&p.join("book/fonts")),
+ ["fonts.css", "myfont.woff"]
+ );
// copy-fonts=false, no theme
// This should generate a deprecation warning.