daswer123 commited on
Commit
651a7ed
·
verified ·
1 Parent(s): 8b3d9e5

Update converter.py

Browse files
Files changed (1) hide show
  1. converter.py +24 -0
converter.py CHANGED
@@ -190,6 +190,8 @@ class MarkdownToDocxConverter:
190
  p = self.doc.add_paragraph()
191
  for child in element.children:
192
  self.process_html_element(child, p)
 
 
193
  elif element.name == 'pre':
194
  code_element = element.find('code')
195
  if code_element:
@@ -269,6 +271,28 @@ class MarkdownToDocxConverter:
269
  for run in paragraph.runs:
270
  run.bold = True
271
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
272
  def convert(self, markdown_text: str, output_path: str):
273
  """Конвертация Markdown текста в DOCX файл"""
274
  # Создаем новый документ
 
190
  p = self.doc.add_paragraph()
191
  for child in element.children:
192
  self.process_html_element(child, p)
193
+ elif element.name == 'a':
194
+ self.add_hyperlink(parent_paragraph, element.get_text(), element.get('href'))
195
  elif element.name == 'pre':
196
  code_element = element.find('code')
197
  if code_element:
 
271
  for run in paragraph.runs:
272
  run.bold = True
273
 
274
+ def add_hyperlink(self, paragraph, text, url):
275
+ """Добавление гиперссылки"""
276
+ part = paragraph.part
277
+ r_id = part.relate_to(url, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink', is_external=True)
278
+
279
+ hyperlink = OxmlElement('w:hyperlink')
280
+ hyperlink.set(qn('r:id'), r_id)
281
+
282
+ new_run = OxmlElement('w:r')
283
+ rPr = OxmlElement('w:rPr')
284
+
285
+ # Стиль для гиперссылки
286
+ style = OxmlElement('w:rStyle')
287
+ style.set(qn('w:val'), 'Hyperlink')
288
+ rPr.append(style)
289
+
290
+ new_run.append(rPr)
291
+ new_run.text = text
292
+ hyperlink.append(new_run)
293
+
294
+ paragraph._p.append(hyperlink)
295
+
296
  def convert(self, markdown_text: str, output_path: str):
297
  """Конвертация Markdown текста в DOCX файл"""
298
  # Создаем новый документ