Конвертировать HTML в Markdown

Markdown – это язык разметки с синтаксисом форматирования простого текста, который обычно используется для документации и файлов readme из-за его удобочитаемости и простоты написания. Изначально он был создан для преобразования только в HTML. Библиотека Aspose.HTML for Python via .NET обеспечивает обратное преобразование из HTML в Markdown. Вы можете открывать, создавать и редактировать файлы Markdown с любого устройства с помощью любого текстового редактора.

В этой статье вы узнаете, как конвертировать HTML в Markdown с помощью методов convert_html() класса Converter и как применять MarkdownSaveOptions.

Чтобы продолжить работу с этим руководством, установите и настройте Aspose.HTML for Python via .NET в своем проекте Python. Наши примеры кода помогут вам конвертировать HTML в Markdown и создавать Markdown-файлы с помощью библиотеки Python.

Онлайн-конвертер HTML

Вы можете конвертировать HTML в Markdown с помощью Aspose.HTML for Python via .NET API в режиме реального времени. Сначала загрузите HTML-файл с локального диска или URL-адреса и запустите пример. В примере кода параметры сохранения установлены по умолчанию. Вы сразу получите результат преобразования HTML в Markdown в виде отдельного файла Markdown.

                
            

HTML в Markdown – пример кода Python

Методы класса Converter в основном используются как самый простой способ конвертировать HTML-код в различные форматы. Чтобы преобразовать HTML в Markdown, вам необходимо выполнить несколько шагов:

  1. Загрузите, откройте или прочитайте HTML-документ. В следующем примере мы инициализируем HTML-документ из строки кода.
  2. Создайте новый объект MarkdownSaveOptions и укажите необходимые свойства.
  3. Чтобы преобразовать HTML в Markdown, используйте метод convert_html() класса Converter, передав ему HTMLDocument, MarkdownSaveOptions и путь к выходному файлу.

Чтобы преобразовать HTML в Markdown, вы можете определить свой собственный набор правил или использовать предопределенные шаблоны. Например, вы можете использовать шаблон, основанный на синтаксисе GitLab Flavored Markdown. В следующем фрагменте кода показано, как преобразовать HTML в Markdown с помощью свойства git в MarkdownSaveOptions:

 1from aspose.html import *
 2from aspose.html.converters import *
 3from aspose.html.saving import *
 4
 5# Prepare an HTML code and save it to a file
 6code = "<h1>Header 1</h1>" \
 7         "<h2>Header 2</h2>" \
 8         "<p>Hello World!!</p>"
 9with open("document.html", "w", encoding="utf-8") as f:
10         f.write(code)
11         f.close()
12         # Call the convert_html method to convert HTML to Markdown
13         Converter.convert_html("document.html", MarkdownSaveOptions.git, "output.md")

Параметры сохранения – класс MarkdownSaveOptions

Функциональность создания Markdown можно расширить с помощью параметров сохранения в соответствии с вашими потребностями. MarkdownSaveOptions имеет ряд свойств, которые позволяют вам контролировать процесс преобразования:

PropertyDescription
defaultThis property returns a set of options that are compatible with default Markdown documentation.
featuresThis property is a flag set that controls which HTML elements are converted to Markdown. For example, you can choose to convert only links and paragraphs or include a broader range of elements such as headers, lists, and tables.
formatterThis property gets or sets the Markdown formatting style. Options available: GIT and DEFAULT.
gitThis property returns a set of options that are compatible with GitLab Flavored Markdown, which is a popular extension of Markdown used by GitLab.
resource_handling_optionsThis property provides access to a ResourceHandlingOptions object which is used to configure how resources are handled during the conversion process.

Конвертировать HTML в Markdown – использование свойства features

Рассмотрим один из важных параметров MarkdownSaveOptions – features. Эта опция позволяет вам включить/отключить преобразование конкретного элемента. В следующем примере показано, как обрабатывать только ссылки и абзацы, остальные элементы HTML остаются без изменений:

 1import os
 2from aspose.html.converters import *
 3from aspose.html.saving import *
 4
 5# Prepare directories and paths
 6output_dir = "output/"
 7if not os.path.exists(output_dir):
 8    os.makedirs(output_dir)
 9
10save_path = os.path.join(output_dir, "options-output.md")
11
12# Prepare HTML code and save it to a file
13code = "<h1>Header 1</h1>" \
14       "<h2>Header 2</h2>" \
15       "<p>Hello, World!!</p>" \
16       "<a href="https://docs.aspose.com/">aspose</a>"
17with open(os.path.join(output_dir, "options.html"), "w") as file:
18    file.write(code)
19
20# Create an instance of SaveOptions and set up the rule: 
21#  only <a> and <p> elements will be converted to Markdown
22options = MarkdownSaveOptions()
23options.features = MarkdownFeatures.LINK | MarkdownFeatures.AUTOMATIC_PARAGRAPH
24
25# Call the convert_html() method to convert HTML to Markdown
26Converter.convert_html(os.path.join(output_dir, "options.html"), options, save_path)

Особенности вложения

Markdown поддерживает множество функций, но не все из них можно использовать вместе. Например, элементы списка внутри элементов таблицы не будут преобразованы. В следующей таблице показано, какие функции могут быть вложенными. Каждая функция является членом перечисления MarkdownFeatures.

Parent featureFeatures which can be processed inside
HeaderLink, Emphasis, Strong, InlineCode, Image, Strikethrough, Video
BlockquoteAny
ListAutomaticParagraph, Link, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough, Video, TaskList, List
LinkEmphasis, Strong, InlineCode, Image, LineBreak, Strikethrough
AutomaticParagraphLink, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough
StrikethroughLink, Emphasis, Strong, InlineCode, Image, LineBreak
TableVideo, Strikethrough, Image, InlineCode, Emphasis, Strong, Link
EmphasisLink, InlineCode, Image, LineBreak, Strikethrough, Video
StrongLink, InlineCode, Image, LineBreak, Strikethrough, Video

Ограничения

Markdown – это легкий и простой в использовании синтаксис. Однако не все элементы HTML можно преобразовать в Markdown, поскольку в синтаксисе Markdown нет эквивалента. Такие элементы, как STYLE, SCRIPT, LINK, EMBED и т. д. будут отброшены во время преобразования.

Встроенный HTML

Markdown позволяет указать чистый HTML-код, который будет отображаться как есть. Функция, позволяющая такое поведение, называется «Встроенный HTML». Чтобы использовать ее, вам следует поместить один из конкретных элементов, поддерживаемых этой функцией, в начало новой строки. Или вы можете пометить один из таких элементов как «Встроенный HTML», добавив к этому элементу атрибут markdown со значением inline. Вот небольшой пример, демонстрирующий, как использовать этот атрибут:

 1import os
 2from aspose.html.converters import *
 3from aspose.html.saving import *
 4
 5# Prepare directories and paths
 6output_dir = "output/"
 7if not os.path.exists(output_dir):
 8    os.makedirs(output_dir)
 9
10save_path = os.path.join(output_dir, "inline-html.md")
11
12# Prepare HTML code and save it to a file
13code = "text<div markdown="inline"><code>text</code></div>"
14with open(os.path.join(output_dir, "inline.html"), "w") as file:
15    file.write(code)
16
17# Call the convert_html() method for HTML to Markdown conversion
18Converter.convert_html(os.path.join(output_dir, "inline.html"), MarkdownSaveOptions(), save_path)
19
20# Output file will contain: text\r\n<div markdown="inline"><code>text</code></div>

Как вы можете видеть, содержимое элемента <div> не преобразуется в Markdown и обрабатывается процессором Markdown как есть. Список элементов, поддерживающих эту функцию, различен для каждого процессора Markdown.

Исходная спецификация Markdown поддерживает следующие теги: BLOCKQUOTE, H1, H2, H3, H4, H5, H6, P, PRE, OL, UL, DL, DIV, INS, DEL, IFRAME, FIELDSET, NOSCRIPT, FORM, MATH.

GitLab Flavored Markdown расширяет этот список следующими тегами: ARTICLE, FOOTER, NAV, ASIDE, HEADER, ADDRESS, HR, DD, РИСУНОК, figCAPTION, ABBR, VIDEO, AUDIO, OUTPUT, CANVAS, SECTION, DETAILS, HGROUP, SUMMARY.

В статье Синтаксис Markdown – Базовое руководство представлена ​​информация об основных элементах языка разметки Markdown и подробности синтаксиса Markdown.

Загрузите библиотеку Aspose.HTML for Python via .NET, чтобы успешно, быстро и легко конвертировать документы HTML, MHTML, EPUB, SVG и Markdown в самые популярные форматы.

Aspose.HTML предлагает бесплатный онлайн Конвертер HTML в MD, который конвертирует HTML в Markdown с высоким качеством, просто и быстро. Просто загрузите, конвертируйте файлы и получите результаты через несколько секунд!

Текст «Конвертер HTML в MD»

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.