Django CMS / WYMEditor Остановить удаление пробелов - PullRequest
0 голосов
/ 09 мая 2011

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

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

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

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

1 Ответ

2 голосов
/ 09 мая 2011

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

Он находится в 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'),'');
};

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

...