Login

Inline truncate by character number

Author:
esanchez
Posted:
July 7, 2008
Language:
Python
Version:
.96
Score:
1 (after 1 ratings)

Sometimes I need to truncate a string after a number of characters, usually to avoid breaking the page layout. When the string we have to truncate is a filename I don't want to hide its extension so a user can easily recognize the file.

My solution is add the ellipsis at the middle of the string converting

ALongLongLongTitleDocumentThatExemplifiesThisSnippet.txt

into

ALongLongLong...hisSnippet.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from django import template

register = template.Library()

@register.filter("inline_truncate")
def inline_truncate(value, size):
    """Truncates a string to the given size placing the ellipsis at the middle of the string"""
    if len(value) > size and size > 3:
        start = (size - 3) / 2
        end = (size - 3) - start
        return value[0:start] + '...' + value[-end:]
    else:
        return value[0:size]

More like this

  1. Form field with fixed value by roam 1 week, 5 days ago
  2. New Snippet! by Antoliny0919 2 weeks, 5 days ago
  3. Add Toggle Switch Widget to Django Forms by OgliariNatan 3 months, 1 week ago
  4. get_object_or_none by azwdevops 7 months ago
  5. Mask sensitive data from logger by agusmakmun 8 months, 3 weeks ago

Comments

Tarken (on November 13, 2008):

Exactly what I needed! Thanks a bunch

#

Please login first before commenting.