Penurunan harga: melanjutkan daftar bernomor

475

Dalam kode penurunan harga berikut saya ingin item 3memulai dengan daftar nomor 3. Tetapi karena blok kode di antara penurunan harga mulai item daftar ini sebagai daftar baru. Apakah ada cara untuk mencegah perilaku itu?

Output yang diinginkan:

1. item 1
2. item 2

```
Code block
```

3. item 3

Output yang dihasilkan:

  1. barang 1
  2. item 2

Code block

  1. item 3
orschiro
sumber
4
Inilah solusi yang tepat . Triple backticks dalam jawaban Macmade sebenarnya hanya menghasilkan <code>elemen HTML dengan baris baru di dalamnya, yang tidak disorot sintaksis, dan memiliki garis kosong ekstra di atas yang secara nyata disorot sebagai kode.
Dan Dascalescu
1
Jika Anda benar-benar putus asa, Anda bisa mencari kode karakter HTML untuk angka yang ingin Anda gunakan (dan untuk setiap item berikutnya) ... seperti pada &#50;&#57;. this is list item number 29. Ini mungkin tidak bekerja di semua parser penurunan harga.
Roy Tinker

Jawaban:

622

Gunakan empat spasi untuk membuat konten di antara titik-titik

1. item 1
2. item 2

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

Menghasilkan:

  1. barang 1
  2. item 2

    Code block

  3. item 3
Dibuat
sumber
5
Ya, lekukan membuat jelas ke parser bahwa blok kode milik item daftar 2. Jika tidak, itu hanya paragraf normal, dan akan mengakhiri daftar.
Macmade
42
Tapi ... bagaimana jika Anda tidak ingin lekukan di sana? Penurunan harga tidak memiliki solusi, sejauh yang saya tahu. Sering kali hal yang wajar untuk memulai daftar, kemudian berhenti dan berikan beberapa teks yang merupakan komentar meta tentang daftar - apa yang baru saja kita lakukan, dan apa yang akan terjadi selanjutnya - tanpa teks, secara logis, bagian dari daftar - dan kemudian lanjutkan daftarnya. Penurunan harga tidak ingin kita melakukan itu. Ini adalah bentuk pemikiran bahwa Markdown tidak ingin orang mengekspresikan - bahwa Markdown tidak tahu bagaimana mengekspresikan, yang menurut Markdown terlalu ... gratis. Alat harus mengikuti pemikiran. Mendesah. Saya bisa menulis dalam HTML, atau membuat PDF.
Mars
2
Sepertinya tidak bekerja sama sekali untuk saya. Saya memiliki daftar bernomor sederhana, dan indentasi dan baris baru seperti yang ditunjukkan di atas. Masih memulai kembali pada 1.
Ray
10
Di beberapa editor penurunan harga yang saya coba (Bitbucket, Tumblr), ini tidak berfungsi - ini membuat kode inline alih-alih blok kode yang diindentasi dengan benar.
thdoan
2
Dalam IntelliJ ada bedanya berapa banyak garis kosong di bagian bawah setiap blok bernomor. Jika Anda meninggalkan 2 baris kosong, itu akan memulai kembali penomoran; hanya menyisakan satu dan itu berlanjut.
Rhubarb
36

Perhatikan bagaimana dalam solusi Macmade, Anda dapat melihat baris kode tambahan di atas "Blok kode".

Berikut adalah dua solusi yang lebih baik:

  1. Indentasi blok kode dengan 4 spasi tambahan (jadi biasanya 8, dalam contoh daftar bersarang ini, 12). Ini akan menempatkan kode dalam <pre>elemen. Pada SO, Anda bahkan dapat menentukan sorotan sintaks dengan
    <!-- language: lang-js -->lekukan sebesar 4 spasi (+1 ada di sini karena daftar bersarang).

    1. barang 1
    2. item 2

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

  2. Atau, cukup letakkan blok Kode di dalam backticks dan indentasi dengan 4 spasi (di sini, 1 tambahan karena daftar bersarang). Anda akan mendapatkan paragraf teks berlekuk biasa, dengan <code>elemen di dalamnya. Yang ini tidak bisa Anda soroti:

    1. barang 1
    2. item 2

      Code block

    3. item 3

Catatan: Anda dapat mengklik "edit" pada jawaban ini untuk melihat kode Markdown yang mendasarinya. Tidak perlu menyimpan;)

Dan Dascalescu
sumber
27
Ini adalah solusi untuk masalah khusus ini, tetapi ini bukan solusi umum untuk masalah memulai kembali daftar penurunan harga di nomor berikutnya setelah beberapa teks intervensi. Tampaknya tidak ada cara untuk melakukan ini, yang membuatku gila. Segala sesuatu yang lain tentang penurunan harga bagus.
Mars
@ Mars seperti yang Anda lihat dari jawaban DavidT , solusi umumnya adalah membuat inden teks dengan sejumlah spasi. Misalnya, menambahkan satu spasi alih-alih empat ruang akan memungkinkan Anda untuk memasukkan teks apa pun tanpa harus membuat blok kode.
ClydeTheGhost
36

