import container from "markdown-it-container"; import type Token from "markdown-it/lib/token"; import menus from "../view/utils/menus"; type ContainerArgs = [ typeof container, string, { render(tokens: Token[], idx: number): string; } ]; export default function createContainer(klass: string): ContainerArgs { return [ container, klass, { render(tokens, idx) { const token = tokens[idx]; const info = token.info.trim().slice(klass.length).trim(); const menusChild = menus.map((item) => item.children).flat(1); let prevIndex = 0; let nextIndex = 0; menusChild.forEach((item, index) => { if (item.subTitle === info) { prevIndex = index - 1; nextIndex = index + 1; } }); if (token.nesting === 1) { return `
${ menusChild[prevIndex]?.title }
${ menusChild[nextIndex]?.title }
`; } else { return ``; } }, }, ]; }