summaryrefslogtreecommitdiff
path: root/sphinx/directives/code.py
diff options
context:
space:
mode:
authorTakayuki Shimizukawa <shimizukawa@gmail.com>2014-08-10 22:29:34 +0900
committerTakayuki Shimizukawa <shimizukawa@gmail.com>2014-08-10 22:29:34 +0900
commit4f357d9edd759eca96cee7e7cccbace1479ff834 (patch)
treefe6669fba23a071d2ce36719124ea4d2bba8e6e4 /sphinx/directives/code.py
parented9de1c9e8cba940a721bad5455457894f4f2c97 (diff)
parentd5030f1f244d02c06f0c6503a6cd883e927bd625 (diff)
downloadsphinx-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.py17
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,