diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index b967a0be..a106a7f3 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -260,12 +260,9 @@ def convert_to_markdown_v2(output_data: dict, else: return file_ref - if gfm_supported: - markdown_text += f"" - if is_value_no(value): - markdown_text += f"{emoji} No TODO sections" - else: - markdown_text += f"{emoji} TODO sections ({len(value)} items)\n
{todos_summary}\n\n" + def format_todo_items(value: list[TodoItem] | TodoItem) -> str: + markdown_text = "" + if gfm_supported: if isinstance(value, list): markdown_text += "\n" else: markdown_text += f"

{format_todo_item(value)}

\n" - markdown_text += "\n
\n" - markdown_text += f"\n" - else: - if is_value_no(value): - markdown_text += f"### {emoji} No TODO sections\n\n" else: - markdown_text += f"### {emoji} TODO sections ({len(value)} items)\n
{todos_summary}\n\n" if isinstance(value, list): for todo_item in value: markdown_text += f"- {format_todo_item(todo_item)}\n" else: markdown_text += f"- {format_todo_item(value)}\n" + return markdown_text + + markdown_todo_items = format_todo_items(value) + EXPAND_LINE_THRESHOLD = 10 + details_open_attr = " open" if markdown_todo_items.count("\n") + 1 <= EXPAND_LINE_THRESHOLD else "" + if gfm_supported: + markdown_text += "" + if is_value_no(value): + markdown_text += f"{emoji} No TODO sections" + else: + markdown_text += f"{emoji} TODO sections ({len(value)} items)\n" + markdown_text += f"{todos_summary}\n\n" + markdown_text += markdown_todo_items + markdown_text += "\n
\n" + markdown_text += "\n" + else: + if is_value_no(value): + markdown_text += f"### {emoji} No TODO sections\n\n" + else: + markdown_text += f"### {emoji} TODO sections ({len(value)} items)\n{todos_summary}\n\n" + markdown_text += markdown_todo_items markdown_text += "\n\n\n" elif 'can be split' in key_nice.lower(): if gfm_supported: