/** * @typedef {import('mdast').Html} Html * @typedef {import('mdast').PhrasingContent} PhrasingContent */ import {convert} from 'unist-util-is' /** * Check if the given value is *phrasing content*. * * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow. * * @param node * Thing to check, typically `Node`. * @returns * Whether `value` is phrasing content. */ export const phrasing = /** @type {(node?: unknown) => node is Exclude} */ ( convert([ 'break', 'delete', 'emphasis', // To do: next major: removed since footnotes were added to GFM. 'footnote', 'footnoteReference', 'image', 'imageReference', 'inlineCode', // Enabled by `mdast-util-math`: 'inlineMath', 'link', 'linkReference', // Enabled by `mdast-util-mdx`: 'mdxJsxTextElement', // Enabled by `mdast-util-mdx`: 'mdxTextExpression', 'strong', 'text', // Enabled by `mdast-util-directive`: 'textDirective' ]) )