index.js 882 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. 'use strict'
  2. var slug = require('remark-slug')
  3. var util = require('mdast-util-toc')
  4. module.exports = toc
  5. var DEFAULT_HEADING = 'toc|table[ -]of[ -]contents?'
  6. function toc(options) {
  7. var settings = options || {}
  8. var heading = settings.heading || DEFAULT_HEADING
  9. var depth = settings.maxDepth || 6
  10. var tight = settings.tight
  11. this.use(slug)
  12. return transformer
  13. /* Adds an example section based on a valid example
  14. * JavaScript document to a `Usage` section. */
  15. function transformer(node) {
  16. var result = util(node, {
  17. heading: heading,
  18. maxDepth: depth,
  19. tight: tight
  20. })
  21. if (result.index === null || result.index === -1 || !result.map) {
  22. return
  23. }
  24. /* Replace markdown. */
  25. node.children = [].concat(
  26. node.children.slice(0, result.index),
  27. result.map,
  28. node.children.slice(result.endIndex)
  29. )
  30. }
  31. }