/** * @import {Element, Properties} from 'hast' * @import {Link} from 'mdast' * @import {State} from '../state.js' */ import {normalizeUri} from 'micromark-util-sanitize-uri' /** * Turn an mdast `link` node into hast. * * @param {State} state * Info passed around. * @param {Link} node * mdast node. * @returns {Element} * hast node. */ export function link(state, node) { /** @type {Properties} */ const properties = {href: normalizeUri(node.url)} if (node.title !== null && node.title !== undefined) { properties.title = node.title } /** @type {Element} */ const result = { type: 'element', tagName: 'a', properties, children: state.all(node) } state.patch(node, result) return state.applyData(node, result) }