from django.template.defaultfilters import stringfilter
from django.utils.safestring import mark_safe
from django import template
register = template.Library()
@register.filter
@stringfilter
def zerowidthspace_separator(value, num):
"""
Add zero-width space every num chars in string
"""
num = int(num)
locations = range(0, len(value), num)[1:] # loc to insert
new_value = value[:num]
for loc in locations:
if loc + num < len(value):
new_value += '​' + value[loc:(loc+num)]
else:
new_value += '​' + value[loc:] # last substring may have less than num chars
return mark_safe(new_value)
Comments