diff --git a/crates/mdbook-core/src/config.rs b/crates/mdbook-core/src/config.rs index 6f2a8a7a03..6d20e78f09 100644 --- a/crates/mdbook-core/src/config.rs +++ b/crates/mdbook-core/src/config.rs @@ -605,14 +605,25 @@ impl Default for Playground { } /// Configuration for tweaking how the HTML renderer handles code blocks. -#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(default, rename_all = "kebab-case", deny_unknown_fields)] #[non_exhaustive] pub struct Code { + /// Enable or disable the default line hiding with '#' for rust. Default: `true`. + pub default_hidelines: bool, /// A prefix string to hide lines per language (one or more chars). pub hidelines: HashMap, } +impl Default for Code { + fn default() -> Code { + Code { + default_hidelines: true, + hidelines: HashMap::::default(), + } + } +} + /// Configuration of the search functionality of the HTML renderer. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(default, rename_all = "kebab-case", deny_unknown_fields)] diff --git a/crates/mdbook-html/src/html/hide_lines.rs b/crates/mdbook-html/src/html/hide_lines.rs index 6852b6c4c5..ae9effd80e 100644 --- a/crates/mdbook-html/src/html/hide_lines.rs +++ b/crates/mdbook-html/src/html/hide_lines.rs @@ -11,6 +11,7 @@ pub(crate) fn hide_lines( tree: &mut Tree, code_id: NodeId, hidelines: &HashMap, + default_hidelines: bool, ) { let mut node = tree.get_mut(code_id).unwrap(); let el = node.value().as_element().unwrap(); @@ -31,7 +32,7 @@ pub(crate) fn hide_lines( if let Some(mut child) = node.first_child() && let Node::Text(text) = child.value() { - if language == "rust" { + if language == "rust" && default_hidelines { let new_nodes = hide_lines_rust(text); child.detach(); let root = tree.extend_tree(new_nodes); diff --git a/crates/mdbook-html/src/html/tree.rs b/crates/mdbook-html/src/html/tree.rs index ba441f6f91..22e5b4973c 100644 --- a/crates/mdbook-html/src/html/tree.rs +++ b/crates/mdbook-html/src/html/tree.rs @@ -930,7 +930,12 @@ where } for code_id in code_ids { - hide_lines(&mut self.tree, code_id, &self.options.config.code.hidelines); + hide_lines( + &mut self.tree, + code_id, + &self.options.config.code.hidelines, + self.options.config.code.default_hidelines, + ); } }