Files
flights_web_raw/apps/angular/node_modules/mdast-util-to-hast/lib/footer.js
T

68 lines
1.4 KiB
JavaScript

'use strict'
module.exports = generateFootnotes
var thematicBreak = require('./handlers/thematic-break')
var list = require('./handlers/list')
var wrap = require('./wrap')
function generateFootnotes(h) {
var footnoteById = h.footnoteById
var footnoteOrder = h.footnoteOrder
var length = footnoteOrder.length
var index = -1
var listItems = []
var def
var backReference
var content
var tail
while (++index < length) {
def = footnoteById[footnoteOrder[index].toUpperCase()]
if (!def) {
continue
}
content = def.children.concat()
tail = content[content.length - 1]
backReference = {
type: 'link',
url: '#fnref-' + def.identifier,
data: {hProperties: {className: ['footnote-backref']}},
children: [{type: 'text', value: '↩'}]
}
if (!tail || tail.type !== 'paragraph') {
tail = {type: 'paragraph', children: []}
content.push(tail)
}
tail.children.push(backReference)
listItems.push({
type: 'listItem',
data: {hProperties: {id: 'fn-' + def.identifier}},
children: content,
position: def.position
})
}
if (listItems.length === 0) {
return null
}
return h(
null,
'div',
{className: ['footnotes']},
wrap(
[
thematicBreak(h),
list(h, {type: 'list', ordered: true, children: listItems})
],
true
)
)
}