Bagaimana saya bisa membuat daftar isi untuk dokumen penurunan harga dengan Python / AWK / SED?


15

Saya memiliki dokumen penurunan harga berikut:

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

---text---

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

--- text ---

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

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

Saya ingin membuat daftar isi yang dapat diklik darinya, mirip dengan cara LaTex , tetapi tidak dapat menemukan alat yang melakukan ini, yang menunjukkan kepada saya bahwa kita harus membangunnya.

Alat harus mengumpulkan pos 'H1' dan pos 'H2' sedemikian rupa sehingga menetapkan angka 1 ke Heading-adan angka 1.1. ke Heading-b, 1.2. ke Heading-c, 2. hingga Heading-d, 2.1. ke Heading-edan seterusnya, sehingga kita harus mendapatkan Daftar Isi berikut:

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

Bagaimana saya bisa melakukan ini dengan Python / AWK / SED?


Mengapa Anda tidak menggunakan LaTeX saja?
jtbandes

4
@jtbandes: Sintaks Markdown lebih mudah dibaca, lebih cepat untuk mengetik dan lebih mudah dikompilasi daripada LaTex.
Léo Léopold Hertz 준영

Jawaban:



1

Jika Anda sudah memiliki heading, Anda dapat mencoba github-markdown-toc yang dapat memproses file stdin, lokal dan jarak jauh, misalnya:

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

atau membuat lokal README.md:

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

0

Lihat artikel ini untuk perbandingan bahasa markup ringan dengan beberapa informasi tentang daftar isi yang mungkin mengarahkan Anda ke arah solusi.


Tautan tidak berfungsi.
Léo Léopold Hertz 준영

1
Tautan ini berfungsi untuk saya.
Dijeda sampai pemberitahuan lebih lanjut.

Sepertinya penulis asli baru saja menghapus posting blog sehingga Anda memiliki artikel di cache.
Léo Léopold Hertz 준영

1
Artikel tersebut dapat ditemukan di cache Google: situs: alexandrenotebook.blogspot.com/2008/01/…
Léo Léopold Hertz 준영
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.