MCPcopy Index your code
hub / github.com/Python-Markdown/markdown / get_level

Method get_level

markdown/blockprocessors.py:222–248  ·  view source on GitHub ↗

Get level of indentation based on list level.

(self, parent: etree.Element, block: str)

Source from the content-addressed store, hash-verified

220 self.parser.parseBlocks(li, [block])
221
222 def get_level(self, parent: etree.Element, block: str) -> tuple[int, etree.Element]:
223 """ Get level of indentation based on list level. """
224 # Get indent level
225 m = self.INDENT_RE.match(block)
226 if m:
227 indent_level = len(m.group(1))/self.tab_length
228 else:
229 indent_level = 0
230 if self.parser.state.isstate('list'):
231 # We're in a tight-list - so we already are at correct parent.
232 level = 1
233 else:
234 # We're in a loose-list - so we need to find parent.
235 level = 0
236 # Step through children of tree to find matching indent level.
237 while indent_level > level:
238 child = self.lastChild(parent)
239 if (child is not None and
240 (child.tag in self.LIST_TYPES or child.tag in self.ITEM_TYPES)):
241 if child.tag in self.LIST_TYPES:
242 level += 1
243 parent = child
244 else:
245 # No more child levels. If we're short of `indent_level`,
246 # we have a code block. So we stop here.
247 break
248 return level, parent
249
250
251class CodeBlockProcessor(BlockProcessor):

Callers 1

runMethod · 0.95

Calls 2

isstateMethod · 0.80
lastChildMethod · 0.80

Tested by

no test coverage detected