/** * @import {ElementContent} from 'hast' * @import {Reference, Nodes} from 'mdast' * @import {State} from './state.js' */ /** * Return the content of a reference without definition as plain text. * * @param {State} state * Info passed around. * @param {Extract} node * Reference node (image, link). * @returns {Array} * hast content. */ export function revert(state, node) { const subtype = node.referenceType let suffix = ']' if (subtype === 'collapsed') { suffix += '[]' } else if (subtype === 'full') { suffix += '[' + (node.label || node.identifier) + ']' } if (node.type === 'imageReference') { return [{type: 'text', value: '![' + node.alt + suffix}] } const contents = state.all(node) const head = contents[0] if (head && head.type === 'text') { head.value = '[' + head.value } else { contents.unshift({type: 'text', value: '['}) } const tail = contents[contents.length - 1] if (tail && tail.type === 'text') { tail.value += suffix } else { contents.push({type: 'text', value: suffix}) } return contents }