Files
edentext/src/lib/editor/hfExtensions.ts
T
2026-06-13 15:20:24 +02:00

55 lines
1.8 KiB
TypeScript

import Document from '@tiptap/extension-document';
import Paragraph from '@tiptap/extension-paragraph';
import Text from '@tiptap/extension-text';
import Bold from '@tiptap/extension-bold';
import Italic from '@tiptap/extension-italic';
import Underline from '@tiptap/extension-underline';
import Strike from '@tiptap/extension-strike';
import Subscript from '@tiptap/extension-subscript';
import Superscript from '@tiptap/extension-superscript';
import Highlight from '@tiptap/extension-highlight';
import { TextStyle, FontFamily, FontSize } from '@tiptap/extension-text-style';
import HardBreak from '@tiptap/extension-hard-break';
import History from '@tiptap/extension-history';
import Placeholder from '@tiptap/extension-placeholder';
import TextAlign from '@tiptap/extension-text-align';
import { FontWeight } from './fontWeight';
import { FontColor } from './fontColor';
import { PageNumber, PageCount } from './pageField';
// Schema for the header/footer mini editors: exactly one paragraph of formatted
// runs, line breaks, and page fields — what odf-kit's HeaderFooterBuilder (and
// thus the ODT export) can express. Marks mirror the main editor's.
const HfDocument = Document.extend({ content: 'paragraph' });
export function hfExtensions(placeholder = '') {
return [
HfDocument,
Paragraph,
Text,
Bold,
Italic,
Underline,
Strike,
Subscript,
Superscript,
TextStyle,
FontFamily,
FontSize,
FontWeight,
FontColor,
Highlight.configure({ multicolor: true }),
HardBreak,
PageNumber,
PageCount,
History,
Placeholder.configure({ placeholder }),
TextAlign.configure({
types: ['paragraph'],
alignments: ['left', 'center', 'right', 'justify'],
defaultAlignment: 'left',
}),
];
}