#3260 closed Bug (invalid)
Extra line is getting added after <p> tag
Reported by: | Senthil | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | Core : Output Data | Version: | 3.1 |
Keywords: | Cc: | Senthil |
Description
After <p> tag, there is an extra line added for the text entered by the user. This was not happening in 2.6.x release thus this new behavior breaks our code.
Change History (9)
comment:1 Changed 16 years ago by
comment:2 Changed 16 years ago by
After the <p> tag, user typed words are displayed in the next line instead of displaying it in the same line. In 2.6.x text were displayed in the same line. Because of this new behavior our functionality is broken.
Example text: <p>
This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>
comment:3 Changed 16 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
This is actually a feature in the editor regarding the output formatting for readability, and it's customizable.
To do that when creating an editor instance:
CKEDITOR.replace( 'editor1', { on : { instanceReady : function( ev ) { this.dataProcessor.writer.setRules( 'p', { indent : false, breakBeforeOpen : true, breakAfterOpen : false, breakBeforeClose : false, breakAfterClose : true }); } } });
... or, make it in a way that it affects all instances, by declaring the following after the editor script:
CKEDITOR.on( 'instanceReady', function( ev ) { ev.editor.dataProcessor.writer.setRules( 'p', { indent : false, breakBeforeOpen : true, breakAfterOpen : false, breakBeforeClose : false, breakAfterClose : true }); });
comment:5 follow-up: 7 Changed 15 years ago by
Component: | General → Core : Output Data |
---|---|
Keywords: | Oracle removed |
Priority: | High → Normal |
Resolution: | invalid |
Status: | closed → reopened |
Type: | New Feature → Bug |
Version: | → 3.1 |
With the latest version of CKEditor (3.1), I continue to have the problems described by this bug report. It seems like the *default* is for these extra lines to be inserted after several tags. It's great that this behavior is configurable, but I vote for the extra break tags *not* be inserted by default. Let developers decide if they want them.
Right now, I have all of my editors configured with the following:
ev.editor.dataProcessor.writer.setRules('p', { indent : false, breakBeforeOpen : false, breakAfterOpen : false, breakBeforeClose: false, breakAfterClose : false } ); ev.editor.dataProcessor.writer.setRules('ol', { indent : false, breakBeforeOpen : false, breakAfterOpen : false, breakBeforeClose: false, breakAfterClose : false } ); ev.editor.dataProcessor.writer.setRules('ul', { indent : false, breakBeforeOpen : false, breakAfterOpen : false, breakBeforeClose: false, breakAfterClose : false } ); ev.editor.dataProcessor.writer.setRules('li', { indent : true, breakBeforeOpen : false, breakAfterOpen : false, breakBeforeClose: false, breakAfterClose : false } );
To repeat that code for every other tag that's being affected by these defaults seems a little overkill. Currently, it's still affecting all heading tags (h1 through h6).
At the very least, I'd like to know why these defaults are in place and why one must override them to avoid the extra break tags being inserted. CKEditor is actually generating invalid code as a result of the defaults. It's generating code, such as the following:
<ul> <li>Item One</li> <br> <li>Item Two</li> </ul>
That extra break tag doesn't belong between two list items, but CKEditor's default configuration is inserting it there. Very frustrating to have to override the defaults just to fix this strange behavior.
I want to express my sincere appreciation for the developers' hard work on CKEditor, but this issue has been plaguing my installations for several months, and it's been very difficult to find a solution. Am I doing something wrong?
comment:6 Changed 15 years ago by
Milestone: | CKEditor 3.0 → CKEditor 3.x |
---|
comment:7 Changed 15 years ago by
Milestone: | CKEditor 3.x |
---|---|
Resolution: | → invalid |
Status: | reopened → closed |
Replying to coolfactor:
Am I doing something wrong?
Yes. You are converting new lines (\r\n) to <br>
comment:8 Changed 15 years ago by
That seems to be what's happening, yes, but how do I fix it? Again, this issue exists in a vanilla installation of CKEditor 3.1. I haven't done anything to explicitly cause this conversion.
The <br> are being inserted for every \r\n in the HTML source. What is the reasoning behind why this is a feature when editing the raw HTML?
I appreciate your further assistance, as I haven't found a documented solution to this issue. Thank you for telling me I'm doing something wrong, but please provide a reference to the solution at the same time for the benefit of others reading this bug post. :-)
comment:9 Changed 15 years ago by
Okay, solved... thanks to alfonsoml's suggestion, I found the problem. I was using PHP's nl2br() function on the output of the CKEditor's content... that explains the extra <br> tags that being added.
I still want to know why the default configuration inserts breaks in strange places, particularly after an opening tag, when viewing the HTML source.
Can you please give us an example of the HTML you are having with it?