[AI]
Фикс создания файла
This commit is contained in:
@@ -2,8 +2,15 @@ import mistune
|
||||
from .style_registry import StyleRegistry
|
||||
from ..handlers import get_handler
|
||||
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
log_handlers = set()
|
||||
|
||||
def render_markdown_to_docx(doc, md_content: str, images_dir, style_reg: StyleRegistry):
|
||||
markdown = mistune.create_markdown(renderer=None)
|
||||
# Включаем плагины: таблицы, переносы строк
|
||||
markdown = mistune.create_markdown(renderer=None, plugins=['table'])
|
||||
ast = markdown(md_content)
|
||||
|
||||
def walk(node):
|
||||
@@ -11,10 +18,25 @@ def render_markdown_to_docx(doc, md_content: str, images_dir, style_reg: StyleRe
|
||||
for item in node:
|
||||
walk(item)
|
||||
elif isinstance(node, dict):
|
||||
handler = get_handler(node["type"])
|
||||
node_type = node["type"]
|
||||
# Игнорируем вспомогательные узлы без логирования
|
||||
if node_type in ("text", "blank_line", "table_head", "table_body", "table_row", "table_cell"):
|
||||
if node.get("children"):
|
||||
for child in node["children"]:
|
||||
walk(child)
|
||||
return
|
||||
|
||||
if node_type not in log_handlers:
|
||||
logger.debug(f"Обрабатываем узел: {node_type}")
|
||||
handler = get_handler(node_type)
|
||||
if handler:
|
||||
if node_type not in log_handlers:
|
||||
logger.debug(f" → найден обработчик для {node_type}")
|
||||
handler(node, doc, images_dir, style_reg)
|
||||
elif node.get("children"):
|
||||
elif node_type not in log_handlers:
|
||||
logger.warning(f" → нет обработчика для {node_type}")
|
||||
log_handlers.add(node_type)
|
||||
if node.get("children"):
|
||||
for child in node["children"]:
|
||||
walk(child)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user