Markdown: ทำรายการหมายเลขต่อ


474

ในรหัส markdown ต่อไปนี้ฉันต้องการitem 3เริ่มต้นด้วยหมายเลขรายการ 3 แต่เนื่องจากการบล็อกรหัสในระหว่าง markdown เริ่มรายการนี้เป็นรายการใหม่ มีวิธีใดที่จะป้องกันพฤติกรรมดังกล่าวหรือไม่

ผลลัพธ์ที่ต้องการ:

1. item 1
2. item 2

```
Code block
```

3. item 3

ผลผลิตที่ผลิตได้:

  1. รายการ 1
  2. รายการ 2

Code block

  1. รายการ 3

4
นี่เป็นวิธีการแก้ปัญหาที่ถูกต้อง Backticks สามตัวในคำตอบของ Macmade จริง ๆ แล้วเพียงแค่สร้าง<code>องค์ประกอบ HTML ที่มีการขึ้นบรรทัดใหม่ซึ่งไม่สามารถเน้นไวยากรณ์ได้และมีบรรทัดว่างพิเศษข้างบนเน้นเป็นรหัสอย่างเห็นได้ชัด
Dan Dascalescu

1
ถ้าคุณหมดหวังจริงๆคุณสามารถมองขึ้นรหัสอักขระ HTML สำหรับตัวเลขที่คุณต้องการที่จะใช้ (และสำหรับรายการที่ตามมาทุกครั้ง) ... &#50;&#57;. this is list item number 29เช่น สิ่งนี้อาจใช้ไม่ได้กับตัวแยกวิเคราะห์ markdown ทั้งหมด
Roy Tinker

คำตอบ:


621

ใช้ช่องว่างสี่ช่องเพื่อเยื้องเนื้อหาระหว่างสัญลักษณ์แสดงหัวข้อย่อย

1. item 1
2. item 2

    ```
    Code block
    ```
3. item 3

ผลิต:

  1. รายการ 1
  2. รายการ 2

    Code block

  3. รายการ 3

5
ใช่การเยื้องทำให้ชัดเจนกับตัวแยกวิเคราะห์ว่าการบล็อกรหัสเป็นของรายการ 2 มิฉะนั้นเป็นเพียงย่อหน้าปกติและจะจบรายการ
Macmade

42
แต่ ... ถ้าคุณไม่ต้องการเยื้อง Markdown ไม่มีทางออกเท่าที่ฉันรู้ บ่อยครั้งที่การเริ่มต้นรายการเป็นเรื่องปกติแล้วหยุดและจัดเตรียมข้อความที่เป็นความคิดเห็นเมตาเกี่ยวกับรายการ - สิ่งที่เราเพิ่งทำและสิ่งที่กำลังจะมาถึงต่อไป - โดยไม่ต้องมีข้อความเหตุผลส่วนหนึ่งของรายการ จากนั้นทำรายการต่อ Markdown ไม่ต้องการให้เราทำเช่นนั้น มันเป็นรูปแบบของความคิดที่ว่า Markdown ไม่ต้องการให้ผู้คนแสดงออก - ที่ Markdown ไม่รู้ว่าจะแสดงออกอย่างไร Markdown นั้นคิดว่าเกินไป ... ฟรี เครื่องมือควรเป็นไปตามความคิด ถอนหายใจ ฉันสามารถเขียนเป็น HTML หรือสร้าง PDF ได้
ดาวอังคาร

2
ดูเหมือนจะไม่ทำงานเลยสำหรับฉัน ฉันมีรายการหมายเลขง่าย ๆ และมีการเยื้องและเรียงลำดับใหม่ตามที่แสดงด้านบน ยังคงรีสตาร์ทที่ 1
Ray

10
ในบรรณาธิการ Markdown ไม่กี่รายที่ฉันได้ลอง (Bitbucket, Tumblr) มันไม่ทำงาน - มันแสดงผลโค้ดแบบอินไลน์แทนการบล็อกโค้ดที่เยื้องอย่างเหมาะสม
thdoan

2
ใน IntelliJ ทำให้เกิดความแตกต่างจำนวนบรรทัดว่างที่ด้านล่างของแต่ละหมายเลขบล็อก ถ้าคุณเว้นว่างไว้ 2 บรรทัดมันจะเริ่มนับใหม่ ทิ้งไว้เพียงอันเดียวและมันจะดำเนินต่อไป
รูบาร์บ

