27 lines
686 B
JavaScript
27 lines
686 B
JavaScript
|
/**
|
||
|
* @typedef {import('hast').Root} Root
|
||
|
*
|
||
|
* @typedef {Pick<import('hast-util-from-html').Options, 'fragment'>} Options
|
||
|
*/
|
||
|
|
||
|
import {fromHtml} from 'hast-util-from-html'
|
||
|
import {removePosition} from 'unist-util-remove-position'
|
||
|
|
||
|
/**
|
||
|
* Turn HTML into a syntax tree, using browser APIs when available, so it has
|
||
|
* a smaller bundle size there.
|
||
|
*
|
||
|
* @param {string} value
|
||
|
* Serialized HTML to parse.
|
||
|
* @param {Options | null | undefined} [options]
|
||
|
* Configuration (optional).
|
||
|
* @returns {Root}
|
||
|
* Tree.
|
||
|
*/
|
||
|
export function fromHtmlIsomorphic(value, options) {
|
||
|
const tree = fromHtml(value, options)
|
||
|
removePosition(tree, {force: true})
|
||
|
delete tree.data
|
||
|
return tree
|
||
|
}
|