Come posso creare un sommario per un documento markdown con Python / AWK / SED?


15

Ho il seguente documento markdown:

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

---text---

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

--- text ---

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

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

Vorrei ricavarne un sommario cliccabile, simile al modo in cui LaTex fa, ma non riesco a trovare uno strumento che lo faccia, il che mi suggerisce che dovremmo costruirne uno.

Lo strumento dovrebbe raccogliere le intestazioni "H1" e "H2" in modo tale da assegnare il numero 1 al Heading-ae il numero 1.1. a Heading-b, 1.2. a Heading-c, 2. a Heading-d, 2.1. a Heading-ee così via, in modo tale che si dovrebbe ottenere il seguente indice:

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

Come posso farlo con Python / AWK / SED?


Perché non usi semplicemente LaTeX?
jtbandes,

4
@jtbandes: la sintassi di Markdown è più facile da leggere, più veloce da digitare e più facile da compilare rispetto a quella di LaTex.
Léo Léopold Hertz

Risposte:


9

L' implementazione Markdown in Python ha il supporto per le estensioni, una delle quali include la generazione di Sommario. Inoltre Pandoc (che è un markup Haskell-> PDF ha il supporto per il markdown (oltre a un sacco di altri formati) e può produrre piuttosto HTML, LaTeX, PDF, ecc.


La tua risposta ha sollevato un altro problema nell'installazione delle estensioni nel thread superuser.com/questions/13075/…
Léo Léopold Hertz

1

Se hai già titoli, puoi provare github-markdown-toc è in grado di elaborare file stdin, locali e remoti, ad esempio:

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

o creando un locale README.md:

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

0

Consulta questo articolo per un confronto tra linguaggi di markup leggeri con alcune informazioni sugli indici che potrebbero indirizzarti verso una soluzione.


Il collegamento non funziona.
Léo Léopold Hertz

1
Il link funziona per me.
In pausa fino a ulteriore avviso.

Sembra che l'autore originale abbia appena rimosso il post del blog in modo da avere l'articolo nella cache.
Léo Léopold Hertz

1
L'articolo è disponibile nella cache di Google: sito: alexandrenotebook.blogspot.com/2008/01/…
Léo Léopold Hertz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.