36

สังเกตว่าในโซลูชันของ Macmade คุณสามารถเห็นโค้ดเพิ่มเติมอีกหนึ่งบรรทัดเหนือ "Code block"

นี่คือสองวิธีที่ดีกว่า:

  1. เยื้องบล็อกรหัสด้วยช่องว่าง 4 พิเศษ (มักจะ 8 ในตัวอย่างรายการที่ซ้อนกันนี้ 12) สิ่งนี้จะใส่รหัสใน<pre>องค์ประกอบ บน SO คุณยังสามารถระบุการเน้นไวยากรณ์ด้วยการ
    <!-- language: lang-js -->เว้นวรรค 4 รายการ (+1 ที่นี่เนื่องจากรายการซ้อนกัน)

    1. รายการ 1
    2. รายการ 2

      Code.block('JavaScript', maybe)?
    3. รายการ 3

  2. หรือเพียงวางบล็อคโค้ดไว้ใน backticks และเยื้องด้วยช่องว่าง 4 ตัว (ที่นี่เพิ่มอีก 1 รายการเนื่องจากรายการซ้อนกัน) คุณจะได้รับย่อหน้าข้อความเยื้องเป็นประจำโดยมี<code>องค์ประกอบอยู่ภายใน อันนี้คุณไม่สามารถเน้นไวยากรณ์ได้:

    1. รายการ 1
    2. รายการ 2

      Code block

    3. รายการ 3

หมายเหตุ: คุณสามารถคลิก "แก้ไข" ในคำตอบนี้เพื่อดูรหัส Markdown ไม่จำเป็นต้องบันทึก;)


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

@Mars อย่างที่คุณเห็นจากคำตอบของ DavidTโซลูชันทั่วไปคือการเยื้องข้อความด้วยช่องว่างจำนวนเท่าใดก็ได้ ตัวอย่างเช่นการเพิ่มช่องว่างหนึ่งช่องแทนที่จะเป็นสี่ช่องจะช่วยให้คุณสามารถแทรกข้อความที่แทรกเข้ามาได้โดยไม่ต้องสร้างบล็อคโค้ด
ClydeTheGhost

36

เป็นส่วนขยายของคำตอบที่มีอยู่ สำหรับผู้ที่พยายามทำรายการหมายเลขต่อจากสิ่งอื่นนอกเหนือจากรหัสบล็อก ตัวอย่างเช่นย่อหน้าที่สอง เพียงเยื้องย่อหน้าที่สองอย่างน้อย 1 ช่องว่าง

markdown:

1. one
2. two

 three
3. four

เอาท์พุท:

  1. หนึ่ง
  2. สอง

    สาม

  3. สี่

1
หวาน! ฉันมีชุดโค้ดหลอกหลอกและสมการ MathJax นี่คือสิ่งที่ฉันต้องการ
xtian

ไม่ทำงานบน GitHub Wiki การเพิ่มช่องว่างเพิ่มเติมอย่างน้อยจะทำให้การกำหนดหมายเลขเป็นประเภทเดียวกับหมายเลขด้านบน :
rofl

1
@ChaimEliyah Thats เพราะ im 99% ว่าวิกิพีเดียไม่ได้ใช้ GitHub รส markdown (im แน่ใจว่าผมเคยเจออยากรู้อยากเห็นเรื่องนี้ก่อนหน้านี้)
DavidT

สิ่งนี้จะช่วยดูแลสถานการณ์ที่คุณมีรายการที่ประกอบด้วยข้อความบางรหัสบางส่วนและข้อความเพิ่มเติมก่อนที่จะสิ้นสุดรายการ
Frotz

14

หากคุณใช้แท็บเพื่อเยื้องบล็อกรหัสมันจะทำให้รูปร่างบล็อกทั้งหมดเป็นหนึ่งบรรทัด เพื่อหลีกเลี่ยงปัญหานี้คุณต้องใช้รายการสั่งแบบ HTML

  1. รายการ 1
  2. รายการ 2

รหัสบล็อก

<ol start="3">
  <li>item 3</li>
  <li>item 4</li>
</ol>

13

