# All files / src/agent markdown-to-tiptap.ts

14.28% Statements 1/7
0% Branches 0/4
0% Functions 0/2
14.28% Lines 1/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33

    20x

     /**
     * Server-side Markdown → Tiptap JSON converter.
     *
     * Uses @tiptap/markdown's MarkdownManager.parse() — the same approach
     * as content-serializer.ts but in reverse direction.
     * No DOM needed, no new dependencies.
     */

    import StarterKit from '@tiptap/starter-kit';
    import Link from '@tiptap/extension-link';
    import { MarkdownManager } from '@tiptap/markdown';

    let _manager: MarkdownManager | null = null;

    function getManager(): MarkdownManager {
      if (!_manager) {
        _manager = new MarkdownManager({
          extensions: [StarterKit, Link],
        });
      }
      return _manager;
    }

    /**
     * Convert a markdown string to Tiptap JSON document.
     */
    export function markdownToTiptapJson(markdown: string): object {
      if (!markdown.trim()) {
        return { type: 'doc', content: [{ type: 'paragraph' }] };
      }
      return getManager().parse(markdown);
    }