Support start attribute for enum in HTML export (#5676)

This commit is contained in:
Michael Färber 2025-01-23 13:18:46 +01:00 committed by GitHub
parent dda486a412
commit e61cd6fb9e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 31 additions and 12 deletions

View File

@ -229,19 +229,19 @@ impl Show for Packed<EnumElem> {
if TargetElem::target_in(styles).is_html() { if TargetElem::target_in(styles).is_html() {
let mut elem = HtmlElem::new(tag::ol); let mut elem = HtmlElem::new(tag::ol);
if self.reversed(styles) { if self.reversed(styles) {
elem = elem = elem.with_attr(HtmlAttr::constant("reversed"), "reversed");
elem.with_attr(const { HtmlAttr::constant("reversed") }, "reversed");
} }
return Ok(elem if let Some(n) = self.start(styles).custom() {
.with_body(Some(Content::sequence(self.children.iter().map(|item| { elem = elem.with_attr(HtmlAttr::constant("start"), eco_format!("{n}"));
let mut li = HtmlElem::new(tag::li); }
if let Some(nr) = item.number(styles) { let body = Content::sequence(self.children.iter().map(|item| {
li = li.with_attr(attr::value, eco_format!("{nr}")); let mut li = HtmlElem::new(tag::li);
} if let Some(nr) = item.number(styles) {
li.with_body(Some(item.body.clone())).pack().spanned(item.span()) li = li.with_attr(attr::value, eco_format!("{nr}"));
})))) }
.pack() li.with_body(Some(item.body.clone())).pack().spanned(item.span())
.spanned(self.span())); }));
return Ok(elem.with_body(Some(body)).pack().spanned(self.span()));
} }
let mut realized = let mut realized =

View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<ol start="3">
<li>Skipping</li><li>Ahead</li>
</ol>
</body>
</html>

View File

@ -101,6 +101,13 @@ a + 0.
[Red], [Green], [Blue], [Red], [Red], [Green], [Blue], [Red],
) )
--- enum-start html ---
#enum(
start: 3,
[Skipping],
[Ahead],
)
--- enum-numbering-closure-nested --- --- enum-numbering-closure-nested ---
// Test numbering with closure and nested lists. // Test numbering with closure and nested lists.
#set enum(numbering: n => super[#n]) #set enum(numbering: n => super[#n])