Whitespace and HTML Management Filters

Five useful filters to handle whitespace and HTML elements effectively: lstrip, rstrip, strip, strip_html, and strip_newlines. We'll explore how they relate to each other and offer practical examples of their usage.

Lstrip, Rstrip, and Strip Filters

The lstrip, rstrip, and strip filters deal with whitespace removal in strings. They are particularly helpful when you want to remove unnecessary spaces or line breaks that may negatively impact your layout or template logic.

  • lstrip: This filter removes any whitespace from the beginning (left side) of a string.
  • rstrip: This filter removes any whitespace from the end (right side) of a string.
  • strip: This filter removes any whitespace from both the beginning and the end of a string.


{{ '   Hello, world!   ' | lstrip }}
{# Output: 'Hello, world!   ' #}

{{ '   Hello, world!   ' | rstrip }}
{# Output: '   Hello, world!' #}

{{ '   Hello, world!   ' | strip }}
{# Output: 'Hello, world!' #}

By using these filters, you can easily fix issues related to content and whitespace, ensuring a clean and well-structured text or content.

Strip_html Filter

The strip_html filter is useful for removing all HTML tags from a string, leaving only the plain text content. This filter is particularly helpful when you want to display text-only content on your page, such as when generating meta descriptions or displaying excerpts.


{{ '<h1>Hello, world!</h1><p>Welcome to my store.</p>' | strip_html }}
{# Output: 'Hello, world! Welcome to my store.' #}

Strip_newlines Filter

The strip_newlines filter removes any newline characters (\n) from a string, which can be helpful when dealing with content that includes line breaks. This filter is useful for displaying text in a single line or when preparing content for JavaScript or other code that requires a specific format.


{{ "Hello,
Welcome to my store." | strip_newlines }}
{# Output: 'Hello,world!Welcome to my store.' #}

In the example above, the strip_newlines filter removes the newline characters from the string, resulting in a continuous line of text.

Newline_to_br Filter

Let's say you have a settings data from a text area field containing line breaks, and you want to display it on your store's product page while preserving the original formatting.

{% capture settings_data %}
Feature 1
Feature 2
Feature 3
{% endcapture %}

{{ product_description | newline_to_br }}
{# Output: 'Feature 1<br>Feature 2<br>Feature 3' #}

In this example, the newline_to_br filter is applied to the 'settings_data' variable, converting all newline characters (\n) into HTML line break elements (<br>), thus preserving the original formatting when displayed on the product page.

Joe Pichardo | Shopify Developer

About Joe Pichardo

Joe Pichardo is a Shopify Developer creating themes and apps to help other programmers succeed on the ecommerce platform.

Having trouble? Ask for help.