В ckeditor5, как я могу изменить entermode br вместо p?

В ckeditor5 cdn, чтобы включить ckeditor.js, я хотел бы изменить entermode, что
вместо

? Является ли это возможным? Спасибо

5 ответов

Вы могли бы справиться с enter событие и сделать его триггером shiftEnter вместо.

      
    editor.editing.view.document.on(
        'enter',
        ( evt, data ) => {
            editor.execute('shiftEnter');
            //Cancel existing event
            data.preventDefault();
            evt.stop();
     }, {priority: 'high' });

source: https://github.com/ckeditor/ckeditor5/issues/1141#issuecomment-403403526

Если вы хотите использовать <BR> как изменить код строки в CKeditor 5, то просто используйте "Shift+Enter", чтобы это произошло.

Вот код, если вы все еще хотите сделать <P> показывать лайки <BR> один-х:

p {
   margin: 0;
}

Серьезно, у меня возникла такая же проблема, как у твоей...... тогда я нашел Shift+Enter.

Для тех, кто использует Vue и хочет добиться этого, мне помогло добавление решения Ramast в качестве плагина к editorConfig (следуя инструкциям здесь: https://github.com/ckeditor/ckeditor5-vue/issues/58)

Мое требование противоположно вашему.

я использую@ckeditor/ckeditor5-vueи специальный редактор, предоставленный для справки.

Пользовательский редактор:

      import ClassicEditorBase from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';

import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
import Enter from '@ckeditor/ckeditor5-enter/src/enter';
import ShiftEnter from '@ckeditor/ckeditor5-enter/src/shiftenter';
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
import Custom1 from './plugin/custom1';
import Custom2 from './plugin/custom2';

export default class ClassicEditor extends ClassicEditorBase {}

ClassicEditor.builtinPlugins = [
  Essentials,
  Paragraph,
  Enter,
  ShiftEnter,
  Custom1,
  Custom2,
];

ClassicEditor.defaultConfig = {
  toolbar: {
    items: [],
  },
  language: 'en',
};

шаблон vue:

      <ckeditor
  v-model="content"
  :editor="editorBuild"
  @ready="editorOnReady"
  @input="handleEditorInput"
  @blur="handleEditorBlur"
/>

Скрипт установки Vue:

      import ClassicEditor from '@/ckeditor';
    
const editorBuild = ClassicEditor;
const editor = ref();
    
function editorOnReady(editorObj) {
  editorObj.keystrokes.set('Shift+Enter', 'enter');
  editor.value = editorObj;
}

В PHP я сделал следующее:

      $replaceClosingTag = str_replace('</p>', '<br>', $_POST['message']);
$emailMessageText = str_replace('<p>', '', $replaceClosingTag);

Я заменил закрывающий тег на <br>и открывающий тег с пустым пространством. Это грязно, но у меня это сработало. Возможно, с помощью javascript вы можете сделать что-то подобное.

А для стиля полей редактора я использовал это:

      .ck.ck-editor__editable_inline p {
    margin-bottom: 0;
}

Потому что я использую CDN, и это переопределяет этот класс.

Вопросу 2 года, но, надеюсь, это поможет кому-то в будущем.

Другие вопросы по тегам