def wbr(value, max=35): """\ Injects zero-width word break characters in long blocks of text that have no natural word break points. """ value = re.sub(r'([^\s\u200b]{' + str(max) + r'})', '\\1\u200b', value) value = re.sub('\u200b$', '', value) return value
def add_wbr_to_html(t): parts = [] for part in re.split(r'(<[^>]*>)', t): if part == '': continue if part.startswith('<'): parts.append(part) else: part = html.unescape(part) part = re.sub(r'([^\s\u200b]{35})', '\\1\u200b', part) parts.append(html.escape(part)) return ''.join(parts)