Comment puis-je faire une table des matières pour un document de démarque avec Python / AWK / SED?


15

J'ai le document de démarque suivant:

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

---text---

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

--- text ---

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

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

Je voudrais en faire une table des matières cliquable, semblable à la façon dont LaTex le fait, mais je ne trouve pas un outil qui le fasse, ce qui me suggère que nous devrions en construire un.

L'outil doit collecter les rubriques «H1» et «H2» de manière à attribuer le numéro 1 à Heading-aet le numéro 1.1. à Heading-b, 1.2. à Heading-c, 2. à Heading-d, 2.1. à Heading-eet ainsi de suite, de sorte que nous devrions obtenir le tableau suivant des matières:

  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?


Pourquoi n'utilisez-vous pas simplement LaTeX?
jtbandes

4
@jtbandes: La syntaxe de Markdown est plus facile à lire, plus rapide à taper et plus facile à compiler que celle de LaTex.
Léo Léopold Hertz

Réponses:



1

Si vous avez déjà des en-têtes, 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 en créant un local README.md:

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

0

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


Le lien ne fonctionne pas.
Léo Léopold Hertz

2
Le lien fonctionne pour moi.
pause jusqu'à nouvel ordre.

Il semble que l'auteur d'origine vient de supprimer le billet de blog de sorte que l'article se trouve dans votre cache.
Léo Léopold Hertz

1
L'article peut être trouvé dans le cache de Google: site: alexandrenotebook.blogspot.com/2008/01/…
Léo Léopold Hertz 준영
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.