โซลูชันของ Macmade ไม่ทำงานสำหรับฉันอีกต่อไปกับอินสแตนซ์ของ Jekyll ใน Github Pages อีกต่อไป แต่ฉันพบวิธีแก้ปัญหานี้สำหรับปัญหา gramub github repo สำหรับตัวอย่างของ OP มันจะมีลักษณะเช่นนี้:

1. item 1
2. item 2

```
Code block
```

{:start="3"}
3. item 3

แก้ไขปัญหาของฉันได้อย่างคล่องแคล่ว


3
น่าเสียดายที่นี่ไม่สามารถใช้ได้กับไฟล์ readme ของ GitHub :(
Nostalg.io

7

ที่มา;

<span>1.</span> item 1<br/>
<span>2.</span> item 2
```
Code block
```
<span>3.</span> item 3


ผลลัพธ์;

1. รายการ 1
2. รายการ 2 Code block 3. รายการ 3


4

หากคุณไม่ต้องการให้เส้นในระหว่างรายการที่จะเยื้องเช่นผู้ใช้ดาวอังคารที่กล่าวถึงในความคิดเห็นของเขาคุณสามารถใช้pandoc's example_listsคุณลักษณะ จากพวกเขาเอกสาร :

(@)  My first example will be numbered (1).
(@)  My second example will be numbered (2).

Explanation of examples.

(@)  My third example will be numbered (3).

ใช่! มันใช้งานได้ดีมาก ทำได้ดี.
javadba

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

(@)สอดคล้องกับรายการอย่างต่อเนื่องทั่วโลก (เพื่อให้สามารถมีได้เพียงหนึ่งใช้. pandoc's startnumนามสกุลคุณสามารถเริ่มต้นรายการสั่งซื้อที่มีหมายเลขที่คุณต้องการและมันก็ทำงาน.
Abid เอช Mujtaba

2

ใส่หมายเลขรายการในวงเล็บแทนตามด้วยจุด

(1) รายการ 1
(2) รายการ 2 code block (3) รายการ 3


5
สิ่งนี้จะทำลาย<ol>และ<li>elems และแทนที่จะล้อมรอบด้วย<p>แท็ก (1)นอกจากนี้คุณจะได้รับอย่างแท้จริง
jmargolisvt

2
ฉันคิดว่านั่นเป็นเจตนา
Gal

1

ฉันแก้ไขปัญหานี้เมื่อ Github แยกบล็อกย่อยที่เยื้องกับบรรทัดใหม่เช่นคุณเขียนรายการ 1 จากนั้นกด Enter สองครั้ง (เช่นถ้าเป็นย่อหน้าใหม่) เยื้องบล็อกและเขียนสิ่งที่คุณต้องการ (บล็อก ของรหัสข้อความ ฯลฯ ) ข้อมูลเพิ่มเติมเกี่ยวกับรายการ Markdownและแบ่งบรรทัด Markdown

ตัวอย่าง:

  1. รายการหนึ่ง
  2. รายการที่สอง

    this block acts as a new paragraph, above there is a blank line

  3. รายการที่สาม

    some other code

  4. รายการสี่

0

โปรดทราบว่านอกจากนี้ยังมีส่วนขยายจำนวนมากที่จะแก้ไขปัญหานี้สำหรับบริบทเฉพาะของการใช้ Markdown

ตัวอย่างเช่นส่วนขยายsane_listsของ python-markdown (ใช้ใน mkdocs เป็นต้น) จะรับรู้ตัวเลขที่ใช้ในรายการ Markdown คุณเพียงแค่ต้องเปิดใช้งานส่วนขยายนี้arkdown.markdown(some_text, extensions=['sane_lists'])


0

หากคุณต้องการจัดแนวข้อความให้อยู่ก่อนหน้าของรายการ แต่หลีกเลี่ยงการแบ่งบรรทัด "ใหญ่" ให้ใช้ช่องว่างสองช่องที่ท้ายรายการในรายการและเยื้องข้อความด้วยช่องว่างบางช่อง

ที่มา: (จุดเป็นช่องว่าง ;-) แน่นอน)

1.·item1··
····This is some text
2.item2

ผลลัพธ์:

  1. item1
    นี่คือข้อความบางส่วน
  2. ITEM2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.