Markdown: numaralı listeye devam et


477

Aşağıdaki işaretleme kodunda istiyorum item 3 liste numarası 3 ile başlamak . Ancak, işaretleme arasındaki kod bloğu nedeniyle bu liste öğesini yeni bir liste olarak başlatır. Bu davranışı önlemenin bir yolu var mı?

Istenilen çıktı:

1. item 1
2. item 2

```
Code block
```

3. item 3

Üretilen çıktı:

  1. madde 1
  2. madde 2

Code block

  1. madde 3

4
İşte doğru çözüm . Macmade'in cevabındaki üçlü backticks aslında <code>içinde yeni satırlar bulunan ve sözdizimi vurgulanamayan ve kod olarak görünür şekilde vurgulanan fazladan boş bir çizgiye sahip bir HTML öğesi üretiyor .
Dan Dascalescu

1
Gerçekten çaresizseniz, kullanmak istediğiniz numaraların (ve sonraki her öğenin) HTML karakter kodlarını olduğu gibi arayabilirsiniz &#50;&#57;. this is list item number 29. Bu tüm markdown ayrıştırıcılarında işe yaramayabilir.
Roy Tinker

Yanıtlar:


623

Madde işaretleri arasında içeriğe girinti eklemek için dört boşluk kullanın

1. item 1
2. item 2

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

üretir:

  1. madde 1
  2. madde 2

    Code block

  3. madde 3

5
Evet, girinti, ayrıştırıcıya kod bloğunun liste öğesi 2'ye ait olduğunu açıkça belirtir. Aksi takdirde, bu sadece normal bir paragraftır ve listeyi sonlandırır.
Macmade

43
Ama ... ya orada girinti istemiyorsanız? Markdown'un bildiğim kadarıyla bir çözümü yok. Bir listeyi başlatmak, sonra durmak ve liste hakkında meta bir yorum olan - az önce ne yaptıklarımız ve bir sonraki sırada ne olacak - metin mantıksal olarak, listenin bir parçası olmadan - bir şeyler başlatmak ve genellikle doğal bir şeydir ve sonra listeye devam edin. Markdown bunu yapmamızı istemiyor. Markdown'un insanların ifade etmesini istemediği bir düşünce biçimi - Markdown'un nasıl ifade edeceğini bilmediğini, Markdown'un çok ... ücretsiz olduğunu düşündüğünü. Araçlar düşünceyi takip etmelidir. İç çekmek. HTML olarak yazabilir veya PDF yapabilirim.
Mars

2
Benim için hiç çalışmıyor gibi görünüyor. Basit bir numaralı listem var ve yukarıda gösterildiği gibi girintili ve yeni çizgili. Hala 1'de yeniden başlıyor
Ray

10
Denediğim birkaç Markdown editöründe (Bitbucket, Tumblr), bu işe yaramaz - düzgün girintili bir kod bloğu yerine satır içi kod oluşturur.
thdoan

2
IntelliJ'de her bir numaralı bloğun altında kaç boş satır olduğu fark yaratır. 2 boş satır bırakırsanız numaralandırmayı yeniden başlatır; sadece bir tane bırakın ve devam eder.
Ravent

36

Macmade'in çözümünde, "Kod bloğu" nun üzerinde fazladan bir kod satırı gördüğünüze dikkat edin.

İşte daha iyi iki çözüm:

  1. Kod bloğunu fazladan 4 boşlukla girinti (bu genellikle 8, bu iç içe liste örneğinde, 12). Bu, kodu bir <pre>öğeye yerleştirir. SO üzerinde, hatta belirtebilirsiniz sözdizimi vurgulama bir ile
    <!-- language: lang-js -->(nedeniyle iç içe listeye burada +1) 4 boşluklarla girintili.

    1. madde 1
    2. madde 2

      Code.block('JavaScript', maybe)?
    3. madde 3

  2. Ya da, Kod bloğunu geri çukurlara koyun ve 4 boşlukla girinti yapın (burada, iç içe liste nedeniyle 1 ekstra). İçinde bir <code>öğe bulunan düzenli bir girintili metin paragrafı alırsınız . Sözdizimi-vurgulayamayacağınız bu:

    1. madde 1
    2. madde 2

      Code block

    3. madde 3

Not: Temel İşaretleme kodunu görmek için bu yanıtta "düzenle" yi tıklayabilirsiniz. Kaydetmeye gerek yok;)


27
Bu, bu sorun için bir çözümdür, ancak aradaki bazı metinlerden sonra bir Markdown listesinin bir sonraki numarada yeniden başlatılması sorununa genel bir çözüm değildir. Görünüşe göre bunu yapmanın bir yolu yok, bu da beni deli ediyor. Markdown ile ilgili her şey harika.
Mars

