This commit is contained in:
48
node_modules/mdast-util-to-markdown/lib/handle/heading.js
generated
vendored
Normal file
48
node_modules/mdast-util-to-markdown/lib/handle/heading.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
module.exports = heading
|
||||
|
||||
var repeat = require('repeat-string')
|
||||
var formatHeadingAsSetext = require('../util/format-heading-as-setext')
|
||||
var phrasing = require('../util/container-phrasing')
|
||||
|
||||
function heading(node, _, context) {
|
||||
var rank = Math.max(Math.min(6, node.depth || 1), 1)
|
||||
var exit
|
||||
var subexit
|
||||
var value
|
||||
var sequence
|
||||
|
||||
if (formatHeadingAsSetext(node, context)) {
|
||||
exit = context.enter('headingSetext')
|
||||
subexit = context.enter('phrasing')
|
||||
value = phrasing(node, context, {before: '\n', after: '\n'})
|
||||
subexit()
|
||||
exit()
|
||||
|
||||
return (
|
||||
value +
|
||||
'\n' +
|
||||
repeat(
|
||||
rank === 1 ? '=' : '-',
|
||||
// The whole size…
|
||||
value.length -
|
||||
// Minus the position of the character after the last EOL (or
|
||||
// 0 if there is none)…
|
||||
(Math.max(value.lastIndexOf('\r'), value.lastIndexOf('\n')) + 1)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
sequence = repeat('#', rank)
|
||||
exit = context.enter('headingAtx')
|
||||
subexit = context.enter('phrasing')
|
||||
value = phrasing(node, context, {before: '# ', after: '\n'})
|
||||
value = value ? sequence + ' ' + value : sequence
|
||||
if (context.options.closeAtx) {
|
||||
value += ' ' + sequence
|
||||
}
|
||||
|
||||
subexit()
|
||||
exit()
|
||||
|
||||
return value
|
||||
}
|
||||
Reference in New Issue
Block a user