Конвертировать 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:
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 имеет ряд свойств, которые позволяют вам контролировать процесс преобразования:
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 остаются без изменений:
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 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. Вот небольшой пример, демонстрирующий, как использовать этот атрибут:
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 с высоким качеством, просто и быстро. Просто загрузите, конвертируйте файлы и получите результаты через несколько секунд!