def highlight_block(self, source: str, lang: str, opts: Optional[Dict] = None, force: bool = False, location: Any = None, **kwargs: Any) -> str: if not isinstance(source, str): source = source.decode() lexer = self.get_lexer(source, lang, opts, force, location) # highlight via Pygments formatter = self.get_formatter(**kwargs) try: hlsource = highlight(source, lexer, formatter) except ErrorToken: # this is most probably not the selected language, # so let it pass unhighlighted if lang == 'default': pass # automatic highlighting failed. else: logger.warning(__('Could not lex literal_block as "%s". ' 'Highlighting skipped.'), lang, type='misc', subtype='highlighting_failure', location=location) lexer = self.get_lexer(source, 'none', opts, force, location) hlsource = highlight(source, lexer, formatter) if self.dest == 'html': return hlsource else: # MEMO: this is done to escape Unicode chars with non-Unicode engines return texescape.hlescape(hlsource, self.latex_engine)
def highlight_block(self, source, lang, opts=None, force=False, location=None, **kwargs): # type: (str, str, Dict, bool, Any, Any) -> str if not isinstance(source, str): source = source.decode() lexer = self.get_lexer(source, lang, opts, force, location) # trim doctest options if wanted if isinstance(lexer, PythonConsoleLexer) and self.trim_doctest_flags: source = doctest.blankline_re.sub('', source) source = doctest.doctestopt_re.sub('', source) # highlight via Pygments formatter = self.get_formatter(**kwargs) try: hlsource = highlight(source, lexer, formatter) except ErrorToken: # this is most probably not the selected language, # so let it pass unhighlighted if lang == 'default': pass # automatic highlighting failed. else: logger.warning(__('Could not lex literal_block as "%s". ' 'Highlighting skipped.'), lang, type='misc', subtype='highlighting_failure', location=location) lexer = self.get_lexer(source, 'none', opts, force, location) hlsource = highlight(source, lexer, formatter) if self.dest == 'html': return hlsource else: # MEMO: this is done to escape Unicode chars with non-Unicode engines return texescape.hlescape(hlsource, self.latex_engine)