import Underline from '@tiptap/extension-underline';

/**
 * Tiptap Underline extension을 확장하여 마크다운 저장 기능을 통합한 버전
 */
export const UnderlineMarkdown = Underline.extend({
    name: 'underline', // StarterKit에서 underline: false로 비활성화하므로 충돌 없음
    addStorage() {
        return {
            ...this.parent?.(),
            markdown: {
                serialize: {
                    open: '<u>',
                    close: '</u>',
                    mixable: true,
                    // expelEnclosingWhitespace 옵션을 제거함.
                    // 이 옵션은 마크다운 delimiter(*, _ 등)용으로 설계된 trimInline 함수를 호출하며,
                    // HTML 태그(<u>, </u>)에 적용할 경우 </u> 태그가 손상되는 버그를 유발함.
                },
                parse: {
                    // handled by markdown-it with html: true
                },
            }
        }
    }
});
