@@ -174,10 +174,12 @@ def transform_p_by_p_skipping_codeblocks( # noqa: PLR0912, PLR0915
174174 _maybe_icodeblock_lines : list [str ] = []
175175 _previous_line_was_empty = False
176176
177- lines , current_paragraph = ([], '' )
177+ lines = []
178+ current_paragraph_lines : list [str ] = []
178179
179180 def process_current_paragraph () -> None :
180- lines .extend (func (current_paragraph ).splitlines (keepends = True ))
181+ lines .extend (func ('' .join (current_paragraph_lines ),
182+ ).splitlines (keepends = True ))
181183
182184 # The next implementation takes into account that indented code
183185 # blocks must be surrounded by newlines as per the CommonMark
@@ -191,33 +193,32 @@ def process_current_paragraph() -> None:
191193 if lstripped_line .startswith (('```' , '~~~' )):
192194 _current_fcodeblock_delimiter = lstripped_line [:3 ]
193195 process_current_paragraph ()
194- current_paragraph = ''
196+ current_paragraph_lines = []
195197 lines .append (line )
196198 elif line .startswith (' ' ):
197199 if not lstripped_line or _maybe_icodeblock_lines :
198200 # maybe enter indented codeblock
199201 _maybe_icodeblock_lines .append (line )
200202 else :
201- current_paragraph += line
203+ current_paragraph_lines . append ( line )
202204 elif _maybe_icodeblock_lines :
203205 process_current_paragraph ()
204- current_paragraph = ''
206+ current_paragraph_lines = []
205207 if not _previous_line_was_empty :
206208 # wasn't an indented code block
207- for line_ in _maybe_icodeblock_lines :
208- current_paragraph += line_
209+ current_paragraph_lines .extend (_maybe_icodeblock_lines )
209210 _maybe_icodeblock_lines = []
210- current_paragraph += line
211+ current_paragraph_lines . append ( line )
211212 process_current_paragraph ()
212- current_paragraph = ''
213+ current_paragraph_lines = []
213214 else :
214215 # exit indented codeblock
215216 for line_ in _maybe_icodeblock_lines :
216217 lines .append (line_ )
217218 _maybe_icodeblock_lines = []
218219 lines .append (line )
219220 else :
220- current_paragraph += line
221+ current_paragraph_lines . append ( line )
221222 _previous_line_was_empty = not lstripped_line
222223 else :
223224 lines .append (line )
@@ -230,14 +231,13 @@ def process_current_paragraph() -> None:
230231 if not _previous_line_was_empty :
231232 # at EOF
232233 process_current_paragraph ()
233- current_paragraph = ''
234- for line_ in _maybe_icodeblock_lines :
235- current_paragraph += line_
234+ current_paragraph_lines = []
235+ current_paragraph_lines .extend (_maybe_icodeblock_lines )
236236 process_current_paragraph ()
237- current_paragraph = ''
237+ current_paragraph_lines = []
238238 else :
239239 process_current_paragraph ()
240- current_paragraph = ''
240+ current_paragraph_lines = []
241241 for line_ in _maybe_icodeblock_lines :
242242 lines .append (line_ )
243243 else :
0 commit comments