UNPKG

692 BJavaScriptView Raw
1'use strict'
2
3module.exports = toc
4
5var search = require('./search')
6var contents = require('./contents')
7
8// Get a TOC representation of `node`.
9function toc(node, options) {
10 var settings = options || {}
11 var heading = settings.heading ? toExpression(settings.heading) : null
12 var result = search(node, heading, settings)
13 var map = result.map
14
15 result.map =
16 map.length === 0 ? null : contents(map, settings.tight, settings.prefix)
17
18 // No given heading.
19 if (!heading) {
20 result.index = null
21 result.endIndex = null
22 }
23
24 return result
25}
26
27// Transform a string into an applicable expression.
28function toExpression(value) {
29 return new RegExp('^(' + value + ')$', 'i')
30}