68 prb = inliner.problematic(rawtext, rawtext, msg) |
68 prb = inliner.problematic(rawtext, rawtext, msg) |
69 return [prb], [msg] |
69 return [prb], [msg] |
70 # Base URL mainly used by inliner.pep_reference; so this is correct: |
70 # Base URL mainly used by inliner.pep_reference; so this is correct: |
71 context = inliner.document.settings.context |
71 context = inliner.document.settings.context |
72 try: |
72 try: |
73 refedentity = context.req.entity_from_eid(eid_num) |
73 refedentity = context._cw.entity_from_eid(eid_num) |
74 except UnknownEid: |
74 except UnknownEid: |
75 ref = '#' |
75 ref = '#' |
76 rest += u' ' + context.req._('(UNEXISTANT EID)') |
76 rest += u' ' + context._cw._('(UNEXISTANT EID)') |
77 else: |
77 else: |
78 ref = refedentity.absolute_url() |
78 ref = refedentity.absolute_url() |
79 set_classes(options) |
79 set_classes(options) |
80 return [nodes.reference(rawtext, utils.unescape(rest), refuri=ref, |
80 return [nodes.reference(rawtext, utils.unescape(rest), refuri=ref, |
81 **options)], [] |
81 **options)], [] |
94 context = state.document.settings.context |
94 context = state.document.settings.context |
95 source = state_machine.input_lines.source( |
95 source = state_machine.input_lines.source( |
96 lineno - state_machine.input_offset - 1) |
96 lineno - state_machine.input_offset - 1) |
97 #source_dir = os.path.dirname(os.path.abspath(source)) |
97 #source_dir = os.path.dirname(os.path.abspath(source)) |
98 fid = arguments[0] |
98 fid = arguments[0] |
99 for lang in chain((context.req.lang, context.vreg.property_value('ui.language')), |
99 for lang in chain((context._cw.lang, context.vreg.property_value('ui.language')), |
100 context.config.available_languages()): |
100 context.config.available_languages()): |
101 rid = '%s_%s.rst' % (fid, lang) |
101 rid = '%s_%s.rst' % (fid, lang) |
102 resourcedir = context.config.locate_doc_file(rid) |
102 resourcedir = context.config.locate_doc_file(rid) |
103 if resourcedir: |
103 if resourcedir: |
104 break |
104 break |
145 winclude_directive.options = {'literal': directives.flag, |
145 winclude_directive.options = {'literal': directives.flag, |
146 'encoding': directives.encoding} |
146 'encoding': directives.encoding} |
147 |
147 |
148 try: |
148 try: |
149 from pygments import highlight |
149 from pygments import highlight |
150 from pygments.lexers import get_lexer_by_name, LEXERS |
150 from pygments.lexers import get_lexer_by_name |
151 from pygments.formatters import HtmlFormatter |
151 from pygments.formatters import HtmlFormatter |
152 except ImportError: |
152 except ImportError: |
153 pygments_directive = None |
153 pygments_directive = None |
154 else: |
154 else: |
155 _PYGMENTS_FORMATTER = HtmlFormatter() |
155 _PYGMENTS_FORMATTER = HtmlFormatter() |
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.req.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 |