summaryrefslogtreecommitdiff
path: root/crates/typst-html/src/encode.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2025-06-26 10:07:41 +0200
committerGitHub <noreply@github.com>2025-06-26 08:07:41 +0000
commit6a1d6c08e2d6e4c184c6d177e67796b23ccbe4c7 (patch)
tree4be990fb9ecf631823db8f947f2550a58708639f /crates/typst-html/src/encode.rs
parent35809387f88483bfa3d0978cfc3303eba0de632b (diff)
Consistent sizing for `html.frame` (#6505)
Diffstat (limited to 'crates/typst-html/src/encode.rs')
-rw-r--r--crates/typst-html/src/encode.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/crates/typst-html/src/encode.rs b/crates/typst-html/src/encode.rs
index 9c793836..84860dbe 100644
--- a/crates/typst-html/src/encode.rs
+++ b/crates/typst-html/src/encode.rs
@@ -3,9 +3,8 @@ use std::fmt::Write;
use typst_library::diag::{bail, At, SourceResult, StrResult};
use typst_library::foundations::Repr;
use typst_library::html::{
- attr, charsets, tag, HtmlDocument, HtmlElement, HtmlNode, HtmlTag,
+ attr, charsets, tag, HtmlDocument, HtmlElement, HtmlFrame, HtmlNode, HtmlTag,
};
-use typst_library::layout::Frame;
use typst_syntax::Span;
/// Encodes an HTML document into a string.
@@ -304,9 +303,15 @@ fn write_escape(w: &mut Writer, c: char) -> StrResult<()> {
}
/// Encode a laid out frame into the writer.
-fn write_frame(w: &mut Writer, frame: &Frame) {
+fn write_frame(w: &mut Writer, frame: &HtmlFrame) {
// FIXME: This string replacement is obviously a hack.
- let svg = typst_svg::svg_frame(frame)
- .replace("<svg class", "<svg style=\"overflow: visible;\" class");
+ let svg = typst_svg::svg_frame(&frame.inner).replace(
+ "<svg class",
+ &format!(
+ "<svg style=\"overflow: visible; width: {}em; height: {}em;\" class",
+ frame.inner.width() / frame.text_size,
+ frame.inner.height() / frame.text_size,
+ ),
+ );
w.buf.push_str(&svg);
}