Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
+1 vote
in Q2A Core by
I am using ckeditor. When I edit a question or answer and press the return key it looks to me like I have entered a new para in the visual editor. In fact on inspecting the document source, I do see a new para <p> being insereted with every return and makes me believe that formatting.

But on saving, and vieweing the question description or answer, I see what looked like a new para is now a newline. Breaking the formatting I was assuming before and making it look bad. I need to use shift enter-enter to actually create a new para with ckeditor.
Interesting here what i saw is what i got as result. But in my installation WYSWIG editors screw up with new para.

1 Answer

+2 votes
edited by
Best answer

Nice article. I always remembered a sense of incongruity for this movement, too. I checked it.

I hacked plugin source to just store <BR>/<P> tag which CKEditor input.

qa-plugin/wysiwyg-editor/qa-wysiwyg-editor.php : function read_post()
qa-plugin/ckeditor4/qa-ckeditor4.php : function read_post() <== For my CKEditor4 plugin.

//$htmlformatting=preg_replace('/<\s*\/?\s*(br|p)\s*\/?\s*>/i', '', $html); // remove <p>, <br>, etc... since those are OK in text
$htmlformatting = $html;
<P> tag is just stored by upper hack. However, I cannot understand need of this code enough. Therefore, another problem may occur by upper hack. Gideon will be able to explain meaning of this line enough.
Great. This helps. Then I also did some modification to the css to remove margin-top to the p in snow theme.
edited by
This line of code also crossed my way and I was wondering what it means.

Now I think the following: If the posted text only contains <p> and <br /> it shall be saved as only-text. If there are other html tags included, it gets saved as HTML. Probably the reason was to save database storage in removing the <p> and <br /> tags.

I don't know if it is a good idea, but I remember some of my users complaining about missing lines etc. but I cannot say if this was correlated to the preg_replace above...


The problem with this, however, is that a pasted text which is written in one line, e.g. "<p>Test</p> <p>Test</p>" will become:

"Test Test"

instead of:


Which is of course incorrect.
I conclude, we should declare this line as a bug.