import { Extension } from '@tiptap/core';

// 兼容 TipTap v2 的本地字体大小扩展：依赖 TextStyle
export default Extension.create({
  name: 'fontSize',

  addGlobalAttributes() {
    return [
      {
        types: ['textStyle'],
        attributes: {
          fontSize: {
            default: null,
            parseHTML: element => element.style.fontSize || null,
            renderHTML: attributes => {
              if (!attributes.fontSize) return {};
              return { style: `font-size: ${attributes.fontSize}` };
            },
          },
        },
      },
    ];
  },

  addCommands() {
    return {
      setFontSize:
        size => ({ chain }) => {
          return chain().setMark('textStyle', { fontSize: size }).run();
        },
      unsetFontSize:
        () => ({ chain }) => {
          // 将 fontSize 属性清空，保留其它 textStyle 属性
          return chain().setMark('textStyle', { fontSize: null }).run();
        },
    };
  },
});


