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. Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
  5. Help text hyperlinks by sa2812 1 year, 7 months ago

Comments

Tarken (on November 13, 2008):

Exactly what I needed! Thanks a bunch

#

Please login first before commenting.