Ответ 1
Добавьте эту строку в файл конфигурации ckeditor.js:
n.setRules('p',{indent:false,breakAfterOpen:false});
Подробнее о форматировании HTML Writer можно найти в Руководство для разработчиков: Форматирование вывода в документах CKSource.
При загрузке содержимого с набором абзацев в CKEditor он заменяет теги <p>
<p>	
Это означает, что редактор преобразует это:
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
чтобы это получилось так:
<p>
paragraph 1</p>
<p>
paragraph 2</p>
<p>
paragraph 3</p>
Как мне исправить это, чтобы CKEditor не добавлял лишние символы новой строки, когда он видит теги абзаца?
Добавьте эту строку в файл конфигурации ckeditor.js:
n.setRules('p',{indent:false,breakAfterOpen:false});
Подробнее о форматировании HTML Writer можно найти в Руководство для разработчиков: Форматирование вывода в документах CKSource.
В другом месте (мои извинения, что я не заметил, откуда я его получил.), я нашел код, чтобы исправить эту проблему для всех тегов блока. Для моего проекта дополнительные новые строки были проблемой из-за вывода на XML и импорта в другие приложения в качестве CDATA.
Итак, в моем файле ckeditor_config.js, после функции CKEDITOR.editorConfig, я добавил следующее:
CKEDITOR.on('instanceReady', function( ev ) {
var blockTags = ['div','h1','h2','h3','h4','h5','h6','p','pre','li','blockquote','ul','ol',
'table','thead','tbody','tfoot','td','th',];
for (var i = 0; i < blockTags.length; i++)
{
ev.editor.dataProcessor.writer.setRules( blockTags[i], {
indent : false,
breakBeforeOpen : true,
breakAfterOpen : false,
breakBeforeClose : false,
breakAfterClose : true
});
}
});
Некоторые из этих элементов могут не нуждаться в этом лечении; очевидно, массив blockTags можно легко отредактировать для ваших нужд.
Я считаю, что есть параметр для форматирования кода, или авто-отступ, или что-то в этом направлении. Предполагалось, что исходный код станет более читаемым. Думаю, эффективность этой работы открыта для меня.
Если вы похожи на меня и хотели бы сделать это на уровне экземпляра и не хотите прикасаться к файлам конфигурации, чтобы было легко обновить/обновить. Тогда вот еще одно решение.
CKEDITOR.replace( 'editor1',
{
on :
{
instanceReady : function( ev )
{
// Output paragraphs as <p>Text</p>.
this.dataProcessor.writer.setRules( 'p',
{
indent : false,
breakBeforeOpen : true,
breakAfterOpen : false,
breakBeforeClose : false,
breakAfterClose : true
});
}
}
});
Ссылка: Форматирование вывода
Лучшее решение, которое будет работать как шарм:
отредактируйте content.css файл и стиль настройки для абзацев, например.
p {
margin-top:0px;
margin-bottom:5px;
}