34 lines
747 B
Python
34 lines
747 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
import codecs
|
|
|
|
from docutils import nodes
|
|
from docutils.parsers.rst import Directive, directives
|
|
|
|
|
|
def set_source_info(directive, node):
|
|
node.source, node.line = \
|
|
directive.state_machine.get_source_and_line(directive.lineno)
|
|
|
|
|
|
class CodeBlock(Directive):
|
|
"""
|
|
Directive for a code block with special highlighting or line numbering
|
|
settings.
|
|
"""
|
|
|
|
has_content = True
|
|
required_arguments = 1
|
|
optional_arguments = 0
|
|
final_argument_whitespace = False
|
|
|
|
def run(self):
|
|
code = u'\n'.join(self.content)
|
|
|
|
literal = nodes.literal_block(code, code)
|
|
literal['classes'] = ['brush: java;']
|
|
|
|
set_source_info(self, literal)
|
|
return [literal]
|