Django CMS / WYMEditor Остановить удаление пробелов

Я знаю, что такое WYMEditor, и что использование абзацев для интервалов не предназначено, однако проблема здесь в том, что клиент требует, чтобы мы предоставили ему эту функциональность.

Я искал повсюду, чтобы найти, где WYMEditor удаляет пробелы, и, похоже, вообще не нашел.

Кажется, что когда вы нажимаете ввод, он визуально создает P, однако при нажатии на источник он его не содержит. Кроме того, ручное редактирование исходного HTML-кода, чтобы он содержал <p>&nbsp;</p>, не работает, поскольку WYMEditor удаляет его.

Просто интересно, сталкивался ли кто-нибудь с этой проблемой раньше и знает, как избавиться от этой функциональности? Стоит отметить, что я считаю, что замена происходит как в «текстовом» модуле Django-CMS, так и в Javascript для WYMEditor.


person Rudi Visser    schedule 09.05.2011    source источник
comment
Что за граватарная фотка?   -  person Roatin Marth    schedule 09.05.2011
comment
@Roatin Marth Совершенно потрясающий, очевидно.   -  person Rudi Visser    schedule 09.05.2011


Ответы (1)


Оказывается, функция, которая делает эту зачистку, называется очень просто, по какой-то причине я пропустил ее в (несколько!) поисках слова «пусто» в файле скрипта.

Он находится в jquery.wymeditor.js, строка ~3440 есть функция WYMeditor.XhtmlSaxListener.prototype.removeEmptyTags, просто остановите замену:

WYMeditor.XhtmlSaxListener.prototype.removeEmptyTags = function(xhtml)
{
   return xhtml;// .replace(new RegExp('<('+this.block_tags.join("|").replace(/\|td/,'').replace(/\|th/, '')+')>(<br \/>|&#160;|&nbsp;|\\s)*<\/\\1>' ,'g'),'');
};

Это, очевидно, останавливает удаление пробелов!

person Rudi Visser    schedule 09.05.2011