es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo h1 desde markdown a través de la biblioteca pandoc de Python.

Estoy escribiendo un script por lotes en Python para procesar muchos archivos de Markdown y obtener texto similar a h1 para generar la variable de metadatos ‘title’ (olvidé agregar ‘title’ en el frontmatter). No estoy utilizando esto como filtro de pandoc.

Por lo tanto, estaba pensando en procesar esos archivos a través de pandoc-python, pero no estoy familiarizado con eso y no puedo entender cómo obtener solo h1.

content = pandoc.read(post.content)

‘content’ es el formato nativo de pandoc. Y veo algo como esto

(Pdb) content
Pandoc(Meta({}), [Header(1, ('foobar', [], []), [Str('foobar:')]), Para(...

Me gustaría obtener h1 como un texto simple.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener solo los encabezados h1 de los archivos markdown utilizando pandoc-python, puedes usar el siguiente fragmento de código:

    import pandoc
    
    with open('file.md', 'r') as f:
        contenido = f.read()
    
    doc = pandoc.Document()
    doc.markdown = contenido
    
    for elem in doc.walk():
        if isinstance(elem, pandoc.Header) and elem.level == 1:
            print(elem.content)
    

    Aquí, primero leemos el archivo markdown y almacenamos su contenido en la variable contenido. Luego creamos un objeto pandoc.Document y establecemos su contenido markdown en la variable contenido. Luego recorremos todos los elementos del documento utilizando el método walk(), y verificamos si el elemento es un encabezado h1 verificando su tipo y nivel. Si es un encabezado h1, imprimimos su contenido como texto simple.

    Puedes modificar este código para procesar varios archivos markdown y generar la variable de metadatos ‘title’ requerida para cada archivo.

Comments are closed.