it-swarm-es.tech

¿Cómo puedo hacer una tabla de contenido para un documento de rebajas con Python / AWK / SED?

Tengo el siguiente documento de rebajas:

Heading-a
==========

---text---

Heading-b
------------

--- text ---

Heading-c
----------

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

Me gustaría hacer una tabla de contenido en la que se pueda hacer clic, similar a la forma en que LaTex lo hace, pero no puedo encontrar una herramienta que haga esto, lo que me sugiere que deberíamos construir una.

La herramienta debe recopilar los encabezados 'H1' y los encabezados 'H2' de manera que asigne el número 1 a Heading-a y el número 1.1. a Heading-b, 1.2. a Heading-c, 2. a Heading-d, 2.1. a Heading-e y así sucesivamente, de modo que deberíamos obtener la siguiente tabla de contenido:

  1. Heading-a
  1.1. Heading-b
  1.2. Heading-c
  2. Heading-d
  2.1. Heading-e

¿Cómo puedo hacer esto con Python/AWK/SED?

La implementación Markdown en Python tiene soporte para extensiones, una de las cuales incluye la generación de tabla de contenido. Además Pandoc (que es un marcado de Haskell-> PDF tiene soporte para markdown (además de un montón de otros formatos) y puede generar bastante HTML, LaTeX, PDF, etc.

9
Tyler

Si ya tiene títulos, puede intentar github-markdown-toc es capaz de procesar archivos stdin, locales y remotos, por ejemplo:

cat ~/projects/Dockerfile.vim/README.md | ./gh-md-toc -

o creando un README.md:

./gh-md-toc ~/projects/Dockerfile.vim/README.md
1
resultsway

Consulte este artículo para ver una comparación de los lenguajes de marcado ligeros con alguna información sobre tablas de contenido que podría llevarlo en la dirección de una solución.