"""HTML 预览生成服务""" from typing import List, Dict, Any def generate_preview_html(blocks: List[Dict[str, Any]]) -> str: """ 将 block 列表转为带 data-block-id 的 HTML 预览字符串。 每个元素都会带上 data-block-id 属性供前端点击交互。 """ html_parts = ['
'] for block in blocks: block_id = block.get("block_id", "") block_type = block.get("type", "") text = block.get("text", "") if block_type == "heading": html = f'

{text}

' elif block_type == "table": html = f'
📊 {text[:80]}
' else: html = f'

{text}

' html_parts.append(html) html_parts.append('
') return "\n".join(html_parts)