mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Add warning facility on unknown Pygments lexer names.
This commit is contained in:
parent
454c9d3b9e
commit
1996a9e5e9
@ -34,6 +34,7 @@ try:
|
|||||||
from pygments.styles import get_style_by_name
|
from pygments.styles import get_style_by_name
|
||||||
from pygments.styles.friendly import FriendlyStyle
|
from pygments.styles.friendly import FriendlyStyle
|
||||||
from pygments.token import Generic, Comment, Number
|
from pygments.token import Generic, Comment, Number
|
||||||
|
from pygments.util import ClassNotFound
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pygments = None
|
pygments = None
|
||||||
lexers = None
|
lexers = None
|
||||||
@ -170,7 +171,7 @@ class PygmentsBridge(object):
|
|||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def highlight_block(self, source, lang, linenos=False):
|
def highlight_block(self, source, lang, linenos=False, warn=None):
|
||||||
if isinstance(source, str):
|
if isinstance(source, str):
|
||||||
source = source.decode()
|
source = source.decode()
|
||||||
if not pygments:
|
if not pygments:
|
||||||
@ -197,7 +198,15 @@ class PygmentsBridge(object):
|
|||||||
if lang in lexers:
|
if lang in lexers:
|
||||||
lexer = lexers[lang]
|
lexer = lexers[lang]
|
||||||
else:
|
else:
|
||||||
|
try:
|
||||||
lexer = lexers[lang] = get_lexer_by_name(lang)
|
lexer = lexers[lang] = get_lexer_by_name(lang)
|
||||||
|
except ClassNotFound:
|
||||||
|
if warn:
|
||||||
|
warn('Pygments lexer name %s is not known' % lang)
|
||||||
|
return self.unhighlighted(source)
|
||||||
|
else:
|
||||||
|
raise
|
||||||
|
else:
|
||||||
lexer.add_filter('raiseonerror')
|
lexer.add_filter('raiseonerror')
|
||||||
try:
|
try:
|
||||||
if self.dest == 'html':
|
if self.dest == 'html':
|
||||||
|
Loading…
Reference in New Issue
Block a user