Намедни я тут
зафиксировал
одну проблему, проявляющуюся как
результат неудачного совмещения
визуального редактора TinyMCE и библиотеки
фильтрации кода HTML. Используя TinyMCE, в
Plone невозможно добавить на страницу
Javascript. Редактор оборачивает его в «CDATA»
а Плоновская библиотека фильтрации
вырезает это содержимое при рендеринге
страницы.
Я тут покопался
в деталях, из любопытства, нашел корень
проблемы:
def parse_declaration(self, i): """Fix handling of CDATA sections. Code borrowed from BeautifulSoup. """ j = None if self.rawdata[i:i+9] == '<![CDATA[': k = self.rawdata.find(']]>', i) if k == -1: k = len(self.rawdata) j = k+3 else: try: j = SGMLParser.parse_declaration(self, i) except SGMLParseError: j = len(self.rawdata) return j |
Хотя, по чесноку,
корень проблемы в том, что не следует
внедрять код Javascript в страницу. Надо
подключать внешние файлы.
Что интересно:
sgmllib — Simple
SGML parser
Deprecated since
version 2.6: The sgmllib module has been removed in Python 3
То есть следующая
версия Plone не должна использовать
SGMLParser, а это большая работа по замене
кода.
original post http://vasnake.blogspot.com/2013/06/cdata.html
original post http://vasnake.blogspot.com/2013/06/cdata.html
Комментариев нет:
Отправить комментарий