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