const joiner = "<><>"; export const inlineTokens: { rx: RegExp; create: ( content: RegExpExecArray, start: number, end: number, tokens: InlineTokenInsert[], ) => void; replace: (line: string) => string; }[] = [ { rx: /(\*\*)(.*?)(\*\*)/g, create(content, start, end, tokens) { tokens.push({ content: this.replace(content[0]), type: "bold", end, start, }); }, replace(l) { return l.replace(this.rx, (_, __, val) => val); }, }, { rx: /(? [label, href].join(joiner)); // return l }, }, { rx: /!\[(.*?)\]\((.*?)\)/g, create(content, start, end, tokens) { const [_, alt, src] = content; tokens.push({ content: alt, end, start, type: "image", data: { src, }, }); }, replace(l) { return l; }, }, ];