15 votes

Comment créer une table des matières pour un document markdown avec Python/AWK/SED ?

J'ai le document markdown suivant :

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

---text---

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

--- text ---

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

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

J'aimerais en faire une table des matières cliquable, à l'instar de ce qui se fait dans le domaine de l'informatique. LaTex le fait, mais je ne trouve pas d'outil qui le fasse, ce qui me laisse penser que nous devrions en construire un.

L'outil doit collecter les titres "H1" et les titres "H2" de manière à attribuer le numéro 1 aux rubriques suivantes Heading-a et le nombre 1.1. à Heading-b , 1.2. à Heading-c , 2. à Heading-d , 2.1. à Heading-e et ainsi de suite, de sorte que nous devrions obtenir la table des matières suivante :

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

Comment puis-je faire cela avec Python/AWK/SED ?

9voto

Charly Points 311

En Markdown en Python prend en charge des extensions, dont l'une inclut la génération de tables des matières. En outre, l'application Pandoc (qui est un balisage Haskell->PDF supporte le markdown (en plus d'un tas d'autres formats) et peut produire de jolis HTML, LaTeX, PDF, etc.

1voto

resultsway Points 119

Si vous avez déjà des titres, vous pouvez essayer github-markdown-toc est capable de traiter des fichiers stdin, locaux et distants, par exemple :

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

ou la création d'un README.md :

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

0voto

Damian Powell Points 315

Voir cet article pour une comparaison des langages de balisage légers avec quelques informations sur les tables des matières qui pourraient vous orienter vers une solution.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X