UNPKG

@diplodoc/transform

Version:

A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML

46 lines (35 loc) 1.08 kB
// // Utils for working with custom ids in heading tokens // import type {Token} from 'markdown-it'; export const CUSTOM_ID_REGEXP = /\[?{ ?#(\S+) ?}]?/g; export const CUSTOM_ID_EXCEPTION = '[{#T}]'; export const getCustomIds = (content: string) => { const ids: string[] = []; content.replace(CUSTOM_ID_REGEXP, (match, customId) => { if (match !== CUSTOM_ID_EXCEPTION) { ids.push(customId); } return ''; }); return ids.length ? ids : null; }; export const removeCustomId = (content: string) => { if (CUSTOM_ID_REGEXP.test(content)) { return content .replace(CUSTOM_ID_REGEXP, (match) => { if (match === CUSTOM_ID_EXCEPTION) { return match; } return ''; }) .trim(); } return content; }; export const removeCustomIds = (token: Token) => { token.content = removeCustomId(token.content); token.children?.forEach((child) => { child.content = removeCustomId(child.content); }); };