Instantly share code, notes, and snippets.

Embed
What would you like to do?
{% macro truncate(text, limit, append) %}
{# settings #}
{% set suffix = append|default('...') %}
{% set punctuation = ['.',',','-',':',';'] %}
{# logic #}
{% set array = text|split(' ') %}
{% set arrayTruncated = array|slice(0, limit) %}
{% set string = arrayTruncated|join(' ') %}
{% if limit and array|length > limit %}
{% for mark in punctuation %}
{% set string = string|trim(mark) %}
{% endfor %}
{% set string = string ~ suffix %}
{% endif %}
{{ string }}
{% endmacro %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment