Конвертировать 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, вам необходимо выполнить несколько шагов:
- Загрузите, откройте или прочитайте HTML-документ. В следующем примере мы инициализируем HTML-документ из строки кода.
- Создайте новый объект MarkdownSaveOptions и укажите необходимые свойства.
- Чтобы преобразовать HTML в Markdown, используйте метод convert_html() класса Converter, передав ему HTMLDocument, MarkdownSaveOptions и путь к выходному файлу.
Чтобы преобразовать HTML в Markdown, вы можете определить свой собственный набор правил или использовать предопределенные шаблоны. Например, вы можете использовать шаблон, основанный на синтаксисе
GitLab Flavored Markdown. В следующем фрагменте кода показано, как преобразовать HTML в Markdown с помощью свойства git в MarkdownSaveOptions:
1# Convert HTML to Markdown using git property in Python
2
3import aspose.html.converters as conv
4import aspose.html.saving as sav
5
6# Prepare HTML code and save it to a file
7code = "<h1>Header 1</h1>" \
8 "<h2>Header 2</h2>" \
9 "<p>Hello, World!!</p>"
10with open("document.html", "w", encoding="utf-8") as f:
11 f.write(code)
12 f.close()
13 # Call the convert_html() method to convert HTML to Markdown
14 conv.Converter.convert_html("document.html", sav.MarkdownSaveOptions.git, "output.md")Параметры сохранения – класс MarkdownSaveOptions
Функциональность создания Markdown можно расширить с помощью параметров сохранения в соответствии с вашими потребностями. MarkdownSaveOptions имеет ряд свойств, которые позволяют вам контролировать процесс преобразования:
| Property | Description |
|---|---|
| default | This property returns a set of options that are compatible with default Markdown documentation. |
| features | This 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. |
| formatter | This property gets or sets the Markdown formatting style. Options available: GIT and DEFAULT. |
| git | This 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_options | This 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 остаются без изменений:
1# Convert HTML to Markdown using features property in Python
2
3import os
4import aspose.html.converters as conv
5import aspose.html.saving as sav
6
7# Prepare directories and paths
8output_dir = "output/"
9if not os.path.exists(output_dir):
10 os.makedirs(output_dir)
11
12save_path = os.path.join(output_dir, "options-output.md")
13
14# Prepare HTML code and save it to a file
15code = "<h1>Header 1</h1>" \
16 "<h2>Header 2</h2>" \
17 "<p>Hello, World!!</p>" \
18 "<a href='https://docs.aspose.com/'>aspose</a>"
19with open(os.path.join(output_dir, "options.html"), "w") as file:
20 file.write(code)
21
22# Create an instance of SaveOptions and set up the rule:
23# – only <a> and <p> elements will be converted to Markdown
24options = sav.MarkdownSaveOptions()
25options.features = sav.MarkdownFeatures.LINK | sav.MarkdownFeatures.AUTOMATIC_PARAGRAPH
26
27# Call the convert_html() method to convert HTML to Markdown
28conv.Converter.convert_html(os.path.join(output_dir, "options.html"), options, save_path)Особенности вложения
Markdown поддерживает множество функций, но не все из них можно использовать вместе. Например, элементы списка внутри элементов таблицы не будут преобразованы. В следующей таблице показано, какие функции могут быть вложенными. Каждая функция является членом перечисления MarkdownFeatures.
| Parent feature | Features which can be processed inside |
|---|---|
| Header | Link, Emphasis, Strong, InlineCode, Image, Strikethrough, Video |
| Blockquote | Any |
| List | AutomaticParagraph, Link, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough, Video, TaskList, List |
| Link | Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough |
| AutomaticParagraph | Link, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough |
| Strikethrough | Link, Emphasis, Strong, InlineCode, Image, LineBreak |
| Table | Video, Strikethrough, Image, InlineCode, Emphasis, Strong, Link |
| Emphasis | Link, InlineCode, Image, LineBreak, Strikethrough, Video |
| Strong | Link, InlineCode, Image, LineBreak, Strikethrough, Video |
Ограничения
Markdown – это легкий и простой в использовании синтаксис. Однако не все элементы HTML можно преобразовать в Markdown, поскольку в синтаксисе Markdown нет эквивалента. Такие элементы, как STYLE, SCRIPT, LINK, EMBED и т. д. будут отброшены во время преобразования.
Встроенный HTML
Markdown позволяет указать чистый HTML-код, который будет отображаться как есть. Функция, позволяющая такое поведение, называется «Встроенный HTML». Чтобы использовать ее, вам следует поместить один из конкретных элементов, поддерживаемых этой функцией, в начало новой строки. Или вы можете пометить один из таких элементов как «Встроенный HTML», добавив к этому элементу атрибут markdown со значением inline. Вот небольшой пример, демонстрирующий, как использовать этот атрибут:
1# Convert HTML to Markdown using git property in Python
2
3import os
4import aspose.html.converters as conv
5import aspose.html.saving as sav
6
7# Prepare directories and paths
8output_dir = "output/"
9if not os.path.exists(output_dir):
10 os.makedirs(output_dir)
11
12save_path = os.path.join(output_dir, "inline-html.md")
13
14# Prepare HTML code and save it to a file
15code = "text<div markdown='inline'><code>text</code></div>"
16with open(os.path.join(output_dir, "inline.html"), "w") as file:
17 file.write(code)
18
19# Call the convert_html() method for HTML to Markdown conversion
20conv.Converter.convert_html(os.path.join(output_dir, "inline.html"), sav.MarkdownSaveOptions(), save_path)
21
22# 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 с высоким качеством, просто и быстро. Просто загрузите, конвертируйте файлы и получите результаты через несколько секунд!
