ฉันจะสร้างสารบัญสำหรับเอกสาร markdown ด้วย Python / AWK / SED ได้อย่างไร


15

ฉันมีเอกสาร markdown ต่อไปนี้:

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
LéoLéopold Hertz 준영

คำตอบ:


9

การใช้Markdown ใน Pythonนั้นรองรับส่วนขยายอย่างใดอย่างหนึ่งซึ่งรวมถึงการสร้างสารบัญ นอกจากนี้Pandoc (ซึ่งเป็น Haskell markup-> PDF มีการรองรับสำหรับ markdown (นอกเหนือจากรูปแบบอื่น ๆ ) และสามารถส่งออก HTML, LaTeX, PDF และอื่น ๆ ได้


คำตอบของคุณทำให้เกิดปัญหาอื่นในการติดตั้งส่วนขยายที่ thread superuser.com/questions/13075/…
LéoLéopold Hertz 준영

1

หากคุณมีส่วนหัวอยู่แล้วคุณสามารถลองgithub-markdown-tocเพื่อประมวลผลไฟล์ stdin, โลคัลและรีโมตตัวอย่างเช่น:

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

หรือสร้างท้องถิ่นREADME.md:

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

0

ดูบทความนี้สำหรับการเปรียบเทียบภาษามาร์กอัปน้ำหนักเบาพร้อมข้อมูลบางอย่างในสารบัญที่อาจนำคุณไปสู่การแก้ไขปัญหา


ลิงก์ไม่ทำงาน
LéoLéopold Hertz 준영


ดูเหมือนว่าเป็นกรณีที่ผู้เขียนต้นฉบับเพิ่งลบโพสต์บล็อกเช่นที่คุณมีบทความในแคชของคุณ
LéoLéopold Hertz 준영

1
บทความสามารถพบได้ที่แคชของ Google: ไซต์: alexandrenotebook.blogspot.com/2008/01/…
LéoLéopold Hertz 준영
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.