Skip to content

Commit

Permalink
fix(svg): Save space when no background is set
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Feb 17, 2024
1 parent d5111b0 commit 22f2571
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2,344 deletions.
44 changes: 23 additions & 21 deletions crates/anstyle-svg/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,29 +155,31 @@ impl Term {
}
writeln!(&mut buffer).unwrap();

let mut text_y = line_height;
writeln!(&mut buffer, r#" <!-- background -->"#).unwrap();
writeln!(&mut buffer, r#" <text class="container {FG}">"#).unwrap();
write!(&mut buffer, r#" <tspan x="0px" y="{text_y}px">"#).unwrap();
for (style, string) in &styled {
if string.is_empty() {
continue;
}
let mut remaining = string.as_str();
while let Some((fragment, remains)) = remaining.split_once('\n') {
write_bg_span(&mut buffer, style, fragment);
text_y += line_height;
// HACK: must close tspan on newline to include them in copy/paste
writeln!(&mut buffer).unwrap();
writeln!(&mut buffer, r#"</tspan>"#).unwrap();
write!(&mut buffer, r#" <tspan x="0px" y="{text_y}px">"#).unwrap();
remaining = remains;
if styled.iter().any(|(s, _)| s.get_bg_color().is_some()) {
let mut text_y = line_height;
writeln!(&mut buffer, r#" <!-- background -->"#).unwrap();
writeln!(&mut buffer, r#" <text class="container {FG}">"#).unwrap();
write!(&mut buffer, r#" <tspan x="0px" y="{text_y}px">"#).unwrap();
for (style, string) in &styled {
if string.is_empty() {
continue;
}
let mut remaining = string.as_str();
while let Some((fragment, remains)) = remaining.split_once('\n') {
write_bg_span(&mut buffer, style, fragment);
text_y += line_height;
// HACK: must close tspan on newline to include them in copy/paste
writeln!(&mut buffer).unwrap();
writeln!(&mut buffer, r#"</tspan>"#).unwrap();
write!(&mut buffer, r#" <tspan x="0px" y="{text_y}px">"#).unwrap();
remaining = remains;
}
write_bg_span(&mut buffer, style, remaining)
}
write_bg_span(&mut buffer, style, remaining)
writeln!(&mut buffer, r#" </tspan>"#).unwrap();
writeln!(&mut buffer, r#" </text>"#).unwrap();
writeln!(&mut buffer).unwrap();
}
writeln!(&mut buffer, r#" </tspan>"#).unwrap();
writeln!(&mut buffer, r#" </text>"#).unwrap();
writeln!(&mut buffer).unwrap();

let mut text_y = line_height;
writeln!(&mut buffer, r#" <!-- foreground -->"#).unwrap();
Expand Down
Loading

0 comments on commit 22f2571

Please sign in to comment.