import DecoupledEditorBase from "@ckeditor/ckeditor5-editor-decoupled/src/decouplededitor"; import { Alignment } from "@ckeditor/ckeditor5-alignment"; import { Bold, Italic, Strikethrough, Underline, } from "@ckeditor/ckeditor5-basic-styles"; import { Essentials } from "@ckeditor/ckeditor5-essentials"; import { FontColor, FontFamily, FontSize } from "@ckeditor/ckeditor5-font"; import { Link } from "@ckeditor/ckeditor5-link"; import { Paragraph } from "@ckeditor/ckeditor5-paragraph"; import Heading from "@ckeditor/ckeditor5-heading/src/heading"; import LineHeight from "ckeditor5-line-height-latest/src/lineheight"; import { EditorConfig } from "@ckeditor/ckeditor5-core"; class HeadlessEditor extends DecoupledEditorBase {} interface HeadlessConfig extends EditorConfig { lineHeight: any; } HeadlessEditor.builtinPlugins = [ Essentials, Bold, Italic, Link, Underline, Strikethrough, Heading, Paragraph, FontColor, FontSize, FontFamily, Alignment, LineHeight, ]; const fontSizeOptions = []; const list = [12, 14, 16, 18, 20, 24, 28, 32, 38, 42, 46, 52, 60]; for (const s of list) { fontSizeOptions.push({ title: s + "", model: s + "px" }); } const fontFamilyOptions = [ { title: "默认字体", model: "" }, { title: "宋体", model: "宋体,Songti,STSong,serif" }, { title: "黑体", model: "黑体,Heiti,STHeiti,sans-serif" }, { title: "仿宋", model: "仿宋,FangSong,STFangsong,serif" }, { title: "楷体", model: "楷体,KaiTi,STKaiti,sans-serif" }, ]; // Editor configuration. HeadlessEditor.defaultConfig = { fontSize: { options: fontSizeOptions, supportAllValues: true, }, fontFamily: { options: fontFamilyOptions, supportAllValues: true, }, lineHeight: { options: [1, 1.5, 2, 2.5, 3], }, } as HeadlessConfig; export default HeadlessEditor;