File tree Expand file tree Collapse file tree 1 file changed +20
-4
lines changed
Expand file tree Collapse file tree 1 file changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,12 @@ def is_item_end_line(line: str) -> bool:
3232 return True
3333 return False
3434
35+ def indent_level (line : str ) -> int :
36+ m = re .match (r'^\s+' , line )
37+ if m :
38+ return len (m .group (0 ).replace ('\t ' , ' ' ))
39+ return 0
40+
3541class FixDisplayErrorExtension (Extension ):
3642
3743 def extendMarkdown (self , md , md_globals ):
@@ -50,22 +56,32 @@ def run(self, lines):
5056 new_lines = []
5157
5258 prev_line : str | None = None
59+ prev_line_is_item : bool = False
5360 in_item : bool = False
61+ paragraph_item_indent_level : int = 0
5462 for line in lines :
5563 if prev_line == None :
5664 prev_line = line
5765 new_lines .append (line )
5866 continue
5967
60- if not is_item_line (prev_line ) and not in_item and is_item_line (line ):
61- new_lines .append ("" )
68+ line_is_item : bool = is_item_line (line )
69+ if line_is_item :
70+ if not (prev_line_is_item or in_item ):
71+ new_lines .append ("" )
72+ elif in_item and indent_level (line ) < paragraph_item_indent_level :
73+ new_lines .append ("" )
74+
75+ if not in_item :
76+ paragraph_item_indent_level = indent_level (line )
6277
63- if not in_item and is_item_line (line ):
6478 in_item = True
65- if in_item and is_item_end_line (line ):
79+
80+ elif in_item and is_item_end_line (line ):
6681 in_item = False
6782
6883 prev_line = line
84+ prev_line_is_item = line_is_item
6985 new_lines .append (line )
7086
7187 return new_lines
You can’t perform that action at this time.
0 commit comments