Start a new paragraph when an HTML block tag opens in paste

Found while testing crates/engine/src/cmd/richclip.rs:121-170 (html_to_body, opening-tag handling; is_block at :190)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
NetterSilver
2026-10-28 13:44:26 +01:00
co-authored by Claude Haiku 5.5
parent 6d09d3770f
commit fd102fb47b
+12
View File
@@ -123,6 +123,9 @@ pub fn html_to_body(html: &str) -> Option<TextBody> {
}
continue;
}
if is_block(&name) {
new_para(&mut paragraphs);
}
if is_break(&name) {
new_para(&mut paragraphs);
continue;
@@ -368,6 +371,15 @@ fn fold(s: &str) -> String {
mod tests {
use super::*;
#[test]
fn text_before_opening_block_tag_is_separate_paragraph() {
for tag in ["div", "p", "li", "h1"] {
let body = html_to_body(&format!("Hello<{tag}>world</{tag}>")).unwrap();
let texts: Vec<String> = body.paragraphs.iter().map(|p| p.runs.iter().map(|r| r.text.as_str()).collect()).collect();
assert_eq!(texts, ["Hello", "world"], "{tag}");
}
}
#[test]
fn multibyte_after_ampersand_is_kept() {
let text = "é".repeat(20);