| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /**
- * @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<Nodes, Reference>} node
- * Reference node (image, link).
- * @returns {Array<ElementContent>}
- * 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
- }
|