aboutsummaryrefslogtreecommitdiffstats
path: root/markdown/extensions/extra.py
diff options
context:
space:
mode:
Diffstat (limited to 'markdown/extensions/extra.py')
-rw-r--r--markdown/extensions/extra.py32
1 files changed, 13 insertions, 19 deletions
diff --git a/markdown/extensions/extra.py b/markdown/extensions/extra.py
index c4a0a97..8986ba6 100644
--- a/markdown/extensions/extra.py
+++ b/markdown/extensions/extra.py
@@ -75,12 +75,9 @@ class MarkdownInHtmlProcessor(BlockProcessor):
# Build list of indexes of each nest within the parent element.
nest_index = [] # a list of tuples: (left index, right index)
i = self.parser.blockprocessors.tag_counter + 1
- is_nest = self.parser.markdown.htmlStash.tag_data[i]['left_index']
- while len(self.parser.markdown.htmlStash.tag_data) > i and is_nest:
- left_child_index = \
- self.parser.markdown.htmlStash.tag_data[i]['left_index']
- right_child_index = \
- self.parser.markdown.htmlStash.tag_data[i]['right_index']
+ while len(self._tag_data) > i and self._tag_data[i]['left_index']:
+ left_child_index = self._tag_data[i]['left_index']
+ right_child_index = self._tag_data[i]['right_index']
nest_index.append((left_child_index - 1, right_child_index))
i += 1
@@ -92,35 +89,32 @@ class MarkdownInHtmlProcessor(BlockProcessor):
block[nest_index[-1][1]:], True) # nest
def run(self, parent, blocks, tail=None, nest=False):
+ self._tag_data = self.parser.markdown.htmlStash.tag_data
+
self.parser.blockprocessors.tag_counter += 1
- tag_data = self.parser.markdown.htmlStash.tag_data[
- self.parser.blockprocessors.tag_counter]
+ tag = self._tag_data[self.parser.blockprocessors.tag_counter]
# Create Element
- markdown_value = tag_data['attrs'].pop('markdown')
- element = util.etree.SubElement(parent, tag_data['tag'],
- tag_data['attrs'])
+ markdown_value = tag['attrs'].pop('markdown')
+ element = util.etree.SubElement(parent, tag['tag'], tag['attrs'])
# Slice Off Block
if nest:
self.parser.parseBlocks(parent, tail) # Process Tail
block = blocks[1:]
else: # includes nests since a third level of nesting isn't supported
- block = blocks[tag_data['left_index'] + 1:
- tag_data['right_index']]
- del blocks[:tag_data['right_index']]
+ block = blocks[tag['left_index'] + 1: tag['right_index']]
+ del blocks[:tag['right_index']]
# Process Text
if (self.parser.blockprocessors.contain_span_tags.match( # Span Mode
- tag_data['tag']) and markdown_value != 'block') or \
+ tag['tag']) and markdown_value != 'block') or \
markdown_value == 'span':
element.text = '\n'.join(block)
else: # Block Mode
i = self.parser.blockprocessors.tag_counter + 1
- if len(self.parser.markdown.htmlStash.tag_data) > i and self.\
- parser.markdown.htmlStash.tag_data[i]['left_index']:
- first_subelement_index = self.parser.markdown.htmlStash.\
- tag_data[i]['left_index'] - 1
+ if len(self._tag_data) > i and self._tag_data[i]['left_index']:
+ first_subelement_index = self._tag_data[i]['left_index'] - 1
self.parser.parseBlocks(
element, block[:first_subelement_index])
if not nest: