This commit is contained in:
51
node_modules/remark-stringify/lib/visitors/heading.js
generated
vendored
Normal file
51
node_modules/remark-stringify/lib/visitors/heading.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
'use strict'
|
||||
|
||||
var repeat = require('repeat-string')
|
||||
|
||||
module.exports = heading
|
||||
|
||||
var lineFeed = '\n'
|
||||
var space = ' '
|
||||
var numberSign = '#'
|
||||
var dash = '-'
|
||||
var equalsTo = '='
|
||||
|
||||
// Stringify a heading.
|
||||
//
|
||||
// In `setext: true` mode and when `depth` is smaller than three, creates a
|
||||
// setext header:
|
||||
//
|
||||
// ```markdown
|
||||
// Foo
|
||||
// ===
|
||||
// ```
|
||||
//
|
||||
// Otherwise, an ATX header is generated:
|
||||
//
|
||||
// ```markdown
|
||||
// ### Foo
|
||||
// ```
|
||||
//
|
||||
// In `closeAtx: true` mode, the header is closed with hashes:
|
||||
//
|
||||
// ```markdown
|
||||
// ### Foo ###
|
||||
// ```
|
||||
function heading(node) {
|
||||
var self = this
|
||||
var depth = node.depth
|
||||
var setext = self.options.setext
|
||||
var closeAtx = self.options.closeAtx
|
||||
var content = self.all(node).join('')
|
||||
var prefix
|
||||
|
||||
if (setext && depth < 3) {
|
||||
return (
|
||||
content + lineFeed + repeat(depth === 1 ? equalsTo : dash, content.length)
|
||||
)
|
||||
}
|
||||
|
||||
prefix = repeat(numberSign, node.depth)
|
||||
|
||||
return prefix + space + content + (closeAtx ? space + prefix : '')
|
||||
}
|
||||
Reference in New Issue
Block a user