diff --git a/guide/src/format/config.md b/guide/src/format/config.md index d9c77e66..65d05d80 100644 --- a/guide/src/format/config.md +++ b/guide/src/format/config.md @@ -224,6 +224,7 @@ Available configuration options for the `[output.html.print]` table: - **enable:** Enable print support. When `false`, all print support will not be rendered. Defaults to `true`. +- **page-break** Insert page breaks between chapters. Defaults to `true`. Available configuration options for the `[output.html.fold]` table: @@ -292,6 +293,7 @@ input-404 = "not-found.md" [output.html.print] enable = true +page-break = true [output.html.fold] enable = false diff --git a/src/config.rs b/src/config.rs index be7dae62..d196cf99 100644 --- a/src/config.rs +++ b/src/config.rs @@ -580,11 +580,16 @@ impl HtmlConfig { pub struct Print { /// Whether print support is enabled. pub enable: bool, + /// Insert page breaks between chapters. Default: `true`. + pub page_break: bool, } impl Default for Print { fn default() -> Self { - Self { enable: true } + Self { + enable: true, + page_break: true, + } } } diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 66572d04..575c0040 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -45,6 +45,12 @@ impl HtmlHandlebars { ctx.html_config.curly_quotes, Some(&path), ); + if !ctx.is_index && ctx.html_config.print.page_break { + // Add page break between chapters + // See https://developer.mozilla.org/en-US/docs/Web/CSS/break-before and https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-before + // Add both two CSS properties because of the compatibility issue + print_content.push_str(r#"
"#); + } print_content.push_str(&fixed_content); // Update the context with data for this file