summaryrefslogtreecommitdiff
path: root/docutils/transforms
diff options
context:
space:
mode:
authorgoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2004-11-02 22:14:24 +0000
committergoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2004-11-02 22:14:24 +0000
commit9e41a6191aee10eedfa1df2d0d10a4700a194e55 (patch)
tree0d829fbf578d3ecd1813a8c2207ec7d3cd3c898e /docutils/transforms
parentb3e9a23e50a601b58933870569c83a8aff859c5e (diff)
downloaddocutils-9e41a6191aee10eedfa1df2d0d10a4700a194e55.tar.gz
Added support for trimming whitespace from beside substitution references.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@2796 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/transforms')
-rw-r--r--docutils/transforms/references.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/docutils/transforms/references.py b/docutils/transforms/references.py
index 04b79a1cc..254a0ee07 100644
--- a/docutils/transforms/references.py
+++ b/docutils/transforms/references.py
@@ -700,7 +700,22 @@ class Substitutions(Transform):
msg.add_backref(prbid)
ref.parent.replace(ref, prb)
else:
- ref.parent.replace(ref, defs[key].get_children())
+ subdef = defs[key]
+ parent = ref.parent
+ index = parent.index(ref)
+ if (subdef.attributes.has_key('ltrim')
+ or subdef.attributes.has_key('trim')):
+ if index > 0 and isinstance(parent[index - 1],
+ nodes.Text):
+ parent.replace(parent[index - 1],
+ parent[index - 1].rstrip())
+ if (subdef.attributes.has_key('rtrim')
+ or subdef.attributes.has_key('trim')):
+ if (len(parent) > index + 1
+ and isinstance(parent[index + 1], nodes.Text)):
+ parent.replace(parent[index + 1],
+ parent[index + 1].lstrip())
+ parent.replace(ref, subdef.get_children())
self.document.substitution_refs = None # release replaced references