ฉันจะสร้างกล่องข้อความสำหรับบันทึกย่อใน markdown ได้อย่างไร


94

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


Microsoft ใช้ไวยากรณ์ของตนเองในเอกสารประกอบ แต่ไม่น่าจะใช้ได้กับสภาพแวดล้อมของคุณ รวมไว้ที่นี่เพื่อความสมบูรณ์และเปรียบเทียบกับคำตอบด้านล่าง github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/…
brianary

คำตอบ:


103

สิ่งที่ฉันมักจะทำเพื่อใส่กล่องแจ้งเตือน (เช่นหมายเหตุหรือคำเตือน) ในข้อความมาร์กดาวน์ (ไม่เพียง แต่เมื่อใช้ pandoc แต่ยังรองรับทุกที่ที่มาร์กดาวน์ด้วย) ล้อมรอบเนื้อหาด้วยเส้นแนวนอนสองเส้น:

---
**NOTE**

It works with almost all markdown flavours (the below blank line matters).

---

ซึ่งจะเป็นดังนี้:


บันทึก

ใช้ได้กับทุกรสชาติที่มาร์กดาวน์ (บรรทัดด้านล่างมีความสำคัญ)


สิ่งที่ดีคือคุณไม่จำเป็นต้องกังวลว่าจะรองรับรสชาติมาร์กดาวน์ใดหรือส่วนขยายใดที่ติดตั้งหรือเปิดใช้งาน

แก้ไข : ตามที่ @ filups21 ได้กล่าวไว้ในความคิดเห็นดูเหมือนว่าเส้นแนวนอนจะแสดงโดย***ใน RMarkdown ดังนั้นวิธีการแก้ปัญหาที่กล่าวถึงก่อนหน้านี้ไม่สามารถใช้ได้กับรสชาติที่มาร์กดาวน์ทั้งหมดตามที่อ้างไว้ในตอนแรก


4
สิ่งนี้มีประโยชน์ แต่ใช้ไม่ได้กับ RMarkdown / Rstduio / Knitr
bjw

2
bjw - เส้นแนวนอนใน rmarkdown ***นำหน้าด้วยเส้นว่าง หรือคุณสามารถใส่โน้ตในบล็อคข้อความโดยขึ้นต้นบรรทัดด้วย> (นำหน้าด้วยบรรทัดว่างด้วย)
filups21

88

เมื่อใช้ GitHub ฉันมักจะใส่ blockquote

> **_NOTE:_**  The note content.

กลายเป็น...

หมายเหตุ: เนื้อหาหมายเหตุ

แน่นอนว่ามี HTML ธรรมดาเสมอ ...


@KamilSJaron: เอ๊ะ? ไม่พวกเขาไม่ คุณกำลังคิดเกี่ยวกับการบล็อกโค้ดหรือไม่?
naught101

@ naught101 อ่าฉันกำลังอ่าน blockquote เป็น backquote อย่างไรก็ตาม backquotes สามใบไม่ได้ห่อ
Kamil S Jaron

4
ฉันชอบโซลูชันสากลนี้ ฉันยังสนุกกับการใช้ Unicode อีโมจิคำนำหน้าทราบเช่นหรือ> ℹ️ This is an information > ⚠️ This is a warning
pierre_loic

1
นี่และตารางกากตะกอนเป็นคำตอบเดียวที่สามารถแก้คำถามนี้ได้ kludge กฎอย่างหนักที่เสนอโดยคำตอบที่ด้านบนล้มเหลวในการแสดงกล่องและจึงล้มเหลวในการแก้คำถามนี้ อันที่จริงคำตอบนี้ควบคู่ไปกับการ @ pierre_loic ของไอคอน Unicode modส่วนใหญ่ซ้ำบันทึก reStructuredText
Cecil Curry

16

วิธีแก้ปัญหาที่ง่ายที่สุดที่ฉันพบในปัญหาเดียวกันคือการใช้ตารางหลายบรรทัดกับหนึ่งแถวและไม่มีส่วนหัว (มีรูปภาพในคอลัมน์แรกและข้อความในคอลัมน์ที่สอง):

----------------------- ------------------------------------
![Tip](images/tip.png)\ Table multiline text bla bla bla bla
                        bla bla bla bla bla bla bla ... the
                        blank line below is important 

----------------------------------------------------------------

อีกวิธีหนึ่งที่อาจใช้ได้ผล (สำหรับ PDF) คือการใช้คำสั่งfboxเริ่มต้นของ Latex :

 \fbox{My text!}

หรือโมดูล FancyBox สำหรับคุณสมบัติที่สูงขึ้น (และกล่องดูดี): http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox


1
คุณรู้หรือไม่ว่าเป็นไปได้หรือไม่ที่จะกำหนดว่าโน้ต pandoc-markdown จะมีลักษณะอย่างไรภายในไฟล์เทมเพลตของ pandoc? ตัวอย่างเช่นการแก้ไข ~ / .pandoc / templates / default.latex?
tmaric

11

ใช้ส่วนขยายคำตักเตือน สำหรับmkdocsสามารถกำหนดค่าได้ในmkdocs.ymlไฟล์:

markdown_extensions:
    - admonition

