Làm cách nào tôi có thể tạo mục lục cho tài liệu đánh dấu bằng Python / AWK / SED?


15

Tôi có tài liệu đánh dấu sau:

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

---text---

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

--- text ---

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

--- text---

Heading-d
=======

--- text----

Heading-e
---

...

Tôi muốn tạo một bảng nội dung có thể nhấp từ đó, tương tự như cách LaTex thực hiện, nhưng không thể tìm thấy một công cụ thực hiện điều này, điều này gợi ý cho tôi rằng chúng ta nên xây dựng một mục.

Công cụ sẽ thu thập các tiêu đề 'H1' và các tiêu đề 'H2' sao cho nó gán số 1 cho Heading-avà số 1.1. đến Heading-b, 1.2. đến Heading-c, 2. đến Heading-d, 2.1. đến Heading-evà như vậy, để chúng ta có được Mục lục sau đây:

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

Làm thế nào tôi có thể làm điều này với Python / AWK / SED?


Tại sao bạn không sử dụng LaTeX?
jtbandes

4
@jtbandes: Cú pháp của Markdown dễ đọc hơn, gõ nhanh hơn và dễ biên dịch hơn so với LaTex.
Léo Léopold Hertz

Câu trả lời:


9

Việc triển khai Markdown trong Python có hỗ trợ cho các tiện ích mở rộng, một trong số đó bao gồm việc tạo Mục lục. Ngoài ra, Pandoc (là một đánh dấu Haskell-> PDF có hỗ trợ đánh dấu (ngoài một loạt các định dạng khác) và có thể xuất ra các HTML, LaTeX, PDF, v.v.


Câu trả lời của bạn đã nảy sinh một vấn đề khác trong việc cài đặt các tiện ích mở rộng tại chủ đề superuser.com/questions/13075/
triệt

1

Nếu bạn đã có tiêu đề, bạn có thể thử github-markdown-toc có thể xử lý các tệp stdin, cục bộ và từ xa, ví dụ:

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

hoặc tạo một địa phương README.md:

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

0

Xem bài viết này để so sánh các ngôn ngữ đánh dấu nhẹ với một số thông tin về các bảng nội dung có thể đưa bạn đi theo hướng giải pháp.


Liên kết không hoạt động.
Léo Léopold Hertz

1
Các liên kết làm việc cho tôi.
Tạm dừng cho đến khi có thông báo mới.

Có vẻ như trường hợp tác giả ban đầu vừa xóa bài đăng trên blog để bạn có bài viết trong bộ nhớ cache.
Léo Léopold Hertz

1
Bài viết có thể được tìm thấy tại bộ nhớ cache của Google: trang web: alexandrenotebook.blogspot.com/2008/01/
Ấn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.