From 275084f025b81da78f2a6c5cb23bc4a846a7b909 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 10 Feb 2026 04:07:12 +0800 Subject: Refactor converter and replace built_res with resource generator --- converter/src/syntax_checker.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'converter/src/syntax_checker.rs') diff --git a/converter/src/syntax_checker.rs b/converter/src/syntax_checker.rs index 334fa9d..52021c7 100644 --- a/converter/src/syntax_checker.rs +++ b/converter/src/syntax_checker.rs @@ -1,3 +1,5 @@ +use regex::Regex; + use crate::error::Exit; pub fn check_markdown_syntax(i: &String) -> Result<(), Exit> { @@ -199,3 +201,21 @@ pub fn check_markdown_syntax(i: &String) -> Result<(), Exit> { Ok(()) } + +/// Check for duplicate markers +pub fn check_duplicate_marker(input: &String) -> Result<(), Exit> { + let mut seen = std::collections::HashSet::new(); + let heading_re = Regex::new(r"^(#{1,5})\s+(.+)$").unwrap(); + + for line in input.lines() { + if let Some(caps) = heading_re.captures(line) { + let heading_text = caps[2].trim().to_string(); + if seen.contains(&heading_text) { + return Err(Exit::DuplicateMarker(heading_text)); + } + seen.insert(heading_text); + } + } + + Ok(()) +} -- cgit