วิธีการสร้างผลลัพธ์ markdown ในสมุดบันทึก Jupyter โดยทางโปรแกรม


97

ฉันต้องการเขียนรายงานสำหรับชั้นเรียนในสมุดบันทึก Jupyter ฉันต้องการนับบางสิ่งสร้างผลลัพธ์และรวมไว้ใน markdown ฉันสามารถตั้งค่าผลลัพธ์ของเซลล์ให้ตีความเป็น markdown ได้หรือไม่
ฉันต้องการคำสั่งดังกล่าว: print '$\phi$'เพื่อสร้างสัญลักษณ์ phi เช่นเดียวกับใน markdown
กล่าวอีกนัยหนึ่งฉันต้องการสร้างเทมเพลตใน markdown และแทรกค่าที่สร้างโดยโปรแกรมที่เขียนในสมุดบันทึก การคำนวณสมุดบันทึกใหม่ควรสร้างผลลัพธ์ใหม่และมาร์กดาวน์ใหม่พร้อมกับแทรกค่าใหม่เหล่านั้น ซอฟต์แวร์นี้เป็นไปได้หรือไม่หรือฉันต้องเปลี่ยนค่าด้วยตัวเอง

คำตอบ:


141

ฟังก์ชั่นที่คุณต้องการอยู่ในโมดูล IPython.display

from IPython.display import display, Markdown, Latex
display(Markdown('*some markdown* $\phi$'))
# If you particularly want to display maths, this is more direct:
display(Latex('\phi'))

1
ขอบคุณมากฉันเดาว่านี่น่าจะช่วยฉันได้มาก หากฉันอาจถามว่ามีวิธีซ่อนเซลล์ด้วยรหัสหรือไม่? ฉันหมายถึงเมื่อฉัน "คอมไพล์" เซลล์ markdown "โค้ด" จะหายไปและจะเห็นเฉพาะผลลัพธ์ markdown ที่คอมไพล์แล้วเท่านั้น ฉันต้องการทำซ้ำ แต่มีdisplay_markdownฟังก์ชัน
fulaphex

2
น่าเสียดายที่รหัสของคุณใช้ไม่ได้สำหรับฉันมันไม่ได้สร้างผลลัพธ์ใด ๆ
fulaphex

1
ตอนนี้มันใช้งานได้จริงขอบคุณ มีคำสั่งในการซ่อนเซลล์หรือไม่เพื่อให้ฉันสามารถสร้าง markdown นี้และจะทำงานเหมือนเซลล์ markdown ปกติหรือไม่
fulaphex

2
ลิงก์ในความคิดเห็นก่อนหน้าใช้ไม่ได้อีกต่อไปตอนนี้สามารถดูส่วนขยายได้ที่: github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/…
BioGeek

2
ฉันได้รับวัตถุไม่ใช่สิ่งที่พิมพ์:<IPython.core.display.Markdown object>
loretoparisi

31

โดยพื้นฐานแล้วคุณกำลังขอสองสิ่งที่แตกต่างกัน:

  1. เซลล์ Markdown แสดงผลลัพธ์รหัส

    ฉันต้องการนับบางสิ่งสร้างผลลัพธ์และรวมไว้ใน markdown [... ] ฉันต้องการมีเทมเพลตใน markdown และแทรกค่าที่โปรแกรมสร้างขึ้นในสมุดบันทึก

  2. โค้ดเซลล์ที่แสดงผล markdown

    ฉันต้องการคำสั่งดังกล่าว: print '$\phi$'เพื่อสร้างสัญลักษณ์ phi เช่นเดียวกับใน markdown

เนื่องจาก 2. ถูกครอบคลุมโดยคำตอบอื่นแล้ว (โดยทั่วไป: ใช้Latex()หรือMarkdown()นำเข้าจากIPython.display) ฉันจะเน้นที่คำตอบแรก


1. Markdown Template พร้อมตัวแปรที่แทรก

ด้วยPython Markdownส่วนขยาย Jupyter มันเป็นไปได้ที่จะทำตามที่คุณอธิบาย

คำแนะนำในการติดตั้งสามารถพบได้ในหน้า github ของ nbextensions ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานส่วนขยาย python markdown โดยใช้คำสั่ง jupyterหรือตัวกำหนดค่าส่วนขยายปรับแต่งส่วนขยาย

ด้วยส่วนขยายตัวแปรจะถูกเข้าถึงผ่าน{{var-name}}. ตัวอย่างสำหรับเทมเพลต markdown ดังกล่าวอาจมีลักษณะดังนี้:

รหัส Python ใน Markdown Cells

ตัวแปร a คือ {{a}}

คุณยังสามารถฝัง LateX: {{b}} ได้ที่นี่!

สามารถฝังรูปภาพได้: {{i}}

ธรรมชาติตัวแปรหรือภาพทั้งหมดa, b, iควรจะตั้งในรหัสก่อนหน้านี้ และแน่นอนว่าคุณสามารถใช้นิพจน์สไตล์ Markdown-Latex (เช่น$\phi$) ได้โดยไม่ต้องใช้คำสั่งพิมพ์ ภาพนี้มาจาก wiki ของส่วนขยายแสดงให้เห็นถึงความสามารถ

ตัวอย่างจาก wiki


ข้อมูลเพิ่มเติมเกี่ยวกับการทำงานนี้จะถูกรวมอยู่ใน ipython / jupyter จะกล่าวถึงในการติดตามปัญหาสำหรับipythonและjupyter


มีให้บริการใน Jupyter Lab หรือไม่
BND

ฉันไม่ได้ใช้มันจึงไม่มีประสบการณ์ อย่างไรก็ตามฉันไม่พบ "Python Markdown" ในรายการส่วนขยาย jupyter-lab: github.com/topics/jupyterlab-extension?q=&unscoped_q= ดังนั้นอาจจะไม่ใช่?
Honeybear
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.