Commits

Anonymous committed b4b2eb0

- Make rst-directive optional

Comments (0)

Files changed (1)

slipper/directives/rst-directive.py

 # -*- coding: utf-8 -*-
 """
-    The Pygments MoinMoin Parser
+    The Pygments Docutils Parser
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     This fragment is a Docutils_ 0.4 directive that renders source code
 # Set to True if you want inline CSS styles instead of classes
 INLINESTYLES = False
 
-from pygments.formatters import HtmlFormatter
+try:
+	from pygments.formatters import HtmlFormatter
+except ImportError:
+	pass
+else:
+	# The default formatter
+	DEFAULT = HtmlFormatter(noclasses=INLINESTYLES)
 
-# The default formatter
-DEFAULT = HtmlFormatter(noclasses=INLINESTYLES)
+	# Add name -> formatter pairs for every variant you want to use
+	VARIANTS = {
+	    # 'linenos': HtmlFormatter(noclasses=INLINESTYLES, linenos=True),
+		}
 
-# Add name -> formatter pairs for every variant you want to use
-VARIANTS = {
-    # 'linenos': HtmlFormatter(noclasses=INLINESTYLES, linenos=True),
-}
+	from docutils import nodes
+	from docutils.parsers.rst import directives
 
+	from pygments import highlight
+	from pygments.lexers import get_lexer_by_name, TextLexer
 
-from docutils import nodes
-from docutils.parsers.rst import directives
+	def pygments_directive(name, arguments, options, content, lineno,
+	                       content_offset, block_text, state, state_machine):
+	    try:
+	        lexer = get_lexer_by_name(arguments[0])
+	    except ValueError:
+	        # no lexer found - use the text one instead of an exception
+	        lexer = TextLexer()
+	    # take an arbitrary option if more than one is given
+	    formatter = options and VARIANTS[options.keys()[0]] or DEFAULT
+	    parsed = highlight(u'\n'.join(content), lexer, formatter)
+	    return [nodes.raw('', parsed, format='html')]
 
-from pygments import highlight
-from pygments.lexers import get_lexer_by_name, TextLexer
+	pygments_directive.arguments = (1, 0, 1)
+	pygments_directive.content = 1
+	pygments_directive.options = dict([
+		(key, directives.flag) for key in VARIANTS
+		])
 
-def pygments_directive(name, arguments, options, content, lineno,
-                       content_offset, block_text, state, state_machine):
-    try:
-        lexer = get_lexer_by_name(arguments[0])
-    except ValueError:
-        # no lexer found - use the text one instead of an exception
-        lexer = TextLexer()
-    # take an arbitrary option if more than one is given
-    formatter = options and VARIANTS[options.keys()[0]] or DEFAULT
-    parsed = highlight(u'\n'.join(content), lexer, formatter)
-    return [nodes.raw('', parsed, format='html')]
-
-pygments_directive.arguments = (1, 0, 1)
-pygments_directive.content = 1
-pygments_directive.options = dict([(key, directives.flag) for key in VARIANTS])
-
-directives.register_directive('sourcecode', pygments_directive)
+	directives.register_directive('sourcecode', pygments_directive)