parameters: (env, s, length=255, killwords=False, end='...', leeway=None)
return_statement: return result + end
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 discard 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. Strings that only exceed the length by the tolerance
      margin given in the fourth parameter will not be truncated.
  
      .. sourcecode:: jinja
  
          {{ "foo bar baz qux"|truncate(9) }}
              -> "foo..."
          {{ "foo bar baz qux"|truncate(9, True) }}
              -> "foo ba..."
          {{ "foo bar baz qux"|truncate(11) }}
              -> "foo bar baz qux"
          {{ "foo bar baz qux"|truncate(11, False, '...', 0) }}
              -> "foo bar..."
  
      The default leeway on newer Jinja2 versions is 5 and was 0 before but
      can be reconfigured globally.
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 discard 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. Strings that only exceed the length by the tolerance
      margin given in the fourth parameter will not be truncated.
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 discard 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 . Strings that only exceed the length by the tolerance margin given in the fourth parameter will not be truncated .
function: def do_truncate(env, s, length=255, killwords=False, end='...', leeway=None):
      """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 discard 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. Strings that only exceed the length by the tolerance
      margin given in the fourth parameter will not be truncated.
  
      .. sourcecode:: jinja
  
          {{ "foo bar baz qux"|truncate(9) }}
              -> "foo..."
          {{ "foo bar baz qux"|truncate(9, True) }}
              -> "foo ba..."
          {{ "foo bar baz qux"|truncate(11) }}
              -> "foo bar baz qux"
          {{ "foo bar baz qux"|truncate(11, False, '...', 0) }}
              -> "foo bar..."
  
      The default leeway on newer Jinja2 versions is 5 and was 0 before but
      can be reconfigured globally.
      """
      if leeway is None:
          leeway = env.policies['truncate.leeway']
      assert length >= len(end), 'expected length >= %s, got %s' % (len(end), length)
      assert leeway >= 0, 'expected leeway >= 0, got %s' % leeway
      if len(s) <= length + leeway:
          return s
      if killwords:
          return s[:length - len(end)] + end
      result = s[:length - len(end)].rsplit(' ', 1)[0]
      return result + end
function_tokens: def do_truncate ( env , s , length = 255 , killwords = False , end = '...' , leeway = None ) : if leeway is None : leeway = env . policies [ 'truncate.leeway' ] assert length >= len ( end ) , 'expected length >= %s, got %s' % ( len ( end ) , length ) assert leeway >= 0 , 'expected leeway >= 0, got %s' % leeway if len ( s ) <= length + leeway : return s if killwords : return s [ : length - len ( end ) ] + end result = s [ : length - len ( end ) ] . rsplit ( ' ' , 1 ) [ 0 ] return result + end