Я мог бы заставить его работать следующим образом:
Чтобы сгенерировать ..
, мне нужно было изменить ParsedLiteral, поэтому я скопировал класс ParsedLiteral в Code следующим образом. Смена строки 5 self.options['class'] = ['brush: js;'] # <--
- основная идея.
Код класса (Директива):
option_spec = {'class': directives.class_option}
has_content = True
def run(self):
self.options['class'] = ['brush: js;'] # <--
set_classes(self.options)
self.assert_has_content()
text = '\n'.join(self.content)
text_nodes, messages = self.state.inline_text(text, self.lineno)
node = nodes.literal_block(text, '', *text_nodes, **self.options)
node.line = self.content_offset + 1
return [node] + messages
Добавьте одну строку в init .py следующим образом.
_directive_registry = {
'code': ('body', 'Code'),
Теперь вы можете использовать следующий код
.. code::
print "Hello world!" # *tricky* code
Чтобы получить этот HTML-код
<code><pre class="brush: js; literal-block">
print "Hello world!" # <em>tricky</em> code
Возможное простое решение?
Я мог бы использовать ParsedLiteral, если найду способ передать параметр 'bruch: js;'. Однако, когда я попробовал код
.. parsed-literal::
:class: "brunch: js;"
print "Hello world!" # *tricky* code
Тег становится <pre class="brunch ja">
.