@@ -186,24 +186,33 @@ def filter_inclusions(start_match, end_match, text_to_include):
186186
187187def increase_headings_offset (markdown , offset = 0 ):
188188 '''Increases the headings depth of a snippet of Makdown content.'''
189- _inside_fenced_codeblock = False
190- _current_fenced_codeblock_delimiter = None
189+ _inside_fcodeblock = False # inside fenced codeblock
190+ _current_fcodeblock_delimiter = None # current fenced codeblock delimiter
191+ _inside_icodeblock = False # inside indented codeblcok
191192
192193 lines = []
193194 for line in markdown .splitlines (keepends = True ):
194- if not _inside_fenced_codeblock :
195- if line .startswith ('```' ) or line .startswith ('~~~' ):
196- _inside_fenced_codeblock = True
197- _current_fenced_codeblock_delimiter = line [:3 ]
198- lines .append (line )
195+ lstripped_line = line .lstrip ()
196+
197+ if not _inside_fcodeblock and not _inside_icodeblock :
198+ if any ([
199+ lstripped_line .startswith ('```' ),
200+ lstripped_line .startswith ('~~~' ),
201+ ]):
202+ _inside_fcodeblock = True
203+ _current_fcodeblock_delimiter = line [:3 ]
204+ elif line .startswith (' ' ):
205+ _inside_icodeblock = True
199206 elif line .startswith ('#' ):
200- lines .append ('#' * offset + line )
201- else :
202- lines .append (line )
207+ line = '#' * offset + line
203208 else :
204- lines .append (line )
205- if line .startswith (_current_fenced_codeblock_delimiter ):
206- _inside_fenced_codeblock = False
207- _current_fenced_codeblock_delimiter = None
209+ if _current_fcodeblock_delimiter :
210+ if lstripped_line .startswith (_current_fcodeblock_delimiter ):
211+ _inside_fcodeblock = False
212+ _current_fcodeblock_delimiter = None
213+ else :
214+ if not line .startswith (' ' ):
215+ _inside_icodeblock = False
216+ lines .append (line )
208217
209218 return '' .join (lines )
0 commit comments