""" Преобразование elements JSON → линейный текст для LLM. Ничего не фильтрует, не интерпретирует — только форматирует. """ def to_text(elements: list) -> str: """ Превращает список elements (из parser.py) в текстовое представление. Параграфы: [Style] text Таблицы: отбивка ---, строки как | cell | cell | """ lines = [] for el in elements: if el["type"] == "paragraph": style = el.get("style", "") prefix = f"[{style}] " if style else "" lines.append(f"{prefix}{el['text']}") elif el["type"] == "table": rows = el["rows"] if not rows: continue ncols = len(rows[0]) lines.append(f"\n--- Таблица ({len(rows)}×{ncols}) ---") for row in rows: # дополняем строку до ncols padded = list(row) + [""] * (ncols - len(row)) cells = [str(c).replace("\n", " ").replace("|", "\\|") for c in padded] lines.append("| " + " | ".join(cells) + " |") lines.append("") return "\n".join(lines)