def is_valid_html(html): try: fragments_fromstring(html.encode('utf-8'), parser=HTMLParser(strict=True)) except ParseError: return False return True
def parse(self, markup): parser = html5parser.HTMLParser(namespaceHTMLElements=False) with warnings.catch_warnings(): warnings.simplefilter("ignore") return html5parser.fragments_fromstring(markup, guess_charset=False, parser=parser)
def _validate_htmloutput(self, htmloutput, field, value): try: fragments_fromstring(value.encode('utf-8'), parser=HTMLParser(strict=True)) except ParseError as e: return self._error( field, 'The provided HTML template is not valid: {}'.format(e)) if isinstance(htmloutput, dict): if htmloutput.get('template_vars_required'): vars = re.findall('\$(\w+)', value) if not len(vars): return self._error( field, "The provided HTML template is not valid: no vars available." )
def to_slate(self, text): " Convert text to a slate value. A slate value is a list of elements " fragments = html5parser.fragments_fromstring(text) nodes = [] for f in fragments: nodes += self.deserialize(f) return self.normalize(nodes)
def call_it(self, *args, **kwargs): from lxml.html.html5parser import fragments_fromstring return fragments_fromstring(*args, **kwargs)