12345678910111213141516171819202122232425262728293031323334 |
- /**
- * @typedef {import('mdast').Heading} Heading
- * @typedef {import('../types.js').State} State
- */
- import {EXIT, visit} from 'unist-util-visit'
- import {toString} from 'mdast-util-to-string'
- /**
- * @param {Heading} node
- * @param {State} state
- * @returns {boolean}
- */
- export function formatHeadingAsSetext(node, state) {
- let literalWithBreak = false
- // Look for literals with a line break.
- // Note that this also
- visit(node, function (node) {
- if (
- ('value' in node && /\r?\n|\r/.test(node.value)) ||
- node.type === 'break'
- ) {
- literalWithBreak = true
- return EXIT
- }
- })
- return Boolean(
- (!node.depth || node.depth < 3) &&
- toString(node) &&
- (state.options.setext || literalWithBreak)
- )
- }
|