EditorCustom.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import DecoupledEditorBase from "@ckeditor/ckeditor5-editor-decoupled/src/decouplededitor";
  2. import { Alignment } from "@ckeditor/ckeditor5-alignment";
  3. import {
  4. Bold,
  5. Italic,
  6. Strikethrough,
  7. Underline,
  8. } from "@ckeditor/ckeditor5-basic-styles";
  9. import { Essentials } from "@ckeditor/ckeditor5-essentials";
  10. import { FontColor, FontFamily, FontSize } from "@ckeditor/ckeditor5-font";
  11. import { Link } from "@ckeditor/ckeditor5-link";
  12. import { Paragraph } from "@ckeditor/ckeditor5-paragraph";
  13. import Heading from "@ckeditor/ckeditor5-heading/src/heading";
  14. import LineHeight from "ckeditor5-line-height-latest/src/lineheight";
  15. import { EditorConfig } from "@ckeditor/ckeditor5-core";
  16. class HeadlessEditor extends DecoupledEditorBase {}
  17. interface HeadlessConfig extends EditorConfig {
  18. lineHeight: any;
  19. }
  20. HeadlessEditor.builtinPlugins = [
  21. Essentials,
  22. Bold,
  23. Italic,
  24. Link,
  25. Underline,
  26. Strikethrough,
  27. Heading,
  28. Paragraph,
  29. FontColor,
  30. FontSize,
  31. FontFamily,
  32. Alignment,
  33. LineHeight,
  34. ];
  35. const fontSizeOptions = [];
  36. const list = [12, 14, 16, 18, 20, 24, 28, 32, 38, 42, 46, 52, 60];
  37. for (const s of list) {
  38. fontSizeOptions.push({ title: s + "", model: s + "px" });
  39. }
  40. const fontFamilyOptions = [
  41. { title: "默认字体", model: "" },
  42. { title: "宋体", model: "宋体,Songti,STSong,serif" },
  43. { title: "黑体", model: "黑体,Heiti,STHeiti,sans-serif" },
  44. { title: "仿宋", model: "仿宋,FangSong,STFangsong,serif" },
  45. { title: "楷体", model: "楷体,KaiTi,STKaiti,sans-serif" },
  46. ];
  47. // Editor configuration.
  48. HeadlessEditor.defaultConfig = {
  49. fontSize: {
  50. options: fontSizeOptions,
  51. supportAllValues: true,
  52. },
  53. fontFamily: {
  54. options: fontFamilyOptions,
  55. supportAllValues: true,
  56. },
  57. lineHeight: {
  58. options: [1, 1.5, 2, 2.5, 3],
  59. },
  60. } as HeadlessConfig;
  61. export default HeadlessEditor;