Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quill 2.0: Support for multiple line-breaks within a single paragraph #4412

Open
dstj opened this issue Sep 13, 2024 · 4 comments
Open

Quill 2.0: Support for multiple line-breaks within a single paragraph #4412

dstj opened this issue Sep 13, 2024 · 4 comments

Comments

@dstj
Copy link

dstj commented Sep 13, 2024

This is a modified revival of #2872 as it was closed when Quill 2.0 was released. Also related: #2469

Quote from #2872

Lines and paragraphs are not same things in typography. Usually, there's a spacing between paragraphs, which less than the height of a full line, unless there are different elements involved like figures, headings,... And, sometimes, there's a need to use multiple simple line-breaks for the same paragraph.

There can be produced output allowing multiple line-breaks within a single paragraph, like:

<p>Some text paragraph</p>
<p>
  Another text paragraph:<br/>
  with<br/>
  multiple<br/>
  lines
<p>
<p>Another paragraph</p>

Actual behavior:

Can't produce output above.

Suggested behaviour

In text editors like Microsoft Word (or CKEditor5 and TinyMCE), Shift-Enter will create a simple line break, while Enter will create a new paragraph.

#4248 tried with a custom keyboard binding, but it doesn't work because the underlying Parchment data model that does not support it.

Version
Quill 2.0.2
via ngx-quill: "^25.3.2"

@zozoh
Copy link

zozoh commented Oct 22, 2024

The key reason is that Quill uses \n to generate a new paragraph, so it doesn't have an elegant way to identify <br>. If possible, just like markdown syntax, use \n\n to generate a new paragraph, and leave \n for <br>. Then it should be very easy to support line breaks within a paragraph.

However, this seems difficult to complete in a short time, so that the author tends not to complete it. The same problem also occurs in the support of Table. Of course, this is another topic ...

@dstj
Copy link
Author

dstj commented Oct 22, 2024

@zozoh
Exactly, and that, unfortunately, disqualifies Quill as a serious, viable contender for Rich Text Editor replacement like CKEditor5 and TinyMCE or Froala for everything except simple use cases. :/

\n and \n\n seems like a valid solution (with a possible toggle option like enableLineBreaks: true|false maybe to avoid breaking old implementations)...

@zozoh
Copy link

zozoh commented Oct 25, 2024

@dstj
Yes, every time I thought this, I feel very sad, Quill's abstraction layer is very good, I love the Blots and related design, it is almost like I should have, but as you known few very small things prevent it from shining brightly.

@mtnadb
Copy link

mtnadb commented Nov 15, 2024

.ql-editor {
white-space: normal !important;

p:empty {
&::before {
content: " ";
white-space-collapse: preserve;
}
}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants