mirror of
https://github.com/typst/typst
synced 2025-05-14 04:56:26 +08:00
interrupt_styles: Check all potential style matches (#4345)
This commit is contained in:
parent
20475ab0bf
commit
a10e3324c2
@ -231,7 +231,13 @@ impl<'a> Default for BehavedBuilder<'a> {
|
|||||||
/// A sequence of elements with associated styles.
|
/// A sequence of elements with associated styles.
|
||||||
#[derive(Clone, PartialEq, Hash)]
|
#[derive(Clone, PartialEq, Hash)]
|
||||||
pub struct StyleVec {
|
pub struct StyleVec {
|
||||||
|
/// The elements themselves.
|
||||||
elements: EcoVec<Content>,
|
elements: EcoVec<Content>,
|
||||||
|
/// A run-length encoded list of style lists.
|
||||||
|
///
|
||||||
|
/// Each element is a (styles, count) pair. Any elements whose
|
||||||
|
/// style falls after the end of this list is considered to
|
||||||
|
/// have an empty style list.
|
||||||
styles: EcoVec<(Styles, usize)>,
|
styles: EcoVec<(Styles, usize)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,16 +220,19 @@ impl<'a, 'v, 't> Builder<'a, 'v, 't> {
|
|||||||
{
|
{
|
||||||
bail!(span, "document set rules must appear before any content");
|
bail!(span, "document set rules must appear before any content");
|
||||||
}
|
}
|
||||||
} else if let Some(Some(span)) = local.interruption::<PageElem>() {
|
}
|
||||||
|
if let Some(Some(span)) = local.interruption::<PageElem>() {
|
||||||
if self.doc.is_none() {
|
if self.doc.is_none() {
|
||||||
bail!(span, "page configuration is not allowed inside of containers");
|
bail!(span, "page configuration is not allowed inside of containers");
|
||||||
}
|
}
|
||||||
self.interrupt_page(outer, false)?;
|
self.interrupt_page(outer, false)?;
|
||||||
} else if local.interruption::<ParElem>().is_some()
|
}
|
||||||
|
if local.interruption::<ParElem>().is_some()
|
||||||
|| local.interruption::<AlignElem>().is_some()
|
|| local.interruption::<AlignElem>().is_some()
|
||||||
{
|
{
|
||||||
self.interrupt_par()?;
|
self.interrupt_par()?;
|
||||||
} else if local.interruption::<ListElem>().is_some()
|
}
|
||||||
|
if local.interruption::<ListElem>().is_some()
|
||||||
|| local.interruption::<EnumElem>().is_some()
|
|| local.interruption::<EnumElem>().is_some()
|
||||||
|| local.interruption::<TermsElem>().is_some()
|
|| local.interruption::<TermsElem>().is_some()
|
||||||
{
|
{
|
||||||
|
BIN
tests/ref/issue-4340-set-document-and-page.png
Normal file
BIN
tests/ref/issue-4340-set-document-and-page.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 222 B |
@ -258,3 +258,11 @@ Default page numbers now.
|
|||||||
Hi
|
Hi
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
= Second
|
= Second
|
||||||
|
|
||||||
|
--- issue-4340-set-document-and-page ---
|
||||||
|
// Test custom page fields being applied on the last page
|
||||||
|
// if the document has custom fields.
|
||||||
|
#set document(author: "")
|
||||||
|
#set page(fill: gray)
|
||||||
|
text
|
||||||
|
#pagebreak()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user