From dccd43b51001bf227a656411837c4c58895c4346 Mon Sep 17 00:00:00 2001 From: M Nasimul Haque Date: Thu, 26 Sep 2013 00:56:16 +0100 Subject: Add filename option to code-block Prepend the given filename to the code block --- sphinx/directives/code.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sphinx/directives/code.py') diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index 4d43e5ff..8364721e 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -57,6 +57,7 @@ class CodeBlock(Directive): option_spec = { 'linenos': directives.flag, 'emphasize-lines': directives.unchanged_required, + 'filename': directives.unchanged_required, } def run(self): @@ -75,6 +76,9 @@ class CodeBlock(Directive): literal = nodes.literal_block(code, code) literal['language'] = self.arguments[0] + filename = self.options.get('filename') + if filename: + literal['filename'] = filename literal['linenos'] = 'linenos' in self.options if hl_lines is not None: literal['highlight_args'] = {'hl_lines': hl_lines} -- cgit v1.2.1 From 82232d9a40fbfe52da672e526364b3ba651ddbc0 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 11 Jan 2014 08:44:45 +0100 Subject: Closes #668: Allow line numbering of ``code-block`` and ``literalinclude`` directives #to start at an arbitrary line number, with a new ``lineno-start`` option. --- sphinx/directives/code.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'sphinx/directives/code.py') diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index 4d43e5ff..7b1acfd5 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -56,6 +56,7 @@ class CodeBlock(Directive): final_argument_whitespace = False option_spec = { 'linenos': directives.flag, + 'lineno-start': int, 'emphasize-lines': directives.unchanged_required, } @@ -75,9 +76,13 @@ class CodeBlock(Directive): literal = nodes.literal_block(code, code) literal['language'] = self.arguments[0] - literal['linenos'] = 'linenos' in self.options + literal['linenos'] = 'linenos' in self.options or \ + 'lineno-start' in self.options + extra_args = literal['highlight_args'] = {} if hl_lines is not None: - literal['highlight_args'] = {'hl_lines': hl_lines} + extra_args['hl_lines'] = hl_lines + if 'lineno-start' in self.options: + extra_args['linenostart'] = self.options['lineno-start'] set_source_info(self, literal) return [literal] @@ -95,6 +100,7 @@ class LiteralInclude(Directive): final_argument_whitespace = True option_spec = { 'linenos': directives.flag, + 'lineno-start': int, 'tab-width': int, 'language': directives.unchanged_required, 'encoding': directives.encoding, @@ -204,10 +210,13 @@ class LiteralInclude(Directive): set_source_info(self, retnode) if self.options.get('language', ''): retnode['language'] = self.options['language'] - if 'linenos' in self.options: - retnode['linenos'] = True + retnode['linenos'] = 'linenos' in self.options or \ + 'lineno-start' in self.options + extra_args = retnode['highlight_args'] = {} if hl_lines is not None: - retnode['highlight_args'] = {'hl_lines': hl_lines} + extra_args['hl_lines'] = hl_lines + if 'lineno-start' in self.options: + extra_args['linenostart'] = self.options['lineno-start'] env.note_dependency(rel_filename) return [retnode] -- cgit v1.2.1 From f207d092533dcb75024fe9a3e036a72105f27856 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Jan 2014 11:04:12 +0100 Subject: Add :filename: also for literalinclude. Changelog entry. --- sphinx/directives/code.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sphinx/directives/code.py') diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index bfe6c48e..6900ea6b 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -115,6 +115,7 @@ class LiteralInclude(Directive): 'prepend': directives.unchanged_required, 'append': directives.unchanged_required, 'emphasize-lines': directives.unchanged_required, + 'filename': directives.unchanged, } def run(self): @@ -216,6 +217,11 @@ class LiteralInclude(Directive): retnode['language'] = self.options['language'] retnode['linenos'] = 'linenos' in self.options or \ 'lineno-start' in self.options + filename = self.options.get('filename') + if filename is not None: + if not filename: + filename = self.arguments[0] + retnode['filename'] = filename extra_args = retnode['highlight_args'] = {} if hl_lines is not None: extra_args['hl_lines'] = hl_lines -- cgit v1.2.1 From 344417db950d6e816ab2efb21737c2bdf9d1ad53 Mon Sep 17 00:00:00 2001 From: Dmitry Shachnev Date: Sun, 19 Jan 2014 14:17:10 +0400 Subject: Modernize the code now that Python 2.5 is no longer supported - Use print function instead of print statement; - Use new exception handling; - Use in operator instead of has_key(); - Do not use tuple arguments in functions; - Other miscellaneous improvements. This is based on output of `futurize --stage1`, with some manual corrections. --- sphinx/directives/code.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sphinx/directives/code.py') diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index 7b1acfd5..d48da2ee 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -39,7 +39,7 @@ class Highlight(Directive): except Exception: linenothreshold = 10 else: - linenothreshold = sys.maxint + linenothreshold = sys.maxsize return [addnodes.highlightlang(lang=self.arguments[0].strip(), linenothreshold=linenothreshold)] @@ -68,7 +68,7 @@ class CodeBlock(Directive): try: nlines = len(self.content) hl_lines = [x+1 for x in parselinenos(linespec, nlines)] - except ValueError, err: + except ValueError as err: document = self.state.document return [document.reporter.warning(str(err), line=self.lineno)] else: @@ -162,7 +162,7 @@ class LiteralInclude(Directive): if linespec is not None: try: linelist = parselinenos(linespec, len(lines)) - except ValueError, err: + except ValueError as err: return [document.reporter.warning(str(err), line=self.lineno)] # just ignore nonexisting lines nlines = len(lines) @@ -176,7 +176,7 @@ class LiteralInclude(Directive): if linespec: try: hl_lines = [x+1 for x in parselinenos(linespec, len(lines))] - except ValueError, err: + except ValueError as err: return [document.reporter.warning(str(err), line=self.lineno)] else: hl_lines = None -- cgit v1.2.1