Sebagai perpanjangan dari jawaban yang ada. Bagi mereka yang mencoba melanjutkan daftar bernomor setelah sesuatu selain dari blok kode. Misalnya paragraf kedua. Cukup indentasi paragraf kedua setidaknya 1 spasi.

Penurunan harga:

1. one
2. two

 three
3. four

Keluaran:

  1. satu
  2. dua

    tiga

  3. empat
DavidT
sumber
1
Manis! Saya memiliki serangkaian blok kode pseudo dan persamaan MathJax. Inilah yang saya butuhkan.
xtian
Tidak bekerja di GitHub Wiki. Menambahkan lebih banyak spasi setidaknya akan membuat penomoran jenis yang sama dengan angka di atas. : rofl:
Chaim Eliyah
1
@ChaimEliyah Thats karena saya 99% yakin wiki tidak menggunakan penurunan rasa GitHub (saya yakin saya pernah menemukan keingintahuan ini sebelumnya)
DavidT
Ini juga akan menangani situasi di mana Anda memiliki entri daftar yang berisi beberapa teks, beberapa kode, dan akhirnya lebih banyak teks sebelum akhir entri daftar.
Frotz
14

Jika Anda menggunakan tab untuk indentasi blok kode itu akan membentuk seluruh blok menjadi satu baris. Untuk menghindari ini, Anda perlu menggunakan daftar yang dipesan html.

  1. barang 1
  2. item 2

Blok kode

<ol start="3">
  <li>item 3</li>
  <li>item 4</li>
</ol>
pengguna3505838
sumber
13

Solusi Macmade tidak bekerja untuk saya lagi pada contoh Jekyll saya di Github Pages lagi tetapi saya menemukan solusi ini pada masalah untuk repram kramdown github. Sebagai contoh OP akan terlihat seperti ini:

1. item 1
2. item 2

```
Code block
```

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

Memecahkan masalah saya dengan mudah.

KhalilRavanna
sumber
3
Sayangnya, ini tidak berfungsi dengan file readme GitHub. :(
Nostalg.io
7

Sumber;

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


Hasil;

1. item 1
2. item 2 Code block 3. item 3

brillout
sumber
4

Jika Anda tidak ingin garis di antara daftar barang yang akan menjorok, seperti pengguna Mars disebutkan dalam komentarnya, Anda dapat menggunakan pandoc's example_listsfitur. Dari dokumen mereka :

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

Explanation of examples.

(@)  My third example will be numbered (3).
iuvbio
sumber
IYA! Ini bekerja dengan baik. Sudah selesai dilakukan dengan baik.
javadba
Ini adalah solusi paling universal untuk masalah ini. Tidak perlu indentasi dan bahkan berfungsi jika Anda memiliki judul di antara elemen daftar.
lillemets
The (@)berkorespondensi ke daftar melanjutkan global (sehingga hanya ada satu Menggunakan. pandoc'S startnumekstensi Anda dapat mulai daftar dipesan dengan jumlah yang Anda inginkan dan hanya bekerja.
Abid H. Mujtaba
2

Masukkan nomor daftar di dalam tanda kurung, bukan diikuti dengan tanda titik.

(1) item 1
(2) item 2 code block (3) item 3

lomzher
sumber
5
Ini menghancurkan <ol>dan <li>elems dan bukannya hanya membungkusnya dalam <p>tag. Selain itu, Anda benar-benar mendapatkannya (1).
jmargolisvt
2
Saya pikir itulah tujuannya.
Gal
1

Saya memecahkan masalah ini pada Github memisahkan sub-blok indentasi dengan baris baru, misalnya, Anda menulis item 1, lalu tekan enter dua kali (seperti jika itu paragraf baru), indentasi blok dan tulis apa yang Anda inginkan (blok kode, teks, dll). Informasi lebih lanjut tentang daftar penurunan harga dan istirahat baris penurunan harga .

Contoh:

  1. item satu
  2. item dua

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

  3. item tiga

    some other code

  4. item empat
Nestor Marin
sumber
0

Perhatikan bahwa ada juga sejumlah ekstensi yang tersedia yang akan memperbaiki perilaku ini untuk konteks spesifik penggunaan penurunan harga.

Misalnya, ekstensi sane_lists dari python-markdown (digunakan dalam mkdocs, misalnya), akan mengenali angka yang digunakan dalam daftar penurunan harga. Anda hanya perlu mengaktifkan ekstensi iniarkdown.markdown(some_text, extensions=['sane_lists'])

Alex
sumber
0

Jika Anda ingin memiliki teks yang disejajarkan dengan item daftar sebelumnya tetapi menghindari memiliki jeda baris "besar", gunakan dua spasi di akhir item daftar dan indentasi teks dengan beberapa spasi.

Sumber: (titik adalah spasi ;-) tentu saja)

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

Hasil:

  1. item1
    Ini adalah beberapa teks
  2. item2
Jarda
sumber