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

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

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;)


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

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>

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.


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


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).

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


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

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'])


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.