summaryrefslogtreecommitdiff
path: root/crates/typst-html/src/rules.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/typst-html/src/rules.rs')
-rw-r--r--crates/typst-html/src/rules.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/crates/typst-html/src/rules.rs b/crates/typst-html/src/rules.rs
index 5bf25e79..04a58ca4 100644
--- a/crates/typst-html/src/rules.rs
+++ b/crates/typst-html/src/rules.rs
@@ -5,7 +5,6 @@ use typst_library::diag::warning;
use typst_library::foundations::{
Content, NativeElement, NativeRuleMap, ShowFn, Smart, StyleChain, Target,
};
-use typst_library::html::{attr, tag, HtmlAttrs, HtmlElem, HtmlTag};
use typst_library::introspection::{Counter, Locator};
use typst_library::layout::resolve::{table_to_cellgrid, Cell, CellGrid, Entry};
use typst_library::layout::{OuterVAlignment, Sizing};
@@ -20,11 +19,11 @@ use typst_library::text::{
};
use typst_library::visualize::ImageElem;
-use crate::css::{self, HtmlElemExt};
+use crate::{attr, css, tag, FrameElem, HtmlAttrs, HtmlElem, HtmlTag};
-/// Register show rules for the [HTML target](Target::Html).
+/// Registers show rules for the [HTML target](Target::Html).
pub fn register(rules: &mut NativeRuleMap) {
- use Target::Html;
+ use Target::{Html, Paged};
// Model.
rules.register(Html, STRONG_RULE);
@@ -53,6 +52,11 @@ pub fn register(rules: &mut NativeRuleMap) {
// Visualize.
rules.register(Html, IMAGE_RULE);
+
+ // For the HTML target, `html.frame` is a primitive. In the laid-out target,
+ // it should be a no-op so that nested frames don't break (things like `show
+ // math.equation: html.frame` can result in nested ones).
+ rules.register::<FrameElem>(Paged, |elem, _, _| Ok(elem.body.clone()));
}
const STRONG_RULE: ShowFn<StrongElem> = |elem, _, _| {