index.ts 866 B

12345678910111213141516171819202122232425262728293031
  1. import { keymap } from 'prosemirror-keymap';
  2. import type { Schema } from 'prosemirror-model';
  3. import { history } from 'prosemirror-history';
  4. import { baseKeymap } from 'prosemirror-commands';
  5. import { dropCursor } from 'prosemirror-dropcursor';
  6. import { gapCursor } from 'prosemirror-gapcursor';
  7. import { buildKeymap } from './keymap';
  8. import { buildInputRules } from './inputrules';
  9. import { placeholderPlugin } from './placeholder';
  10. export interface PluginOptions {
  11. placeholder?: string;
  12. }
  13. export const buildPlugins = (schema: Schema, options?: PluginOptions) => {
  14. const placeholder = options?.placeholder;
  15. const plugins = [
  16. buildInputRules(schema),
  17. keymap(buildKeymap(schema)),
  18. keymap(baseKeymap),
  19. dropCursor(),
  20. gapCursor(),
  21. history(),
  22. ];
  23. if (placeholder) plugins.push(placeholderPlugin(placeholder));
  24. return plugins;
  25. };