Introduction
The Django template filters: linebreaks and linebreaksbr both handle the conversion of line breaks to plain text. Although they behave differently in terms of how the HTML is generated.
1. linebreaks:
- Converts the plain text string into a HTML paragraph
<p>when there are no newline characters (\n) found in the plain text. - Converts the newline character (
\n) in a plain text string into HTML<p>(paragraph) and<br>(line break) tags. - Each block of text separated by two or more newlines becomes a
<p>tag, and single newlines within that block are converted to<br>tags.
Example:
{% with text="This is line one.\nThis is line two.\n\nThis is a new paragraph." %}
{{ text|linebreaks }}
{% endwith %}
Output:
<p>This is line one.<br>This is line two.</p>
<p>This is a new paragraph.</p>
2. linebreaksbr:
- Converts every newline (
\n) into an HTML<br>tag, without creating paragraphs (<p>). And keeping all text in the same flow but respecting line breaks.
Example:
{% with text="This is line one.\nThis is line two.\n\nThis is a new paragraph." %}
{{ text|linebreaksbr }}
{% endwith %}
Output:
This is line one.<br>This is line two.<br><br>This is a new paragraph.
Summary:
Use linebreaks when you want paragraphs and linebreaksbr when you want simple line breaks without creating paragraphs. As simple as that!
Top comments (0)