Display lists.
This commit is contained in:
parent
1da35be148
commit
49df21e465
2 changed files with 11 additions and 1 deletions
|
@ -36,7 +36,7 @@ function parseLink(result, node, children) {
|
||||||
|
|
||||||
function parseList(result, node) {
|
function parseList(result, node) {
|
||||||
let start = null;
|
let start = null;
|
||||||
if (result.getNodeElementName(node) == "OL") {
|
if (result.getNodeElementName(node) === "OL") {
|
||||||
// Will return 1 for, say, '1A', which may not be intended?
|
// Will return 1 for, say, '1A', which may not be intended?
|
||||||
start = parseInt(result.getAttributeValue(node, "start")) || 1;
|
start = parseInt(result.getAttributeValue(node, "start")) || 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,15 @@ export class TextMessageView extends BaseMessageView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function renderList(listBlock) {
|
||||||
|
const items = listBlock.items.map(item => tag.li({}, renderParts(item)));
|
||||||
|
const start = listBlock.startOffset;
|
||||||
|
if (start) {
|
||||||
|
return tag.ol({ start }, items);
|
||||||
|
} else {
|
||||||
|
return tag.ul({}, items);
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Map from part to function that outputs DOM for the part
|
* Map from part to function that outputs DOM for the part
|
||||||
*/
|
*/
|
||||||
|
@ -43,6 +52,7 @@ const formatFunction = {
|
||||||
text: textPart => text(textPart.text),
|
text: textPart => text(textPart.text),
|
||||||
link: linkPart => tag.a({ href: linkPart.url, target: "_blank", rel: "noopener" }, renderParts(linkPart.inlines)),
|
link: linkPart => tag.a({ href: linkPart.url, target: "_blank", rel: "noopener" }, renderParts(linkPart.inlines)),
|
||||||
format: formatPart => tag[formatPart.format]({}, renderParts(formatPart.children)),
|
format: formatPart => tag[formatPart.format]({}, renderParts(formatPart.children)),
|
||||||
|
list: renderList,
|
||||||
newline: () => tag.br()
|
newline: () => tag.br()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Reference in a new issue