From f9b1ac220a28baab69beed0c57cf542ec3f73e16 Mon Sep 17 00:00:00 2001 From: A Farzat Date: Thu, 18 Jun 2026 17:21:52 +0300 Subject: Add RenderOptions to pass them to md generators --- src/fenced_md_generator.rs | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'src/fenced_md_generator.rs') diff --git a/src/fenced_md_generator.rs b/src/fenced_md_generator.rs index 078a8cb..41ca8cc 100644 --- a/src/fenced_md_generator.rs +++ b/src/fenced_md_generator.rs @@ -4,13 +4,14 @@ use std::{ }; use crate::{ - logger::Logger, md_generator::generate_markdown_from_paths, + logger::Logger, md_generator::generate_markdown_from_paths, renderer::RenderOptions, util::fence::generate_outer_backticks, }; pub fn generate_fenced_markdown( input: R, mut output: W, + render_options: RenderOptions, root: &Path, origin_base: &Path, project_title: Option<&str>, @@ -20,6 +21,7 @@ pub fn generate_fenced_markdown( generate_markdown_from_paths( input, &mut md_output, + render_options, root, origin_base, project_title, @@ -39,10 +41,11 @@ mod tests { use tempfile::tempdir; use crate::logger::Logger; + use crate::renderer::RenderOptions; use super::generate_fenced_markdown; - fn wrap_with_default_logger( + fn wrap_with_defaults( input: R, output: W, root: &std::path::Path, @@ -50,7 +53,16 @@ mod tests { project_title: Option<&str>, ) -> Result<(), Box> { let logger = Logger::default(); - generate_fenced_markdown(input, output, root, origin_base, project_title, logger) + let render_options = RenderOptions::default(); + generate_fenced_markdown( + input, + output, + render_options, + root, + origin_base, + project_title, + logger, + ) } #[test] @@ -61,8 +73,7 @@ mod tests { let root = temp_dir.path(); let origin_base = temp_dir.path(); - wrap_with_default_logger(input, &mut output, root, origin_base, Some("Project name")) - .unwrap(); + wrap_with_defaults(input, &mut output, root, origin_base, Some("Project name")).unwrap(); assert_eq!( String::from_utf8(output).unwrap(), @@ -80,7 +91,7 @@ mod tests { fs::write(origin_base.join("test_main.rs"), "fn main() {}").unwrap(); - wrap_with_default_logger(input, &mut output, root, origin_base, None).unwrap(); + wrap_with_defaults(input, &mut output, root, origin_base, None).unwrap(); let output_str = String::from_utf8(output).unwrap(); // Must contain outer fence @@ -102,7 +113,7 @@ mod tests { fs::write(origin_base.join("a.rs"), "A").unwrap(); fs::write(origin_base.join("b.rs"), "B").unwrap(); - wrap_with_default_logger(input, &mut output, root, origin_base, None).unwrap(); + wrap_with_defaults(input, &mut output, root, origin_base, None).unwrap(); let output_str = String::from_utf8(output).unwrap(); // Each inner file must have its own language‑specific fence @@ -124,7 +135,7 @@ mod tests { let content = "````"; // 4 backticks fs::write(origin_base.join("backticks.rs"), content).unwrap(); - wrap_with_default_logger(input, &mut output, root, origin_base, None).unwrap(); + wrap_with_defaults(input, &mut output, root, origin_base, None).unwrap(); let output_str = String::from_utf8(output).unwrap(); // Inner fence should be 5 backticks because inner content contains 4 backticks @@ -143,8 +154,7 @@ mod tests { let origin_base = temp_dir.path(); let project_title = "Project ``` name"; - wrap_with_default_logger(input, &mut output, root, origin_base, Some(project_title)) - .unwrap(); + wrap_with_defaults(input, &mut output, root, origin_base, Some(project_title)).unwrap(); let output_str = String::from_utf8(output).unwrap(); // Outer fence must be 4 backticks because the header contains 3 backticks -- cgit v1.3.1