Convertir HTML a Markdown

Markdown es un lenguaje de marcado con una sintaxis de formato de texto plano que se usa comúnmente para documentación y archivos Léame debido a su legibilidad y facilidad de escritura. Fue creado originalmente para convertir sólo a HTML. La biblioteca Aspose.HTML for Python via .NET proporciona la conversión inversa de HTML a Markdown. Puede abrir, crear y editar archivos Markdown desde cualquier dispositivo utilizando cualquier editor de texto.

En este artículo, aprenderá cómo convertir HTML a Markdown usando los métodos convert_html() de la clase Converter y cómo aplicar MarkdownSaveOptions.

Para continuar siguiendo este tutorial, instale y configure Aspose.HTML for Python via .NET en su proyecto Python. Nuestros ejemplos de código lo ayudan a convertir HTML a Markdown y generar archivos Markdown utilizando la biblioteca Python.

Convertidor HTML en línea

Puede convertir HTML a Markdown con Aspose.HTML for Python via .NET API en tiempo real. Primero, cargue un archivo HTML desde su unidad local o URL y ejecute el ejemplo. En el ejemplo de código, las opciones de guardar están configuradas de forma predeterminada. Recibirá inmediatamente el resultado de la conversión de HTML a Markdown como un archivo Markdown separado.

                
            

HTML a Markdown: ejemplo de código Python

Los métodos de la clase Converter se utilizan principalmente como la forma más sencilla de convertir un código HTML a varios formatos. Para convertir HTML a Markdown, debes seguir algunos pasos:

  1. Cargue, abra o lea un documento HTML. En el siguiente ejemplo, inicializamos un documento HTML a partir de una cadena de código.
  2. Cree un nuevo objeto MarkdownSaveOptions y especifique las propiedades requeridas.
  3. Para convertir HTML a Markdown, utilice el método convert_html() de la clase Converter, pasándole un HTMLDocument, MarkdownSaveOptions y la ruta al archivo de salida.

Para convertir HTML a Markdown, puede definir su propio conjunto de reglas o utilizar las plantillas predefinidas. Por ejemplo, puede utilizar la plantilla basada en la sintaxis GitLab Flavored Markdown. El siguiente fragmento de código muestra cómo convertir HTML a Markdown usando la propiedad git de 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")

Opciones de guardado: clase MarkdownSaveOptions

La funcionalidad de creación de Markdown se puede mejorar con opciones de guardado según sus necesidades. Las MarkdownSaveOptions tienen una serie de propiedades que le dan control sobre el proceso de conversión:

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.

Convertir HTML a Markdown: uso de la propiedad features

Veamos una de las propiedades importantes de MarkdownSaveOptions: features. Esta opción le permite habilitar/deshabilitar la conversión del elemento en particular. El siguiente ejemplo muestra cómo procesar sólo enlaces y párrafos, el resto de elementos HTML permanecen como están:

 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)

Características de anidamiento

Markdown admite muchas funciones, pero no todas se pueden utilizar juntas. Como ejemplo, los elementos de la lista dentro de los elementos de la tabla no se convertirían. La siguiente tabla muestra qué funciones se pueden anidar. Cada característica es miembro de la enumeración 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

Limitación

Markdown es una sintaxis ligera y fácil de usar. Sin embargo, no todos los elementos HTML se pueden convertir a Markdown ya que no existe un equivalente en la sintaxis de Markdown. Elementos como ESTILO, SCRIPT, ENLACE, EMBED, etc. se descartarán durante la conversión.

HTML en línea – Inline HTML

Markdown le permite especificar el código HTML puro, que se representará tal cual. La característica que permite este comportamiento se llama “HTML en línea”. Para usarlo, debes colocar uno de los elementos específicos admitidos por esta característica al comienzo de la nueva línea. O puede marcar uno de estos elementos como “HTML en línea”, agregando el atributo markdown con el valor inline a este elemento. A continuación se muestra un pequeño ejemplo que demuestra cómo utilizar este atributo:

 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>

Como puede ver, el contenido del elemento <div> no se convierte a Markdown y el procesador Markdown lo trata tal cual. La lista de elementos que admiten esta función es diferente para cada procesador Markdown.

La especificación original de Markdown admite estas etiquetas: BLOCKQUOTE, H1, H2, H3, H4, H5, H6, P, PRE, OL, UL, DL, DIV, INS, DEL, IFRAME, FIELDSET, NOSCRIPT, FORM, MATH.

GitLab Flavored Markdown amplía esta lista con las siguientes etiquetas: ARTICLE, FOOTER, NAV, ASIDE, HEADER, ADDRESS, HR, DD, FIGURE, FIGCAPTION, ABBR, VIDEO, AUDIO, OUTPUT, CANVAS, SECTION, DETAILS, HGROUP, SUMMARY.

El artículo Sintaxis de Markdown – Tutorial básico proporciona información sobre los elementos principales del lenguaje de marcado Markdown y los detalles de la sintaxis de Markdown.

Descargue la biblioteca Aspose.HTML for Python via .NET para convertir exitosa, rápida y fácilmente sus documentos HTML, MHTML, EPUB, SVG y Markdown a los formatos más populares.

Aspose.HTML ofrece un Convertidor de HTML a MD en línea gratuito que convierte HTML a Markdown con alta calidad, fácil y rápido. ¡Simplemente cargue, convierta sus archivos y obtenga resultados en unos segundos!

Texto “Convertidor de HTML a MD”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.