Конвертировать HTML в Markdown – примеры C# и онлайн-конвертер

Markdown – это язык разметки с синтаксисом форматирования простого текста. Markdown часто используется в качестве формата для документации и файлов Readme, поскольку он позволяет писать в удобном для чтения и написания стиле. Он популярен среди технических писателей за простоту использования, легкость обучения и широкую поддержку. Его дизайн позволяет легко преобразовывать его во многие форматы вывода, но изначально он был создан для преобразования только в HTML. Библиотека классов Aspose.HTML обеспечивает обратное преобразование из HTML в Markdown. Вы можете открывать и редактировать файлы Markdown или создавать новый контент с любого устройства в любом текстовом редакторе.

В этой статье вы найдете информацию о том, как преобразовать HTML в MD с помощью ConvertHTML() методов класса Converter и как применять MarkdownSaveOptions. Наши примеры кода помогут вам преобразовать HTML в Markdown с помощью библиотеки C#.

Онлайн HTML Конвертер

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

                
            

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

Вы можете преобразовать HTML в формат Markdown, используя C# и другие языки программирования .NET. Статические методы класса Converter в основном используются как самый простой способ преобразования HTML-кода в различные форматы. Следующий фрагмент кода показывает, как преобразовать HTML в Markdown буквально с помощью нескольких строк кода!

1// Prepare HTML code and save it to a file
2var code = "<h1>Header 1</h1>" +
3           "<h2>Header 2</h2>" +
4           "<p>Convert HTML to Markdown</p>";
5File.WriteAllText("convert.html", code);
6
7// Call ConvertHTML() method to convert HTML to Markdown
8Converter.ConvertHTML("convert.html", new MarkdownSaveOptions(), Path.Combine(OutputDir, "convert.md"));

Параметры Сохранения

Функциональность создания Markdown можно расширить с помощью параметров сохранения в соответствии с вашими потребностями. Параметр MarkdownSaveOptions имеет ряд свойств, позволяющих контролировать процесс преобразования. Самый важный параметр – MarkdownSaveOptions.Features. Эта опция позволяет включить/отключить преобразование конкретного элемента.

PropertyDescription
DefaultThis property returns a set of options that are compatible with default Markdown documentation.
FeaturesA flag set that controls which HTML elements are converted to Markdown.
FormatterThis property gets or sets the Markdown formatting style.
GitThis property returns a set of options that are compatible with GitLab Flavored Markdown.
ResourceHandlingOptionsGets a ResourceHandlingOptions object which is used for configuration of resources handling.

Чтобы узнать больше о MarkdownSaveOptions, прочитайте Конвертеры тонкой настройки.

Конвертировать HTML в Markdown с использованием MarkdownSaveOptions

Чтобы конвертировать HTML в Markdown с указанием Markdown SaveOptions, вы должны выполнить несколько шагов:

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

В следующем примере показано, как обрабатывать только ссылки и абзацы, остальные элементы HTML остаются без изменений:

 1// Prepare a path for converted file saving 
 2string savePath = Path.Combine(OutputDir, "options-output.md");
 3
 4// Prepare HTML code and save it to the file
 5var code = "<h1>Header 1</h1>" +
 6           "<h2>Header 2</h2>" +
 7           "<p>Hello, World!!</p>" +
 8           "<a href='aspose.com'>aspose</a>";
 9File.WriteAllText(Path.Combine(OutputDir, "options.html"), code);
10
11// Create an instance of SaveOptions and set up the rule: 
12// - only <a> and <p> elements will be converted to Markdown
13var options = new MarkdownSaveOptions();
14options.Features = MarkdownFeatures.Link | MarkdownFeatures.AutomaticParagraph;
15
16// Call the ConvertHTML() method to convert the HTML to Markdown
17Converter.ConvertHTML(Path.Combine(OutputDir, "options.html"), options, savePath);

Чтобы преобразовать HTML в Markdown, вы можете определить свой собственный набор правил или использовать предопределенные шаблоны. Например, вы можете использовать шаблон на основе синтаксиса GitLab Flavored Markdown:

 1// Prepare a path for converted file saving 
 2string savePath = Path.Combine(OutputDir, "output-git.md");
 3
 4// Prepare HTML code and save it to the file
 5var code = "<h1>Header 1</h1>" +
 6           "<h2>Header 2</h2>" +
 7           "<p>Hello, World!!</p>";
 8File.WriteAllText(Path.Combine(OutputDir, "document.html"), code);
 9
10// Call ConvertHTML() method to convert HTML to Markdown
11Converter.ConvertHTML(Path.Combine(OutputDir, "document.html"), MarkdownSaveOptions.Git, savePath);

GitLab Flavored Markdown – это версия синтаксиса Markdown для GitHub.com, которая предоставляет дополнительный набор полезных функций, облегчающих работу с контентом на GitHub.com.

Ограничения

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

Вы можете скачать полные примеры и файлы данных с GitHub.

Inline HTML

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

 1// Prepare a path for converted file saving 
 2string savePath = Path.Combine(OutputDir, "inline-html.md");
 3
 4// Prepare HTML code and save it to the file
 5var code = "text<div markdown='inline'><code>text</code></div>";
 6File.WriteAllText(Path.Combine(OutputDir, "inline.html"), code);
 7
 8// Call ConvertHTML() method to convert HTML to Markdown.
 9Converter.ConvertHTML(Path.Combine(OutputDir, "inline.html"), new MarkdownSaveOptions(), savePath);
10
11// Output file will contain: text\r\n<div markdown="inline"><code>text</code></div>

Как видите, содержимое элемента div не конвертируется в Markdown и обрабатывается Markdown Processor как есть. Список элементов, поддерживающих эту функцию, различен для каждого процессора 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, FIGURE, FIGCAPTION, ABBR, VIDEO, AUDIO, OUTPUT, CANVAS, SECTION, DETAILS, HGROUP, SUMMARY.

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

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

Вы можете скачать полные примеры и файлы данных с GitHub.

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

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

Text “Конвертер HTML в MD”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.