45 lines
863 B
JavaScript
45 lines
863 B
JavaScript
'use strict'
|
|
|
|
module.exports = revert
|
|
|
|
var u = require('unist-builder')
|
|
var all = require('./all')
|
|
|
|
// Return the content of a reference without definition as markdown.
|
|
function revert(h, node) {
|
|
var subtype = node.referenceType
|
|
var suffix = ']'
|
|
var contents
|
|
var head
|
|
var tail
|
|
|
|
if (subtype === 'collapsed') {
|
|
suffix += '[]'
|
|
} else if (subtype === 'full') {
|
|
suffix += '[' + node.identifier + ']'
|
|
}
|
|
|
|
if (node.type === 'imageReference') {
|
|
return u('text', '![' + node.alt + suffix)
|
|
}
|
|
|
|
contents = all(h, node)
|
|
head = contents[0]
|
|
|
|
if (head && head.type === 'text') {
|
|
head.value = '[' + head.value
|
|
} else {
|
|
contents.unshift(u('text', '['))
|
|
}
|
|
|
|
tail = contents[contents.length - 1]
|
|
|
|
if (tail && tail.type === 'text') {
|
|
tail.value += suffix
|
|
} else {
|
|
contents.push(u('text', suffix))
|
|
}
|
|
|
|
return contents
|
|
}
|