( blockquote: Blockquote, state: RenderState, )
| 510 | } |
| 511 | |
| 512 | const renderBlockquote = ( |
| 513 | blockquote: Blockquote, |
| 514 | state: RenderState, |
| 515 | ): ReactNode[] => { |
| 516 | const { palette, nextKey } = state |
| 517 | const childNodes = renderNodes( |
| 518 | blockquote.children as MarkdownNode[], |
| 519 | state, |
| 520 | blockquote.type, |
| 521 | ) |
| 522 | const lines = splitNodesByNewline(childNodes) |
| 523 | const nodes: ReactNode[] = [] |
| 524 | |
| 525 | lines.forEach((line, index) => { |
| 526 | if (line.length === 0) { |
| 527 | return |
| 528 | } |
| 529 | nodes.push( |
| 530 | <span key={nextKey()} fg={palette.blockquoteBorderFg}> |
| 531 | {'> '} |
| 532 | </span>, |
| 533 | ) |
| 534 | nodes.push( |
| 535 | <span key={nextKey()} fg={palette.blockquoteTextFg}> |
| 536 | {wrapSegmentsInFragments(line, nextKey())} |
| 537 | </span>, |
| 538 | ) |
| 539 | if (index < lines.length - 1) { |
| 540 | nodes.push('\n') |
| 541 | } |
| 542 | }) |
| 543 | |
| 544 | nodes.push('\n\n') |
| 545 | return nodes |
| 546 | } |
| 547 | |
| 548 | const renderList = (list: List, state: RenderState): ReactNode[] => { |
| 549 | const { palette, nextKey } = state |
no test coverage detected