simpleton wrote in post #1118613:
There are quite a lot of line break issues with Rails on StackOverflow
and
the web in general. A lot of solutions are ugly and a lot modify
simple_format so I've created a patch that I'd like to hear thoughts on
before submitting a PR.
There are a lot of questions about this on Stack Overflow because a lot
of people don't understand the basic rules of HTML. That's not the fault
of simple_format, which IMHO works exactly as expected and intended.
I've made a slight modification to split_paragraphs and how it gsubs the
newline characters in paragraphs up so that if you pass it a line
option,
instead of getting rid of all newlines and return carriage characters,
it
can substitute \r\n for an html break element.
I'm not familiar with split_paragraphs, and I don't see it listed when
searching the Rails documentation, but my guess it that it also works as
expected and intended.
This way if a saved chunk of text is the following then it won't be
stripped down to just the 2 lines of text but will have the <br /> tags
that were obviously intended:"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nBig
gap.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nPlease."
But, that is the expected results for HTML to normalize white space into
a single character. Changing this behavior would be unexpected and
unintended, again IMHO.
This doesn't affect the regular behaviour of simple_format and will
still
return the usual result without the option.I find that this isn't an edge case but is frequent enough to warrant
this
and not have people overriding simple_format and split_paragraphs in
their
application helper.
I think any behavior change to these helpers should be left up to the
individual developers to put into their own helper libraries. I don't
see a place for this in Rails itself. The simple_format helper already
works as anyone who truly understands HTML expects it to work.
P.S. The proper line ending character is \n (stupid Windows...). That
was a jest... sort of.