equal
deleted
inserted
replaced
17 import html |
17 import html |
18 |
18 |
19 import docutils.core |
19 import docutils.core |
20 from pyramid.interfaces import IRequest |
20 from pyramid.interfaces import IRequest |
21 from zope.interface import Interface |
21 from zope.interface import Interface |
22 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm |
22 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary |
23 |
23 |
24 # import packages |
24 # import packages |
25 from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, adapter_config |
25 from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, adapter_config |
26 # import interfaces |
26 # import interfaces |
27 from pyams_utils.interfaces.tales import ITALESExtension |
27 from pyams_utils.interfaces.tales import ITALESExtension |
172 This expression can be used to context a given character ('|' by default) into HTML |
172 This expression can be used to context a given character ('|' by default) into HTML |
173 breaks with given CSS class. |
173 breaks with given CSS class. |
174 """ |
174 """ |
175 |
175 |
176 @staticmethod |
176 @staticmethod |
177 def render(value, css_class='', character='|'): |
177 def render(value, css_class='', character='|', start_tag=None, end_tag=None): |
178 if not value: |
178 if not value: |
179 return '' |
179 return '' |
180 br = '<br {0} />'.format('class="{0}"'.format(css_class) if css_class else '') |
180 br = '<br {0} />'.format('class="{0}"'.format(css_class) if css_class else '') |
181 return value.replace(character, br) |
181 if start_tag or end_tag: |
|
182 elements = value.split(character) |
|
183 if start_tag: |
|
184 elements[0] = '<{0}>{1}</{0}>'.format(start_tag, elements[0]) |
|
185 if end_tag: |
|
186 elements[-1] = '<{0}>{1}</{0}>'.format(end_tag, elements[-1]) |
|
187 return br.join(elements) |
|
188 else: |
|
189 return value.replace(character, br) |