Как я могу сделать оглавление для документа уценки с 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

0

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


Ссылка не работает.
Лео Леопольд Герц 준영


Похоже, это тот случай, когда оригинальный автор только что удалил сообщение в блоге, так что у вас есть статья в вашем кэше.
Лео Леопольд Герц 준영

1
Статью можно найти в кеше Google: site: alexandrenotebook.blogspot.com/2008/01/…
Léo Léopold Hertz 준영
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.