157 def pygments_directive(name, arguments, options, content, lineno, |
157 def pygments_directive(name, arguments, options, content, lineno, |
158 content_offset, block_text, state, state_machine): |
158 content_offset, block_text, state, state_machine): |
159 try: |
159 try: |
160 lexer = get_lexer_by_name(arguments[0]) |
160 lexer = get_lexer_by_name(arguments[0]) |
161 except ValueError: |
161 except ValueError: |
162 import traceback |
|
163 traceback.print_exc() |
|
164 print sorted(aliases for module_name, name, aliases, _, _ in LEXERS.itervalues()) |
|
165 # no lexer found |
162 # no lexer found |
166 lexer = get_lexer_by_name('text') |
163 lexer = get_lexer_by_name('text') |
167 parsed = highlight(u'\n'.join(content), lexer, _PYGMENTS_FORMATTER) |
164 parsed = highlight(u'\n'.join(content), lexer, _PYGMENTS_FORMATTER) |
168 context = state.document.settings.context |
165 # don't fail if no context set on the sourcecode directive |
169 context._cw.add_css('pygments.css') |
166 try: |
|
167 context = state.document.settings.context |
|
168 context._cw.add_css('pygments.css') |
|
169 except AttributeError: |
|
170 # used outside cubicweb |
|
171 pass |
170 return [nodes.raw('', parsed, format='html')] |
172 return [nodes.raw('', parsed, format='html')] |
171 |
173 |
172 pygments_directive.arguments = (1, 0, 1) |
174 pygments_directive.arguments = (1, 0, 1) |
173 pygments_directive.content = 1 |
175 pygments_directive.content = 1 |
174 |
176 |