diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-06-08 19:31:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-08 19:31:07 +0200 |
| commit | cd5a14bc240b21f8f538ff7fc1d116d23611d6c5 (patch) | |
| tree | f4b8a7e8a941f8653d5061d2f7acc0bfd8d92b13 /src/library/text | |
| parent | b905048d4bb497252028df6d21b525fefb6b64c3 (diff) | |
| parent | 72d3f3fffabe6872eb7839585bea925b89aac6a4 (diff) | |
Merge pull request #75 from typst/semantics
Frame Role and PDF outline
Diffstat (limited to 'src/library/text')
| -rw-r--r-- | src/library/text/par.rs | 9 | ||||
| -rw-r--r-- | src/library/text/raw.rs | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/library/text/par.rs b/src/library/text/par.rs index 695d8066..41246b00 100644 --- a/src/library/text/par.rs +++ b/src/library/text/par.rs @@ -551,11 +551,14 @@ fn prepare<'a>( } else { let size = Size::new(regions.first.x, regions.base.y); let pod = Regions::one(size, regions.base, Spec::splat(false)); + let mut frame = node.layout(ctx, &pod, styles)?.remove(0); let shift = styles.get(TextNode::BASELINE); - if !shift.is_zero() { - Arc::make_mut(&mut frame).translate(Point::with_y(shift)); + if !shift.is_zero() || frame.role().map_or(true, Role::is_weak) { + let frame = Arc::make_mut(&mut frame); + frame.translate(Point::with_y(shift)); + frame.apply_role(Role::GenericInline); } items.push(Item::Frame(frame)); @@ -1063,6 +1066,7 @@ fn stack( let mut finished = vec![]; let mut first = true; let mut output = Frame::new(Size::with_x(width)); + output.apply_role(Role::Paragraph); // Stack the lines into one frame per region. for line in lines { @@ -1072,6 +1076,7 @@ fn stack( while !regions.first.y.fits(height) && !regions.in_last() { finished.push(Arc::new(output)); output = Frame::new(Size::with_x(width)); + output.apply_role(Role::Paragraph); regions.next(); first = true; } diff --git a/src/library/text/raw.rs b/src/library/text/raw.rs index a24d2170..31db811a 100644 --- a/src/library/text/raw.rs +++ b/src/library/text/raw.rs @@ -123,7 +123,7 @@ impl Show for RawNode { realized = realized.spaced(styles.get(Self::ABOVE), styles.get(Self::BELOW)); } - Ok(realized.styled_with_map(map)) + Ok(realized.styled_with_map(map).role(Role::Code)) } } |
