คำแนะนำ JupyterLab ToC
มีคำตอบที่ดีมากมายสำหรับคำถามนี้ แต่มักต้องการการปรับแต่งเพื่อให้ทำงานได้อย่างถูกต้องกับโน้ตบุ๊กใน JupyterLab ฉันเขียนคำตอบนี้เพื่อให้รายละเอียดเกี่ยวกับวิธีที่เป็นไปได้ในการรวม ToC ในสมุดบันทึกขณะทำงานและส่งออกจาก JupyterLab
เป็นแผงด้านข้าง
jupyterlab-tocขยายเพิ่ม TOC เป็นแผงด้านข้างที่หัวจำนวนกระป๋องส่วนการล่มสลายและถูกนำมาใช้สำหรับการเดินเรือ (ดู GIF ด้านล่างสำหรับการสาธิต) ติดตั้งด้วยคำสั่งต่อไปนี้
jupyter labextension install @jupyterlab/toc
ในสมุดบันทึกเป็นเซลล์
ในขณะนี้สามารถทำได้ด้วยตนเองเช่นเดียวกับคำตอบของ Matt Dancho หรือโดยอัตโนมัติผ่านส่วนขยายสมุดบันทึก toc2 jupyter
ในอินเทอร์เฟซโน้ตบุ๊กแบบคลาสสิก
ขั้นแรกให้ติดตั้ง toc2 เป็นส่วนหนึ่งของบันเดิล jupyter_contrib_nbextensions :
conda install -c conda-forge jupyter_contrib_nbextensions
จากนั้นเปิด JupyterLab ไปที่Help --> Launch Classic Notebook
และเปิดสมุดบันทึกที่คุณต้องการเพิ่ม ToC คลิกสัญลักษณ์ toc2 ในแถบเครื่องมือเพื่อเปิดหน้าต่าง ToC แบบลอยขึ้นมา (ดู gif ด้านล่างหากคุณไม่พบ) คลิกไอคอนรูปเฟืองและทำเครื่องหมายที่ช่อง "เพิ่มเซลล์ ToC สมุดบันทึก" บันทึกสมุดบันทึกและเซลล์ ToC จะอยู่ที่นั่นเมื่อคุณเปิดใน JupyterLab เซลล์ที่แทรกเป็นเซลล์ markdown ที่มี html อยู่มันจะไม่อัปเดตโดยอัตโนมัติ
ตัวเลือกเริ่มต้นของ toc2 สามารถกำหนดค่าได้ในแท็บ "Nbextensions" ในหน้าเปิดตัวโน้ตบุ๊กคลาสสิก คุณสามารถเลือกที่จะกำหนดหมายเลขหัวเรื่องและยึด ToC เป็นแถบด้านข้าง (ซึ่งส่วนตัวคิดว่าดูสะอาดกว่า)
ในไฟล์ HTML ที่ส่งออก
nbconvert
สามารถใช้เพื่อส่งออกสมุดบันทึกไปยัง HTML ตามกฎของวิธีการจัดรูปแบบ HTML ที่ส่งออก toc2
ขยายดังกล่าวข้างต้นจะเพิ่มรูปแบบการส่งออกที่เรียกว่าhtml_toc
ซึ่งสามารถนำมาใช้โดยตรงด้วยnbconvert
จากบรรทัดคำสั่ง (หลังจากที่toc2
ขยายได้รับการติดตั้ง):
jupyter nbconvert file.ipynb --to html_toc
# Append `--ExtractOutputPreprocessor.enabled=False`
# to get a single html file instead of a separate directory for images
โปรดจำไว้ว่าสามารถเพิ่มคำสั่งเชลล์ลงในเซลล์สมุดบันทึกได้โดยใส่เครื่องหมายอัศเจรีย์ไว้ล่วงหน้า!
ดังนั้นคุณสามารถติดบรรทัดนี้ไว้ในเซลล์สุดท้ายของสมุดบันทึกและมีไฟล์ HTML ที่มี ToC ที่สร้างขึ้นเสมอเมื่อคุณกด "เรียกใช้เซลล์ทั้งหมด" ( หรือผลลัพธ์ที่คุณต้องการnbconvert
) วิธีนี้คุณสามารถใช้jupyterlab-toc
เพื่อนำทางโน้ตบุ๊กในขณะที่คุณกำลังทำงานและยังคงได้รับ ToC ในเอาต์พุตที่ส่งออกโดยไม่ต้องหันไปใช้อินเทอร์เฟซของโน้ตบุ๊กแบบคลาสสิก (สำหรับคนที่พิถีพิถันในหมู่พวกเรา)
โปรดทราบว่าการกำหนดค่าตัวเลือก toc2 เริ่มต้นตามที่อธิบายไว้ข้างต้นจะไม่เปลี่ยนรูปแบบของnbconver --to html_toc
. คุณต้องเปิดสมุดบันทึกในอินเทอร์เฟซสมุดบันทึกแบบคลาสสิกสำหรับข้อมูลเมตาที่จะเขียนลงในไฟล์. ipynb (nbconvert อ่านข้อมูลเมตาเมื่อส่งออก) หรือคุณสามารถเพิ่มข้อมูลเมตาด้วยตนเองผ่านแท็บเครื่องมือของโน้ตบุ๊กของแถบด้านข้าง JupyterLab เช่นบางสิ่งบางอย่าง ชอบ:
"toc": {
"number_sections": false,
"sideBar": true
}
หากคุณต้องการแนวทางที่ขับเคลื่อนด้วย GUI คุณควรจะสามารถเปิดสมุดบันทึกแบบคลาสสิกและคลิกได้File --> Save as HTML (with ToC)
(แม้ว่าฉันจะทราบว่ารายการเมนูนี้ไม่สามารถใช้ได้สำหรับฉันก็ตาม)
gif ด้านบนเชื่อมโยงจากเอกสารประกอบของส่วนขยาย