Jak mogę utworzyć spis treści dla dokumentu przeceny za pomocą Python / AWK / SED?

15

Mam następujący dokument przeceny:

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

---text---

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

--- text ---

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

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

Chciałbym stworzyć z niego klikalny spis treści, podobnie jak robi to LaTex , ale nie mogę znaleźć narzędzia, które to robi, co sugeruje, że powinniśmy go zbudować.

Narzędzie powinno zbierać nagłówki „H1” i nagłówki „H2” w taki sposób, aby przypisywały cyfrę 1 Heading-ai numer 1.1. do Heading-b1.2. do Heading-c, 2. do Heading-d, 2.1. do Heading-ei tak dalej, tak że powinniśmy otrzymać następujący spis treści:

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

Jak mogę to zrobić za pomocą Python / AWK / SED?

Léo Léopold Hertz 준영
źródło
Dlaczego po prostu nie używasz LaTeXa?
jtbandes
4
@jtbandes: Składnia Markdown jest łatwiejsza do odczytania, szybsza w pisaniu i łatwiejsza do kompilacji niż LaTex.
Léo Léopold Hertz

Odpowiedzi:

9

Markdown w Pythonie realizacja posiada wsparcie dla rozszerzeń, z których jeden zawiera tabela generowania treści. Dodatkowo Pandoc (który jest znacznikiem Haskell-> PDF ma obsługę markdown (oprócz wielu innych formatów) i może wyświetlać ładne HTML, LaTeX, PDF itp.

Tyler
źródło
W Twojej odpowiedzi
pojawił się
1

Jeśli masz już nagłówki, możesz spróbować github-markdown-toc jest w stanie przetwarzać standardowe, lokalne i zdalne pliki, na przykład:

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

lub tworząc lokalny README.md:

./gh-md-toc ~/projects/Dockerfile.vim/README.md
wyniki
źródło
0

Zobacz ten artykuł, aby porównać lekkie języki znaczników z niektórymi informacjami na temat spisów treści, które mogą poprowadzić Cię w kierunku rozwiązania.

Wstrzymano do odwołania.
źródło
Link nie działa.
Léo Léopold Hertz
2
Link działa dla mnie.
Wstrzymano do odwołania.
Wygląda na to, że oryginalny autor właśnie usunął post na blogu, tak że masz artykuł w pamięci podręcznej.
Léo Léopold Hertz
1
Artykuł można znaleźć w pamięci podręcznej Google: strona: alexandrenotebook.blogspot.com/2008/01/…
Léo Léopold Hertz 준영