Khối mã trong danh sách được đánh số (cú pháp Wiki)


86

Trong cú pháp wiki của MediaWiki (wiki's), có cách nào để có một danh sách được đánh số với một khối mã ở giữa không?

Ví dụ:

# Số 1
# Số 2
  Phần thụt lề sẽ trở thành một khối mã
# Số 3
# Số 4

Những gì xảy ra trong MediaWiki là bạn kết thúc với một cái gì đó như thế này:

1. Số 1
2. Số 2
   Phần thụt lề sẽ trở thành một khối mã
1. Số 3
2. Số 4

(Lưu ý cách "Số 3" và "Số 4" được đặt lại thành 1 và 2 ... Có vẻ như StackOverflow thông minh hơn nhiều so với MediaWiki, tôi đã phải đặt ví dụ của mình trong thẻ PRE để làm cho nó hoàn thiện hơn!)

Tôi biết bạn có thể thụt lề văn bản bằng cú pháp "#:" ...

# Số 1
# Số 2
#: Phần thụt lề sẽ chỉ được thụt lề
# Số 3
# Số 4

... nhưng tôi thực sự muốn nhận cùng một lớp CSS trực quan cho mã của mình ngay cả khi nó nằm trong danh sách được đánh số.

Nó thậm chí còn thú vị hơn với các danh sách lồng nhau. Cú pháp này ...

# MainEntry 1
## Số 1
## Số 2
# MainEntry 2
## Số 1
## Số 2
  Phần thụt lề sẽ trở thành một khối mã
## Số 3
## Số 4

... trở thành ...

1. MainEntry 1
   1. Số 1
   2. Số 2
2. MainEntry 2
   1. Số 1
   2. Số 2
      Phần thụt lề sẽ trở thành một khối mã
1. 1. Số 3
   2. Số 4

(Lưu ý cách "Số 3" bây giờ là "1. 1.")


Tôi đã làm một ví dụ về vấn đề này ở đây: en.wikipedia.org/w/…
inanutshellus

Câu trả lời:


72

Bạn có thể thử cú pháp wiki sau, nó phù hợp với tôi trên 1.17

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

Nó không hoàn hảo, bởi vì bạn kết thúc với một thụt lề nhiều hơn nhưng nó cho phép người ta sử dụng cú pháp wiki cho các khối trước được định dạng chính xác trên nhiều dòng.

Như đã đề cập trước đây, cách thích hợp khác sẽ là sử dụng HTML mark up.

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>

1
Cú pháp wiki đó phù hợp với tôi trên MediaWiki 1.15.1. Nó đặt thêm một chút không gian xung quanh các dòng mã, nhưng nó hoạt động.
Nick Chammas

1
Tôi đã sử dụng cùng một cú pháp mà bạn đã đề xuất cho các hình ảnh trong danh sách được đánh số: #:[[File:image.jpg]]giữa các mục được đánh số. Điều này giúp ích rất nhiều.
Michael Plautz

Làm việc cho tôi trên MediaWiki 1.17; Cảm ơn!
Nay

Tôi không chắc chúng tôi sử dụng phiên bản MediaWiki nào, nhưng điều này hoạt động. Chỉ có một lưu ý: Nếu bạn đặt trước các dòng 'pre' bằng một dòng #: thụt lề khác, chẳng hạn như tiêu đề hoặc nội dung nào đó, thì 'pre' không hiển thị chính xác.
anuragw

Không hoạt động trong mediawiki được GitHub sử dụng (Xem ví dụ tại đây ). Thay vào đó, hãy sử dụng phiên bản HTML.
Jonathan Cross

34

Sử dụng html:

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

nó sẽ hoạt động trong mediawiki.

Lưu ý từ ví dụ mà tôi đã đăng dưới đây, đó là </li>điều làm cho nó hoạt động bình thường.


Tôi đã chỉnh sửa ví dụ của bạn để cho thấy nó sẽ hoạt động như thế nào: en.wikipedia.org/w/…
Adrian Archer

Đây là một vấn đề đã biết với cú pháp wiki.
Adrian Archer

Câu trả lời của Kyle nên được chấp nhận. Nếu làm các danh sách lồng nhau sẽ khó sử dụng html. Ngoài ra, câu trả lời ở trên được ghi trong trang hộp cát wikipedia cổ. Văn bản thực tế trong câu trả lời Stackoverflow ở trên, không giải quyết được vấn đề của OP.
Nay

15

Điều này hoạt động tốt trong 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.

Bí quyết là thay thế các dòng mới bằng thực thể và viết mọi thứ trong một dòng.


5
chính xác, nhưng nó không hoạt động nếu bạn không muốn viết tất cả các mã khối của bạn trong một dòng
RockScience

13

Vấn đề của bạn là chủ đề của hai lỗi có trong trình theo dõi lỗi MediaWiki vào cuối năm 2004 và 2005:

Lỗi 1115 - Newline as list item terminator rắc rối

Lỗi 1584 - Cần phương pháp cho các mục danh sách nhiều đoạn, danh sách được đánh số liên tục và gán các số cụ thể cho các mục danh sách

Bằng cách đọc chúng, bạn sẽ thấy giải pháp là không sử dụng cú pháp MediaWiki mà dựa vào HTML "thuần túy".


1
Chúng tôi cũng có toàn bộ trang Trợ giúp: Dòng mới và khoảng trắng và một cuộc thảo luận cụ thể về vấn đề này tại phần chèn đánh dấu theo danh sách bất khả tri .
Nemo

3

Tôi đang đề xuất một câu trả lời khác: đừng làm điều đó.

Tôi đã cố gắng sử dụng tất cả các giải pháp thay thế cho vấn đề Mediawiki cơ bản này và nhận thấy rằng chúng đều rất không hoàn hảo. Tôi đã học cách sống không có những con số và thay vào đó:

  • Sử dụng biểu tượng (*) thay vì (#) cho tất cả danh sách của tôi
  • Tiếp tục sử dụng không gian hàng đầu cho tất cả các khối mã của tôi

Điều này rất đơn giản và dễ bảo trì hơn bất kỳ cách giải quyết nào. Bên cạnh đó, việc sử dụng bất kỳ tham chiếu nào đến một số có thể thay đổi khi các bước được chỉnh sửa - và điều này sau đó trở thành một vấn đề bảo trì khác.


1

Trong ví dụ trên, không cần thiết phải thụt lề thứ hai (: :).

Chỉ cần một thụt lề hoạt động tốt (:) như sau:

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

Sản xuất:

  • 1 một
       một số thứ (chỉ một mức thụt lề, không phải hai)
       một số thứ khác
  • 2. hai


  • 6
    Tôi tìm thấy câu trả lời của @ Kyle với :: <pre> ở dòng giữa </pre> LÀ CẦN THIẾT đối với tôi. Chỉ 1: như bạn nói, đã làm nĐể làm việc cho tôi ...
    cellepo

    Câu trả lời này không phù hợp với tôi trong Mediawiki 1.17. Tôi cũng thấy câu trả lời @Kyle là cần thiết.
    Nay

    -2

    Bạn cũng có thể thử thêm thẻ "blockquote" xung quanh thẻ "pre", làm cho nó trông bóng bẩy hơn một chút.

    == 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>
    

    Điều này sẽ thụt lề hộp màu xám phù hợp với dấu đầu dòng / số của bạn mà không sử dụng dấu hai chấm.


    1
    Điều này không hiệu quả với tôi, ngay cả khi tôi sửa thứ tự của các thẻ đóng. Nó phá vỡ việc đánh số của danh sách.
    P.Péter

    Tương tự với danh sách không có thứ tự (*). Nếu chúng được lồng vào nhau, việc lồng sau blockquote không tiếp tục chính xác.
    Nay
    Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
    Licensed under cc by-sa 3.0 with attribution required.