use super::prelude::*;
use crate::tree::{AttributeMap, ListItem, ListType};
pub fn render_list(
ctx: &mut HtmlContext,
ltype: ListType,
list_items: &[ListItem],
attributes: &AttributeMap,
) {
debug!(
"Rendering list '{}' (items {})",
ltype.name(),
list_items.len(),
);
let list_tag = ltype.html_tag();
let mut tag = ctx.html().tag(list_tag);
tag.attr(attr!(;; attributes)).inner(|ctx| {
for list_item in list_items {
match list_item {
ListItem::Elements {
elements,
attributes,
} => {
ctx.html()
.li()
.attr(attr!(;; attributes))
.contents(elements);
}
ListItem::SubList { element } => {
render_element(ctx, element);
}
}
}
});
}