function escapeHtml(value) {
return String(value)
.replaceAll("&", "&")
.replaceAll("<", "<")
.replaceAll(">", ">")
.replaceAll('"', """)
.replaceAll("'", "'");
}
export function renderOverviewTree(nodes, section) {
const renderNodes = (items) =>
`
${items
.map((node) => {
const children = Array.isArray(node.children) ? node.children : [];
const title = escapeHtml(node.title);
const href = node.path ? escapeHtml(node.path.slice(section.length + 1)) : null;
if (!children.length) {
return `- ${title}
`;
}
const pageLink = href
? `overview`
: "";
return `${title}${pageLink}
${renderNodes(children)} `;
})
.join("")}
`;
return `${renderNodes(nodes)}
`;
}