parameters: (s, length=255, killwords=False, end='...')
return_statement: return u' '.join(result)
docstring: Return a truncated copy of the string. The length is specified
      with the first parameter which defaults to ``255``. If the second
      parameter is ``true`` the filter will cut the text at length. Otherwise
      it will try to save the last word. If the text was in fact
      truncated it will append an ellipsis sign (``"..."``). If you want a
      different ellipsis sign than ``"..."`` you can specify it using the
      third parameter.
  
      .. sourcecode jinja::
  
          {{ mytext|truncate(300, false, '&raquo;') }}
              truncate mytext to 300 chars, don't split up words, use a
              right pointing double arrow as ellipsis sign.
docstring_summary: Return a truncated copy of the string. The length is specified
      with the first parameter which defaults to ``255``. If the second
      parameter is ``true`` the filter will cut the text at length. Otherwise
      it will try to save the last word. If the text was in fact
      truncated it will append an ellipsis sign (``"..."``). If you want a
      different ellipsis sign than ``"..."`` you can specify it using the
      third parameter.
docstring_tokens: Return a truncated copy of the string . The length is specified with the first parameter which defaults to 255 . If the second parameter is true the filter will cut the text at length . Otherwise it will try to save the last word . If the text was in fact truncated it will append an ellipsis sign ( ... ) . If you want a different ellipsis sign than ... you can specify it using the third parameter .
function: def do_truncate(s, length=255, killwords=False, end='...'):
      """Return a truncated copy of the string. The length is specified
      with the first parameter which defaults to ``255``. If the second
      parameter is ``true`` the filter will cut the text at length. Otherwise
      it will try to save the last word. If the text was in fact
      truncated it will append an ellipsis sign (``"..."``). If you want a
      different ellipsis sign than ``"..."`` you can specify it using the
      third parameter.
  
      .. sourcecode jinja::
  
          {{ mytext|truncate(300, false, '&raquo;') }}
              truncate mytext to 300 chars, don't split up words, use a
              right pointing double arrow as ellipsis sign.
      """
      if len(s) <= length:
          return s
      elif killwords:
          return s[:length] + end
      words = s.split(' ')
      result = []
      m = 0
      for word in words:
          m += len(word) + 1
          if m > length:
              break
          result.append(word)
      result.append(end)
      return u' '.join(result)
function_tokens: def do_truncate ( s , length = 255 , killwords = False , end = '...' ) : if len ( s ) <= length : return s elif killwords : return s [ : length ] + end words = s . split ( ' ' ) result = [ ] m = 0 for word in words : m += len ( word ) + 1 if m > length : break result . append ( word ) result . append ( end ) return u' ' . join ( result )