xml_tools, plugin XEP-0071, XEP-0277: add method expandNewLinesToXHTML:

- \n in XHTML content should not be converted to <br /> by the frontend
    - save it directly in the Atom payload for better compatibility with other clients
This commit is contained in:
souliane 2015-12-10 14:00:21 +01:00
commit ca5c913ce2
2 changed files with 15 additions and 1 deletions

View file

@ -22,6 +22,7 @@ from sat.core import exceptions
from sat.core.log import getLogger
log = getLogger(__name__)
from sat.tools import xml_tools
from wokkel import disco, iwokkel
from zope.interface import implements
# from lxml import etree
@ -118,6 +119,7 @@ class XEP_0071(object):
raise exceptions.DataError(_("Can't have xhtml and rich content at the same time"))
if xhtml:
d = self.synt_plg.clean_xhtml(xhtml)
d.addCallback(xml_tools.expandNewLinesToXHTML)
d.addCallback(syntax_converted)
return d

View file

@ -180,6 +180,7 @@ class XEP_0277(object):
key = check_conflict(u'{}_xhtml'.format(elem.name))
data = data_elt.toXml()
microblog_data[key] = yield self.host.plugins["TEXT-SYNTAXES"].clean_xhtml(data)
microblog_data[key] = xml_tools.expandNewLinesToXHTML(microblog_data[key])
else:
key = check_conflict(elem.name)
microblog_data[key] = unicode(elem)
@ -368,6 +369,7 @@ class XEP_0277(object):
raise failure.Failure(exceptions.DataError(_("Can't have xhtml and rich content at the same time")))
else: # clean the XHTML input
converted = yield synt.clean_xhtml(data[attr])
converted = xml_tools.expandNewLinesToXHTML(converted)
xml_content = u'<div xmlns="{ns}">{converted}</div>'.format(
ns=NS_XHTML,