Blok kode dalam daftar bernomor (sintaks Wiki)

86

Dalam sintaks wiki MediaWiki (wikipedia's), adakah cara untuk memiliki daftar bernomor dengan blok kode di tengahnya?

Sebagai contoh:

# Nomor 1
# Nomor 2
  Bagian berlekuk yang akan menjadi blok kode
# Nomor 3
# Nomor 4

Apa yang terjadi di MediaWiki adalah Anda berakhir dengan sesuatu seperti ini:

1. Nomor 1
2. Nomor 2
   Bagian berlekuk yang akan menjadi blok kode
1. Nomor 3
2. Nomor 4

(Perhatikan bagaimana "Nomor 3" dan "Nomor 4" disetel ulang sebagai 1 dan 2 ... Sepertinya StackOverflow jauh lebih pintar daripada MediaWiki, saya harus meletakkan contoh saya di tag PRE untuk membuatnya kacau!)

Saya tahu Anda dapat membuat indentasi teks menggunakan sintaks "#:" ...

# Nomor 1
# Nomor 2
#: Bagian berindentasi yang hanya akan diberi indentasi
# Nomor 3
# Nomor 4

... tetapi saya benar-benar ingin mendapatkan kelas CSS visual yang sama untuk kode saya meskipun dalam daftar bernomor.

Itu menjadi lebih menghibur dengan daftar bersarang. Sintaks ini ...

# MainEntry 1
## Nomor 1
## Nomor 2
# MainEntry 2
## Nomor 1
## Nomor 2
  Bagian berlekuk yang akan menjadi blok kode
## Nomor 3
## Nomor 4

...menjadi...

1. MainEntry 1
   1. Nomor 1
   2. Nomor 2
2. MainEntry 2
   1. Nomor 1
   2. Nomor 2
      Bagian berlekuk yang akan menjadi blok kode
1. 1. Nomor 3
   2. Nomor 4

(Perhatikan bagaimana "Nomor 3" sekarang menjadi "1.")

inanutshellus
sumber
Saya membuat contoh masalah di sini: en.wikipedia.org/w/…
inanutshellus

Jawaban:

72

Anda dapat mencoba sintaks wiki berikut, ini berfungsi untuk saya 1.17

# one
#:<pre>
#::some stuff
#::some more stuff</pre>
# two

Ini tidak sempurna, karena Anda berakhir dengan lebih banyak indentasi tetapi memungkinkan seseorang untuk menggunakan sintaks wiki untuk blok awal yang diformat dengan benar di beberapa baris.

Seperti disebutkan sebelumnya, cara lain yang tepat adalah dengan menggunakan markup HTML.

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>
Kyle
sumber
1
Sintaks wiki itu bekerja untuk saya di MediaWiki 1.15.1. Ini menempatkan sedikit ruang ekstra di sekitar baris kode, tetapi berfungsi.
Nick Chammas
1
Saya menggunakan sintaks yang sama seperti yang Anda sarankan untuk gambar dalam daftar bernomor: #:[[File:image.jpg]]antara item bernomor. Ini sangat membantu.
Michael Plautz
Bekerja untuk saya di MediaWiki 1.17; Terima kasih!
Nay
Saya tidak yakin versi MediaWiki mana yang kami gunakan, tetapi ini berfungsi. Hanya ada satu peringatan: Jika Anda mendahului baris 'pre' dengan baris #: indentasi lainnya, katakan untuk judul atau sesuatu, 'pre' tidak ditampilkan dengan benar.
anuragw
Tidak berfungsi di mediawiki yang digunakan oleh GitHub (Lihat contoh di sini ). Sebagai gantinya, gunakan versi HTML.
Jonathan Cross
34

Gunakan html:

<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

ini akan bekerja di mediawiki.

Catatan dari contoh yang saya posting di bawah ini, itu adalah </li>yang membuatnya berfungsi dengan baik.

Adrian Archer
sumber
Saya mengedit contoh Anda untuk menunjukkan cara kerjanya: en.wikipedia.org/w/…
Adrian Archer
Ini adalah masalah yang diketahui dengan sintaks wiki.
Adrian Archer
Jawaban Kyle harus diterima sebagai jawaban. Jika melakukan daftar bersarang, akan sulit menggunakan html. Selain itu, jawaban di atas terkubur di halaman kotak pasir wikipedia kuno. Teks sebenarnya dalam jawaban Stackoverflow di atas, tidak menyelesaikan masalah OP.
Nay
16

Ini berfungsi dengan baik di MediaWiki 1.17.0:

===Alternative way of using pre in numbered lists.===    
# Numbered line 1.
# Numbered line 2.<pre>code line 1&#10;code line 2</pre>
# Numbered line 3.

Rahasianya adalah mengganti baris baru dengan entitas dan menulis semuanya dalam satu baris.

John
sumber
5
benar, tetapi tidak berhasil jika Anda tidak ingin menulis semua kode blokir Anda dalam satu baris
RockScience
13

Masalah Anda adalah subjek dari dua bug yang diisi dalam pelacak bug MediaWiki pada akhir 2004 dan 2005:

Bug 1115 - Baris baru sebagai terminator item daftar merepotkan

Bug 1584 - Memerlukan metode untuk item daftar multiparagraf, melanjutkan daftar bernomor, dan menetapkan nomor tertentu ke item daftar

Dengan membacanya, Anda akan menemukan solusinya adalah dengan tidak menggunakan sintaks MediaWiki tetapi mengandalkan HTML "murni".

Antoine 'hashar' Musso
sumber
1
Kami juga memiliki seluruh Bantuan: Halaman baris dan spasi baru dan diskusi khusus tentang masalah ini di penyisipan markup Daftar-agnostik .
Nemo
3

Saya menyarankan jawaban yang berbeda: jangan lakukan itu.

Saya telah mencoba menggunakan semua solusi untuk masalah Mediawiki dasar ini dan menemukan bahwa semuanya sangat tidak sempurna. Saya telah belajar hidup tanpa angka, dan sebaliknya:

  • Gunakan percikan (*), bukan (#) untuk semua daftar saya
  • Terus gunakan spasi di depan untuk semua blok kode saya

Ini jauh lebih sederhana dan dapat dipelihara daripada solusi apapun. Selain itu, penggunaan referensi apa pun ke nomor dapat berubah saat langkah-langkahnya diedit - dan ini kemudian menjadi masalah pemeliharaan lainnya.

moodboom
sumber
1

Pada contoh di atas, lekukan kedua (: :) tidak diperlukan.

Hanya satu lekukan yang berfungsi dengan baik (:) sebagai berikut:

# one
#:<pre>
#:some stuff
#:some more stuff</pre>
# two

Menghasilkan:

  • 1 satu
       beberapa hal (hanya satu tingkat indentasi, bukan dua)
       beberapa barang lagi
  • 2. dua

  • Kory Lovre
    sumber
    6
    Saya menemukan jawaban @ Kyle dengan :: <pre> pada baris antara </pre> PERLU bagi saya. Hanya 1: seperti yang Anda katakan, tidak berhasil untuk saya ...
    cellepo
    Jawaban ini tidak berhasil untuk saya di Mediawiki 1.17. Saya juga menemukan jawaban @Kaub perlu.
    Nay
    -3

    Anda juga dapat mencoba menambahkan tag "blockquote" yang mengelilingi tag "pra", membuatnya terlihat sedikit lebih halus.

    == HAProxy Configuration ==
    #'''File:''' /etc/haproxy/haproxy.cfg
    <blockquote>
    <pre>
    global
      log 127.0.0.1 local1 notice
      maxconn 4096
      #daemon
      debug
      crt-base /usr/local/haproxy/ssl
    </pre>
    </blockquote>
    

    Yang akan membuat indentasi kotak abu-abu sejalan dengan poin / nomor Anda tanpa menggunakan titik dua.

    Mars
    sumber
    1
    Ini tidak berhasil untuk saya, meskipun saya memperbaiki urutan tag penutup. Itu merusak penomoran daftar.
    P.Péter
    Sama dengan daftar tidak berurutan (*). Jika mereka bertumpuk, penumpukan setelah blockquote tidak dilanjutkan dengan benar.
    Nay