# HG changeset patch # User Thierry Florac # Date 1530863259 -7200 # Node ID 0910e92af5e7b6e49fab8f086977e847dabfb7b7 # Parent e01d3a0db6525e824eb7188192c4db9db07fd8e4 Added "br" TALES expression to convert characters to HTML breaks diff -r e01d3a0db652 -r 0910e92af5e7 src/pyams_utils/text.py --- a/src/pyams_utils/text.py Wed Jul 04 09:05:30 2018 +0200 +++ b/src/pyams_utils/text.py Fri Jul 06 09:47:39 2018 +0200 @@ -152,3 +152,18 @@ terms = [SimpleTerm(name, name, translate(adapt.title).label) for name, adapt in registry.getAdapters(('', request), IHTMLRenderer)] super(RenderersVocabulary, self).__init__(terms) + + +@adapter_config(name='br', context=(Interface, Interface, Interface), provides=ITALESExtension) +class BrTalesExtension(ContextRequestViewAdapter): + """extension:br(value, class) TALES expression + + This expression can be used to context a given character ('|' by default) into HTML + breaks with given CSS class. + """ + + def render(self, context=None, css_class='', character='|'): + if context is None: + context = self.context + br = '
'.format('class="{0}"'.format(css_class) if css_class else '') + return context.replace(character, br)