จากนั้นใส่บันทึกในไฟล์ md ของคุณดังนี้:

!!! note

     This is a note.

ดูตัวอย่างที่นี่


8

คล้ายกับโซลูชันของ Etienne ซึ่งเป็นรูปแบบตารางที่เรียบง่าย:

| | |
|-|-|
|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|

อีกทางเลือกหนึ่ง (ซึ่งให้ความสำคัญมากกว่า) คือการทำให้เนื้อหาเป็นส่วนหัวของตารางที่ไม่มีเนื้อหา:

|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|
|-|-|

สุดท้ายคุณสามารถรวมเส้นแนวนอน (ตัวแบ่งหัวข้อ) เพื่อสร้างกล่องปิด (แม้ว่าลักษณะของเส้นจะแตกต่างจากเส้นส่วนหัวในตารางเล็กน้อย):

| | |
|-|-|
|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|

---

สังเกตบรรทัดว่างหลังข้อความ


ฉันชอบโซลูชันนี้มาก แต่เมื่อฉันแปลงผ่าน pandoc และ xelatex เป็น pdf ดูเหมือนว่าจะจัดสรร 50% สำหรับNOTEคอลัมน์ "" และอีก 50% สำหรับอีกอัน หนึ่งสามารถใช้ตารางหลายบรรทัดตามstackoverflow.com/questions/27219629 - แต่ก็มีปัญหาการจัดรูปแบบอื่น ๆ
sdbbs

7

นี่คือตัวอย่างง่ายๆจากลาเท็กซ์

---
header-includes:
    - \usepackage[most]{tcolorbox}
    - \definecolor{light-yellow}{rgb}{1, 0.95, 0.7}
    - \newtcolorbox{myquote}{colback=light-yellow,grow to right by=-10mm,grow to left by=-10mm, boxrule=0pt,boxsep=0pt,breakable}
    - \newcommand{\todo}[1]{\begin{myquote} \textbf{TODO:} \emph{#1} \end{myquote}}
---

blah blah

\todo{something}

blah

ซึ่งส่งผลให้: ใส่คำอธิบายภาพที่นี่

น่าเสียดายเนื่องจากนี่เป็นลาเท็กซ์คุณจึงไม่สามารถรวม markdown ไว้ในกล่อง TODO ได้อีกต่อไป (ซึ่งโดยปกติแล้วไม่ใช่ปัญหาใหญ่) และจะไม่ทำงานเมื่อแปลงเป็นรูปแบบอื่นที่ไม่ใช่ PDF (เช่น html)


5

วิธีการต่อไปนี้ใช้ได้กับ GitHub บน GitLab ... และบน Stackoverflowซึ่งตอนนี้ใช้CommonMark !


> กล่องบรรทัดเดียวทำด้วย Blockquote

กล่องบรรทัดเดียวทำด้วย Blockquote


`One-Line Box ทำด้วย Backticks`

One-Line Box made with Backticks


``
กล่องทำด้วย Triple Backticks
''

Box made with Triple Backticks  


~ ~ ~
กล่องที่ทำด้วย Triple Tildes
(ลบช่องว่างระหว่างทิลด์เพื่อให้ทำงานนี้)
~ ~ ~

Box made with Triple Tildes


กล่องที่สร้างด้วย Four Spacesที่จุดเริ่มต้นของแต่ละบรรทัด:

    “Sometimes we must let go of our pride and do what is requested of us.”
    Padmé Amidala


... หรือใช้เส้นแนวนอน?

สามขีด (---) สร้างเส้นแนวนอน:


หมายเหตุ :“ โฟกัสของคุณกำหนดความเป็นจริงของคุณ” - Qui-Gon Jinn


สำหรับการกำหนดค่ามากขึ้นผมขอให้คำแนะนำที่ดีเยี่ยมGitLab Markdown คู่มือ
คุณยังสามารถตรวจสอบไวยากรณ์การจัดรูปแบบพื้นฐานของ GitHub ที่มีรายละเอียดน้อยได้
คุณสามารถเปรียบเทียบการใช้งาน Markdown โดยใช้Babelmark Babelmark

คำแนะนำที่เป็นประโยชน์:

  • ในการบังคับขึ้นบรรทัดใหม่ให้ใส่ช่องว่างสองช่องที่ท้ายบรรทัด

  • เพื่อหลีกเลี่ยงอักขระพิเศษให้ใช้ \.


3

คุณได้ลองใช้แท็บสองครั้งหรือไม่? ในการทำกล่อง:

Start on a fresh line
Hit tab twice, type up the content
Your content should appear in a box

มันใช้ได้กับฉันในเอกสาร Rmarkdown ปกติพร้อมเอาต์พุต html ส่วนที่เป็นแท็บสองครั้งควรปรากฏในกล่องสี่เหลี่ยมสีเทาอ่อนที่โค้งมน


ทำงานบน VS Code และ GitHub ด้วย!
Nagev


0

อีกวิธีหนึ่งคือการใช้ CSS adjacency และใช้ h4 (หรือสูงกว่า):

#### note

This is the note content
h4 {
  display: none; /* hide */
}

h4 + p {
  /* style the note however you want */
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.