diff options
author | Takayuki Shimizukawa <shimizukawa@gmail.com> | 2014-08-10 22:29:34 +0900 |
---|---|---|
committer | Takayuki Shimizukawa <shimizukawa@gmail.com> | 2014-08-10 22:29:34 +0900 |
commit | 4f357d9edd759eca96cee7e7cccbace1479ff834 (patch) | |
tree | fe6669fba23a071d2ce36719124ea4d2bba8e6e4 /sphinx/directives/code.py | |
parent | ed9de1c9e8cba940a721bad5455457894f4f2c97 (diff) | |
parent | d5030f1f244d02c06f0c6503a6cd883e927bd625 (diff) | |
download | sphinx-git-4f357d9edd759eca96cee7e7cccbace1479ff834.tar.gz |
Merged in zsiddiqui2/sphinx (pull request #258)
Problematic Whitespace stripped
Diffstat (limited to 'sphinx/directives/code.py')
-rw-r--r-- | sphinx/directives/code.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index daab0fb1e..a3e32be12 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, + 'dedent': int, 'lineno-start': int, 'emphasize-lines': directives.unchanged_required, 'filename': directives.unchanged_required, @@ -74,6 +75,15 @@ class CodeBlock(Directive): return [document.reporter.warning(str(err), line=self.lineno)] else: hl_lines = None + + if 'dedent' in self.options: + linesArray = code.split('\n') + for i in range(0, len(linesArray)): + if len(linesArray[i]) <= self.options['dedent']: + linesArray[i] = linesArray[i][len(linesArray[i]) - 1:] + else: + linesArray[i] = linesArray[i][self.options['dedent']:] + code = '\n'.join(linesArray) literal = nodes.literal_block(code, code) literal['language'] = self.arguments[0] @@ -103,6 +113,7 @@ class LiteralInclude(Directive): optional_arguments = 0 final_argument_whitespace = True option_spec = { + 'dedent': int, 'linenos': directives.flag, 'lineno-start': int, 'tab-width': int, @@ -138,6 +149,12 @@ class LiteralInclude(Directive): f = codecs.StreamReaderWriter(open(filename, 'rb'), codec_info[2], codec_info[3], 'strict') lines = f.readlines() + if 'dedent' in self.options: + for i in range(0, len(lines)): + if len(lines[i]) <= self.options['dedent']: + lines[i] = lines[i][len(lines[i]) - 1:] + else: + lines[i] = lines[i][self.options['dedent']:] except (IOError, OSError): return [document.reporter.warning( 'Include file %r not found or reading it failed' % filename, |