#[must_use]
pub fn parsed_preserving_whitespace(raw: &str) -> String {
if !raw.contains('\n') {
return raw.trim().to_string();
}
let mut result = String::with_capacity(raw.len());
for (i, line) in raw.lines().enumerate() {
if i > 0 {
result.push('\n');
}
let trimmed = line.trim();
if let Some(rest) = trimmed.strip_prefix('*') {
let is_emphasis = rest.starts_with(|ch: char| ch.is_alphanumeric() || ch == '_');
if !is_emphasis {
result.push_str(rest.strip_prefix(' ').unwrap_or(rest));
continue;
}
}
result.push_str(trimmed);
}
result
}