Как я могу сделать оглавление для документа уценки с Python / AWK / SED?

15

У меня есть следующий документ по уценке:

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

---text---

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

--- text ---

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

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

Я хотел бы сделать из этого кликабельное оглавление, аналогичное тому, как это делает LaTex , но я не могу найти инструмент, который делает это, и предлагает мне его создать.

Инструмент должен собирать заголовки 'H1' и заголовки 'H2' так, чтобы он назначал номер 1 Heading-aи номер 1.1. до Heading-b1,2. к Heading-c, 2. к Heading-d, 2.1. к Heading-eи так далее, так что мы должны получить следующую таблицу содержания:

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

Как я могу сделать это с Python / AWK / SED?

Лео Леопольд Герц 준영
источник
Почему бы вам просто не использовать LaTeX?
Jtbandes
4
@jtbandes: синтаксис Markdown легче читать, быстрее набирать и легче компилировать, чем у LaTex.
Лео Леопольд Герц

Ответы:

9

Реализация Markdown в Python поддерживает расширения, одно из которых включает создание оглавления. Кроме того, Pandoc (который представляет собой разметку на Haskell-> PDF, поддерживает разметку (в дополнение к множеству других форматов) и может выводить красивые HTML, LaTeX, PDF-файлы и т. Д.

Тайлер
источник
Ваш ответ поднял еще одну проблему при установке расширений в ветке superuser.com/questions/13075/…
Léo Léopold Hertz
1

Если у вас уже есть заголовки, вы можете попробовать github-markdown-toc в состоянии обрабатывать стандартные, локальные и удаленные файлы, например:

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

или создание локального README.md:

./gh-md-toc ~/projects/Dockerfile.vim/README.md
resultsway
источник
0

В этой статье приведено сравнение облегченных языков разметки с некоторой информацией о содержании, которая может привести вас к решению.

Приостановлено до дальнейшего уведомления.
источник
Ссылка не работает.
Лео Леопольд Герц 준영
1
Ссылка у меня работает.
Приостановлено до дальнейшего уведомления.
Похоже, это тот случай, когда оригинальный автор только что удалил сообщение в блоге, так что у вас есть статья в вашем кэше.
Лео Леопольд Герц 준영
1
Статью можно найти в кеше Google: site: alexandrenotebook.blogspot.com/2008/01/…
Léo Léopold Hertz 준영