Конвертировать 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. Эта опция позволяет включить/отключить преобразование конкретного элемента.
Property | Description |
---|---|
Default | This property returns a set of options that are compatible with default Markdown documentation. |
Features | A flag set that controls which HTML elements are converted to Markdown. |
Formatter | This property gets or sets the Markdown formatting style. |
Git | This property returns a set of options that are compatible with GitLab Flavored Markdown. |
ResourceHandlingOptions | Gets a ResourceHandlingOptions object which is used for configuration of resources handling. |
Чтобы узнать больше о MarkdownSaveOptions, прочитайте Конвертеры тонкой настройки.
Конвертировать HTML в Markdown с использованием MarkdownSaveOptions
Чтобы конвертировать HTML в Markdown с указанием Markdown SaveOptions, вы должны выполнить несколько шагов:
- Загрузите файл HTML с помощью одного из конструкторов HTMLDocument() класса HTMLDocument.
- Создайте новый объект MarkdownSaveOptions.
- Используйте метод 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 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 |
Вы можете скачать полные примеры и файлы данных с GitHub.
Загрузите нашу библиотеку Aspose.HTML for .NET, которая позволит вам успешно, быстро и легко конвертировать HTML, MHTML, EPUB, SVG и Markdown документы в самые популярные форматы.
Aspose.HTML предлагает бесплатный онлайн Конвертер HTML в MD, который конвертирует HTML в Markdown с высоким качеством, легко и быстро. Просто загрузите, конвертируйте свои файлы и получите результат за несколько секунд!