Skip to content

Commit e821b15

Browse files
committed
Use set instead of list for block level elements
Using a set allows for better performances when checking for membership of a tag within block level elements. Issue-1507: #1507
1 parent 6347c57 commit e821b15

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

markdown/core.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ def __init__(self, **kwargs):
114114
""" List of characters which get the backslash escape treatment. """
115115

116116
self.block_level_elements: list[str] = BLOCK_LEVEL_ELEMENTS.copy()
117+
self._block_level_elements: set[str] = set(BLOCK_LEVEL_ELEMENTS)
117118

118119
self.registeredExtensions: list[Extension] = []
119120
self.docType = "" # TODO: Maybe delete this. It does not appear to be used anymore.
@@ -308,7 +309,7 @@ def is_block_level(self, tag: Any) -> bool:
308309
309310
"""
310311
if isinstance(tag, str):
311-
return tag.lower().rstrip('/') in self.block_level_elements
312+
return tag.lower().rstrip('/') in self._block_level_elements
312313
# Some ElementTree tags are not strings, so return False.
313314
return False
314315

markdown/extensions/md_in_html.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class HTMLExtractorExtra(HTMLExtractor):
4242

4343
def __init__(self, md: Markdown, *args, **kwargs):
4444
# All block-level tags.
45-
self.block_level_tags = set(md.block_level_elements.copy())
45+
self.block_level_tags = set(md.block_level_elements)
4646
# Block-level tags in which the content only gets span level parsing
4747
self.span_tags = set(
4848
['address', 'dd', 'dt', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'legend', 'li', 'p', 'summary', 'td', 'th']

0 commit comments

Comments
 (0)