Spaces:
Sleeping
Sleeping
Upload converter.py
Browse files- converter.py +25 -3
converter.py
CHANGED
@@ -184,9 +184,16 @@ class MarkdownToDocxConverter:
|
|
184 |
elif element.name == 'h6':
|
185 |
p = self.doc.add_heading(element.get_text(), level=6)
|
186 |
elif element.name == 'p':
|
187 |
-
|
188 |
-
|
189 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
elif element.name == 'a':
|
191 |
self.add_hyperlink(parent_paragraph, element.get_text(), element.get('href'))
|
192 |
elif element.name == 'pre':
|
@@ -243,6 +250,21 @@ class MarkdownToDocxConverter:
|
|
243 |
for child in element.children:
|
244 |
self.process_html_element(child, parent_paragraph)
|
245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
def add_mermaid_diagram(self, code: str):
|
247 |
"""Рендеринг и вставка диаграммы Mermaid через mermaid.ink"""
|
248 |
try:
|
|
|
184 |
elif element.name == 'h6':
|
185 |
p = self.doc.add_heading(element.get_text(), level=6)
|
186 |
elif element.name == 'p':
|
187 |
+
# Проверяем, содержит ли параграф только изображение
|
188 |
+
img_children = element.find_all('img')
|
189 |
+
if len(img_children) == 1 and not element.get_text(strip=True):
|
190 |
+
self.process_html_element(img_children[0])
|
191 |
+
else:
|
192 |
+
p = self.doc.add_paragraph()
|
193 |
+
for child in element.children:
|
194 |
+
self.process_html_element(child, p)
|
195 |
+
elif element.name == 'img':
|
196 |
+
self.add_image(element.get('src'))
|
197 |
elif element.name == 'a':
|
198 |
self.add_hyperlink(parent_paragraph, element.get_text(), element.get('href'))
|
199 |
elif element.name == 'pre':
|
|
|
250 |
for child in element.children:
|
251 |
self.process_html_element(child, parent_paragraph)
|
252 |
|
253 |
+
def add_image(self, src: str):
|
254 |
+
"""Скачивание и вставка изображения по URL"""
|
255 |
+
if not src:
|
256 |
+
return
|
257 |
+
try:
|
258 |
+
response = requests.get(src, stream=True)
|
259 |
+
response.raise_for_status()
|
260 |
+
|
261 |
+
image_stream = io.BytesIO(response.content)
|
262 |
+
self.doc.add_picture(image_stream, width=Inches(6))
|
263 |
+
|
264 |
+
except requests.exceptions.RequestException as e:
|
265 |
+
print(f"Ошибка при скачивании изображения {src}: {e}")
|
266 |
+
self.doc.add_paragraph(f"[Изображение не найдено: {src}]", style='Body Text')
|
267 |
+
|
268 |
def add_mermaid_diagram(self, code: str):
|
269 |
"""Рендеринг и вставка диаграммы Mermaid через mermaid.ink"""
|
270 |
try:
|