import {TokenizerAndRendererExtension} from "marked"; export default function markedColumns(): TokenizerAndRendererExtension[] { return [{ name: 'col-divider', level: 'block', start(src: string) { return src.match(/^-\|-+ *\n/)?.index; }, tokenizer(src){ const match = src.match(/^-\|(-+) *\n/); if(!match) return; return { type: 'col-divider', raw: match[0], tokens: [] }; }, renderer(token){ const extra = token.raw.match(/^-\|(-+) *\n/)?.[1].length || 0; const sfx = extra > 1 ? '-' + (extra) : ''; return `
`; } },{ name: 'col-start', level: 'block', start(src: string) { return src.match(/^\|--+ *\n/)?.index; }, tokenizer(src){ const match = src.match(/^\|-(-+) *\n/); if(!match) return; return { type: 'col-start', raw: match[0], tokens: [] }; }, renderer(token){ const extra = token.raw.match(/^\|-(-+) *\n/)?.[1].length || 0; const sfx = extra > 1 ? '-' + (extra) : ''; return `
`; } },{ name: 'col-end', level: 'block', start(src: string) { return src.match(/^--\| *\n/)?.index; }, tokenizer(src){ const match = src.match(/^--\| *\n/); if(!match) return; return { type: 'col-end', raw: match[0], tokens: [] }; }, renderer(token){ return `
`; } } ]; }