목차
truncate() 예제 - 문자열을 지정 길이로 자르기
truncate() 정의
truncate() 구문
truncate() 예제 - 문자열을 지정 길이로 자르기
{{ "foo bar baz qux"|truncate(9) }}
결과값: "foo..."
{{ "foo bar baz qux"|truncate(9, False, "...", 5) }} 와 같음.
(문자열길이= 15)보다 (length 9 + leeway 5 = 14)값이 더 작아서 자르기 작동 O.
"foo bar b" 까지가 9인데, 맨 뒤를 점 3개로 대체하면 "foo ba..."가 됨.
killwords 매개변수 값이 False라서 중간의 "bar" 단어가 잘려서 "ba"가 되었으므로 해당 단어와 빈 공백을 버림.
결국, "foo..."가 됨.
{{ "foo bar baz qux"|truncate(9, True) }}
결과값: "foo ba..."
{{ "foo bar baz qux"|truncate(9, True, "...", 5) }} 와 같음.
(문자열길이= 15)보다 (length 9 + leeway 5 = 14)값이 더 작아서 자르기 작동 O.
"foo bar b" 까지가 9인데, 맨 뒤를 점 3개로 대체하면 "foo ba..."가 됨.
killwords 매개변수 값이 True라서 정확히 해당 길이에서 자름.
결국, "foo ba..."가 됨.
{{ "foo bar baz qux"|truncate(11) }}
결과값: "foo bar baz qux"
{{ "foo bar baz qux"|truncate(11, False, "...", 5) }} 와 같음.
(문자열길이= 15)보다 (length 11 + leeway 5 = 16)값이 더 커서 자르기 작동 X.
결국, "foo bar baz qux"가 됨.
{{ "foo bar baz qux"|truncate(11, False, '...', 0) }}
결과값: "foo bar..."
{{ "foo bar baz qux"|truncate(11, Fasle, "...", 0) }} 와 동일.
(문자열길이= 15)보다 (length 11 + leeway 0 = 11)값이 더 작아서 자르기 작동 O.
"foo bar baz" 까지가 11인데, 맨 뒤를 점 3개로 대체하면 "foo bar ..."가 됨.
killwords 매개변수 값이 False라서 "..." 앞의 빈 공백을 날림.
결국, "foo bar..."가 됨.
PS. 문자열을 정확히 해당 길이에서 자르기{{ "foo bar baz qux"|truncate(5, True, '', 0) }} -> foo b
{{ "홈짱닷컴 Homzzang.com"|truncate(4, True, '', 0) }}
-> 홈짱닷컴
truncate() 정의
문자열을 지정 길이로 자른 복사본을 반환하는 필터 .
1.
첫 번째 매개변수 length (자를길이) - (기본값: 255)
두 번째 매개변수 killwords (자름방식) - True: 정확히 해당 길이서 자름. / False: 잘린 마지막 단어를 버림.
세 번째 매개변수 end (잘림표시) - (기본값: ...)
네 번째 매개변수 leeway (허용오차) - 허용오차 범위 내 문자열은 안 자름.
2.
문자열 길이는 문자열 개수로 셈.
일반적으로 문자열 길이는 0부터 세지만, 이 필터에서는 문자열의 길이를 1부터 셈 . 따라서 첫 번째 문자의 인덱스는 1이 되고, 문자열의 마지막 문자의 인덱스는 문자열 길이와 동일값이 됨.
문자열 길이를 문자 개수로 세려면 length() 필터 이용: {{ "홈짱닷컴 Homzzang.com"|length }} {# 17 #} / {{ "foo bar baz qux"|length }} {# 15 #}
3. 공식 매뉴얼
https://jinja.palletsprojects.com/en/3.1.x/templates/#jinja-filters.truncate
truncate() 구문
jinja-filters.truncate(s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None ) → str
[매개변수]
s: str
필수. 지정 길이로 자를 문자열.
length: int = 255
선택. 잘라낼 길이.
문자일 길이는 1부터 세며, 문자열 개수로 셈.
end 매개변수에 포함된 문자열 포함 길이임.
killwords: bool = False
선택. 문자열을 정확히 자를지 여부 지정.
True - 지정 길이에서 정확히 자름.
False - 지정 길이 초과한 부분의 단어 자체를 버림. (기본값) (주의: (length + end) 길이가 단어 중간에 걸친 경우, 해당 단어와 끝의 빈 공백을 버림. )
end: str = '...'
선택. 지정 길이로 잘라진 문자열임을 표시하는 문자열.
leeway: int | None = None
선택. 문자열을 안 자를 허용 오차 범위 길이값.
(length + leeway ) 길이 이내 경우, 문자열을 자르지 않음.
기본값: (최신버전: 5 ), (구 버전: 0 )이나 차후에 바뀔 지 모름.
[반환값]
문자열을 지정 길이로 자른 복사본을 반환.
주소 복사
랜덤 이동