EditorCustom.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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 LetterSpacing from "./ckeditor-letter-spacing";
  16. import { EditorConfig } from "@ckeditor/ckeditor5-core";
  17. export class HeadlessEditor extends DecoupledEditorBase {}
  18. interface HeadlessConfig extends EditorConfig {
  19. lineHeight: any;
  20. }
  21. HeadlessEditor.builtinPlugins = [
  22. Essentials,
  23. Bold,
  24. Italic,
  25. Link,
  26. Underline,
  27. Strikethrough,
  28. Heading,
  29. Paragraph,
  30. FontColor,
  31. FontSize,
  32. FontFamily,
  33. Alignment,
  34. LineHeight,
  35. LetterSpacing,
  36. ];
  37. const fontSizeOptions = [];
  38. const list = [12, 14, 16, 18, 20, 24, 28, 32, 38, 42, 46, 52, 60];
  39. for (const s of list) {
  40. fontSizeOptions.push({ title: s + "", model: s + "px" });
  41. }
  42. const fontFamilyOptions = [
  43. { title: "默认字体", model: "" },
  44. { title: "宋体", model: "宋体,Songti,STSong,serif" },
  45. { title: "黑体", model: "黑体,Heiti,STHeiti,sans-serif" },
  46. { title: "仿宋", model: "仿宋,FangSong,STFangsong,serif" },
  47. { title: "楷体", model: "楷体,KaiTi,STKaiti,sans-serif" },
  48. ];
  49. // Editor configuration.
  50. HeadlessEditor.defaultConfig = {
  51. fontSize: {
  52. options: fontSizeOptions,
  53. supportAllValues: true,
  54. },
  55. fontFamily: {
  56. options: fontFamilyOptions,
  57. supportAllValues: true,
  58. },
  59. lineHeight: {
  60. options: [1, 1.5, 2, 2.5, 3],
  61. },
  62. link: {},
  63. } as HeadlessConfig;
  64. export default HeadlessEditor;