@Mars Eğer gördüğünüz gibi DavidT cevabı , genel çözüm alanlarının herhangi bir sayı ile metin girinti etmektir. Örneğin, dört yerine bir boşluk eklemek, kod bloğu oluşturmak zorunda kalmadan araya giren herhangi bir metni eklemenizi sağlar.
ClydeTheGhost

36

Mevcut cevapların bir uzantısı olarak. Kod bloğundan başka bir şeyden sonra numaralı listeye devam etmeye çalışanlar için. Örneğin ikinci bir paragraf. İkinci paragrafı en az 1 boşluk bırakın.

Markdown:

1. one
2. two

 three
3. four

Çıktı:

  1. bir
  2. iki

    üç

  3. dört

1
Tatlı! Bir dizi sözde kod bloğu ve MathJax denklemleri vardı. Tam da ihtiyacım olan buydu.
xtian

GitHub Wiki üzerinde çalışmaz. Daha fazla boşluk eklemek, en azından numaralandırmayı, yukarıdaki sayılarla aynı türde yapar. : rofl:
Chaim Eliyah

1
@ChaimEliyah Thats çünkü im% 99 emin wiki GitHub aromalı markdown kullanmıyor (im daha önce bu merakla karşılaştım eminim)
DavidT

Bu ayrıca, liste girişinin bitiminden önce bazı metin, bazı kodlar ve son olarak daha fazla metin içeren bir liste girişine sahip olduğunuz durumlarla da ilgilenir.
Frotz

14

Kod bloğunu girintilemek için sekmeyi kullanırsanız, tüm bloğu tek bir satıra yönlendirir. Bundan kaçınmak için html sıralı listesini kullanmanız gerekir.

  1. madde 1
  2. madde 2

Kod bloğu

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

13

Macmade'in çözümü artık Github Pages'daki Jekyll örneğimde artık işe yaramıyor ama bu çözümü kramdown github repo için bir sorun üzerinde buldum . OP örneği için şöyle görünecektir:

1. item 1
2. item 2

```
Code block
```

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

Sorunlarımı kolayca çözdüm.


3
Maalesef, GitHub benioku dosyalarıyla çalışmaz. :(
Nostalg.io

7

Kaynak;

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


Sonuç;

1. madde 1
2. madde 2 Code block 3. madde 3


4

Liste öğelerinin arasındaki satırların, yorumunda bahsedilen Mars kullanıcısı gibi girintili olmasını istemiyorsanız, pandoc'ın example_listsözelliğini kullanabilirsiniz . Onların Gönderen docs :

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

Explanation of examples.

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

EVET! Bu harika çalıştı. Aferin.
javadba

Bu, bu soruna en evrensel çözümdür. Girintilemeye gerek yoktur ve liste öğeleri arasında başlıklarınız varsa bile çalışır.
lillemets

(@). Küresel devam listeye karşılık (şimdiye kullanarak sadece bir tane olabilir pandoc'ın startnumistediğiniz numarası ile sıralı bir listesini başlayabilir uzantısı ve çok işe yarıyor.
Abid H. Mujtaba

2

Liste numaralarını bir nokta yerine parantez içine alın.

(1) madde 1
(2) madde 2 code block (3) madde 3


5
Bu, <ol>ve <li>öğeleri yok eder ve bunları yalnızca <p>etiketlere sarar . Ayrıca, kelimenin tam anlamıyla olsun (1).
jmargolisvt

2
Bence niyet buydu.
Gal

1

Girintili alt bloğu bir satırsonu ile ayırarak Github'da bu sorunu çözdüm, örneğin, öğeyi 1 yazıyorsunuz, sonra iki kez enter tuşuna basıyorsunuz (yeni bir paragraf gibi), bloğu girintiliyor ve istediğinizi yazıyorsunuz (bir blok kod, metin vb. Hakkında daha fazla bilgiMarkdown listeleri ve Markdown satır sonları hakkında .

Misal:

  1. birinci madde
  2. ikinci madde

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

  3. üçüncü madde

    some other code

  4. dördüncü madde

0

Ayrıca, Markdown kullanımının belirli bağlamları için bu davranışı düzelten bir dizi uzantı olduğunu unutmayın.

Örneğin, python-markdown'un (örneğin mkdoc'larda kullanılan) sane_lists uzantısı Markdown listelerinde kullanılan numaraları tanıyacaktır. Bu uzantıyı etkinleştirmeniz yeterlidirarkdown.markdown(some_text, extensions=['sane_lists'])


0

Metnin önceki liste öğesine hizalanmasını ancak "büyük" satır sonundan kaçınmak istiyorsanız, liste öğesinin sonunda iki boşluk kullanın ve metni bazı boşluklarla girinti yapın.

Kaynak: (noktalar boşluktur; elbette)

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

Sonuç:

  1. item1
    Bu bir metin
  2. item2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.