blockquote.js 645 B

1234567891011121314151617181920212223242526272829
  1. /**
  2. * @import {Blockquote, Parents} from 'mdast'
  3. * @import {Info, Map, State} from 'mdast-util-to-markdown'
  4. */
  5. /**
  6. * @param {Blockquote} node
  7. * @param {Parents | undefined} _
  8. * @param {State} state
  9. * @param {Info} info
  10. * @returns {string}
  11. */
  12. export function blockquote(node, _, state, info) {
  13. const exit = state.enter('blockquote')
  14. const tracker = state.createTracker(info)
  15. tracker.move('> ')
  16. tracker.shift(2)
  17. const value = state.indentLines(
  18. state.containerFlow(node, tracker.current()),
  19. map
  20. )
  21. exit()
  22. return value
  23. }
  24. /** @type {Map} */
  25. function map(line, _, blank) {
  26. return '>' + (blank ? '' : ' ') + line
  27. }