บล็อกรหัสในรายการลำดับเลข (ไวยากรณ์ของวิกิ)


86

ในไวยากรณ์วิกิมีเดียของมีเดียวิกิ (วิกิพีเดีย) มีวิธีการจัดลำดับรายการที่มีโค้ดบล็อกอยู่ตรงกลางหรือไม่?

ตัวอย่างเช่น:

# หมายเลข 1
# หมายเลข 2
  ส่วนที่เยื้องซึ่งจะกลายเป็นบล็อกรหัส
# หมายเลข 3
# หมายเลข 4

เกิดอะไรขึ้นใน MediaWiki คุณจะได้รับสิ่งนี้:

1. หมายเลข 1
2. หมายเลข 2
   ส่วนที่เยื้องซึ่งจะกลายเป็นบล็อกรหัส
1. หมายเลข 3
2. หมายเลข 4

(โปรดสังเกตว่า "หมายเลข 3" และ "หมายเลข 4" ถูกรีเซ็ตเป็น 1 และ 2 ได้อย่างไร ... ดูเหมือนว่า StackOverflow จะฉลาดกว่า MediaWiki มากฉันต้องใส่ตัวอย่างของฉันในแท็ก PRE เพื่อทำให้สับสน!)

ฉันรู้ว่าคุณสามารถเยื้องข้อความโดยใช้ไวยากรณ์ "#:" ...

# หมายเลข 1
# หมายเลข 2
#: ส่วนที่เยื้องซึ่งจะเป็นเพียงการเยื้อง
# หมายเลข 3
# หมายเลข 4

... แต่ฉันอยากได้คลาส CSS ภาพเดียวกันสำหรับโค้ดของฉันแม้ว่าจะอยู่ในรายการที่มีตัวเลข

ได้รับความบันเทิงมากยิ่งขึ้นด้วยรายการที่ซ้อนกัน ไวยากรณ์นี้ ...

# MainEntry 1
## หมายเลข 1
## หมายเลข 2
# MainEntry 2
## หมายเลข 1
## หมายเลข 2
  ส่วนที่เยื้องซึ่งจะกลายเป็นบล็อกรหัส
## หมายเลข 3
## หมายเลข 4

...กลายเป็น...

1. MainEntry 1
   1. หมายเลข 1
   2. หมายเลข 2
2. MainEntry 2
   1. หมายเลข 1
   2. หมายเลข 2
      ส่วนที่เยื้องซึ่งจะกลายเป็นบล็อกรหัส
1. 1. หมายเลข 3
   2. หมายเลข 4

(สังเกตว่าตอนนี้ "หมายเลข 3" เป็น "1. 1. ")


ฉันยกตัวอย่างปัญหาที่นี่: en.wikipedia.org/w/…
inanutshellus

คำตอบ:


72

คุณสามารถลองใช้ไวยากรณ์วิกิต่อไปนี้ได้สำหรับฉัน 1.17

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

มันไม่สมบูรณ์แบบเพราะคุณลงเอยด้วยการเยื้องมากกว่า แต่อนุญาตให้ใช้ไวยากรณ์ของวิกิสำหรับบล็อกล่วงหน้าที่มีรูปแบบถูกต้องในหลายบรรทัด

ตามที่กล่าวไว้ก่อนหน้านี้วิธีอื่นที่เหมาะสมคือการใช้มาร์กอัป HTML

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

1
ไวยากรณ์ของวิกินั้นใช้ได้กับฉันใน MediaWiki 1.15.1 ทำให้มีช่องว่างรอบ ๆ บรรทัดโค้ดเพิ่มขึ้นเล็กน้อย แต่ก็ใช้ได้ผล
Nick Chammas

1
ฉันใช้ไวยากรณ์เดียวกับที่คุณแนะนำสำหรับรูปภาพภายในรายการลำดับเลข: #:[[File:image.jpg]]ระหว่างรายการที่มีหมายเลข ซึ่งจะช่วยให้ตัน
Michael Plautz

ทำงานให้ฉันบน MediaWiki 1.17; ขอบคุณ!
Nay

ฉันไม่แน่ใจว่าเราใช้ MediaWiki เวอร์ชันใด แต่ใช้ได้ดี มีข้อแม้เพียงข้อเดียว: หากคุณนำหน้าบรรทัด "ก่อน" ด้วยอีก #: เยื้องบรรทัดพูดชื่อหรืออะไรบางอย่างคำว่า "ก่อน" จะแสดงผลไม่ถูกต้อง
anuragw

ไม่ทำงานใน mediawiki ที่ GitHub ใช้ (ดูตัวอย่างที่นี่ ) ให้ใช้เวอร์ชัน HTML แทน
Jonathan Cross

34

ใช้ html:

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

มันจะทำงานในมีเดียวิกิ

สังเกตจากตัวอย่างที่โพสต์ไว้ด้านล่างนี่คือสิ่ง</li>ที่ทำให้ทำงานได้อย่างถูกต้อง


ฉันแก้ไขตัวอย่างของคุณเพื่อแสดงว่ามันทำงานอย่างไร: en.wikipedia.org/w/…
Adrian Archer

นี่เป็นปัญหาที่ทราบเกี่ยวกับไวยากรณ์วิกิ
Adrian Archer

คำตอบของ Kyle ควรเป็นคำตอบที่ยอมรับได้ ถ้าทำรายการซ้อนกันจะใช้ html ยาก นอกจากนี้คำตอบข้างต้นยังฝังอยู่ในหน้าแซนด์บ็อกซ์ของวิกิพีเดียโบราณ ข้อความจริงในคำตอบ Stackoverflow ด้านบนไม่สามารถแก้ปัญหาของ OP ได้
เปล่า

16

ใช้งานได้ดีใน 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.

เคล็ดลับคือการแทนที่บรรทัดใหม่ด้วยเอนทิตีและเขียนทุกอย่างในบรรทัดเดียว


5
ถูกต้อง แต่ใช้ไม่ได้ถ้าคุณไม่ต้องการเขียนโค้ดบล็อกทั้งหมดในบรรทัดเดียว
RockScience

13

ปัญหาของคุณเป็นเรื่องของข้อบกพร่องสองข้อในตัวติดตามข้อบกพร่องของ MediaWiki ในช่วงปลายปี 2547 และ 2548:

ข้อผิดพลาด 1115 - ขึ้นบรรทัดใหม่เนื่องจากตัวยุติรายการเป็นปัญหา

จุดบกพร่อง 1584 - ต้องการวิธีการสำหรับรายการแบบหลายย่อหน้ารายการลำดับเลขต่อเนื่องและกำหนดหมายเลขเฉพาะให้กับรายการ

เมื่ออ่านแล้วคุณจะพบวิธีแก้ปัญหาคือไม่ใช้ไวยากรณ์ของมีเดียวิกิ แต่ต้องใช้ HTML "บริสุทธิ์"


1
เรายังมีทั้งความช่วยเหลือ: การขึ้นบรรทัดใหม่และช่องว่างของหน้าและการอภิปรายที่เฉพาะเจาะจงของปัญหานี้ที่แทรกมาร์กอัปรายการไม่เชื่อเรื่องพระเจ้า
Nemo

3

ฉันกำลังแนะนำคำตอบอื่น: อย่าทำ

ฉันได้พยายามใช้วิธีแก้ปัญหาทั้งหมดสำหรับปัญหามีเดียวิกิพื้นฐานนี้และพบว่าปัญหาเหล่านี้ทั้งหมดไม่สมบูรณ์ ฉันได้เรียนรู้ที่จะอยู่โดยไม่มีตัวเลขและแทนที่จะ:

  • ใช้เครื่องหมาย (*) แทน (#) สำหรับรายการทั้งหมดของฉัน
  • ใช้ช่องว่างนำหน้าสำหรับบล็อกโค้ดทั้งหมดของฉันต่อไป

วิธีนี้ง่ายกว่าและดูแลรักษาได้ง่ายกว่าวิธีแก้ปัญหาใด ๆ นอกจากนี้การใช้การอ้างอิงถึงหมายเลขใด ๆ อาจมีการเปลี่ยนแปลงเมื่อมีการแก้ไขขั้นตอนและสิ่งนี้จะกลายเป็นปัญหาการบำรุงรักษาอื่น


1

ในตัวอย่างข้างต้นไม่จำเป็นต้องมีการเยื้องที่สอง (: :)

การเยื้องเพียงครั้งเดียวใช้งานได้ดี (:) ดังนี้:

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

ผลิต:

  • 1. หนึ่ง
       บางสิ่ง (เพียงระดับการเยื้องเดียวไม่ใช่สองระดับ)
       บางอย่างเพิ่มเติม
  • 2. สอง


  • 6
    ฉันพบคำตอบของ @ Kyle กับ :: <pre> ในบรรทัดระหว่าง </pre> เป็นสิ่งจำเป็นสำหรับฉัน แค่ 1: อย่างที่คุณพูดทำงานให้ฉันไม่ได้ ...
    cellepo

    คำตอบนี้ใช้ไม่ได้กับฉันใน Mediawiki 1.17 ฉันพบว่าคำตอบของ @Kyle จำเป็นเช่นกัน
    เปล่า

    -3

    คุณยังสามารถลองเพิ่มแท็ก "blockquote" รอบ ๆ แท็ก "pre" เพื่อให้ดูดีขึ้นเล็กน้อย

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

    ซึ่งจะเยื้องกล่องสีเทาให้สอดคล้องกับสัญลักษณ์แสดงหัวข้อย่อย / ตัวเลขโดยไม่ต้องใช้เครื่องหมายทวิภาค


    1
    สิ่งนี้ไม่ได้ผลสำหรับฉันแม้ว่าฉันจะแก้ไขลำดับของแท็กปิดก็ตาม มันทำลายลำดับเลขของรายการ
    พีเทอร์

    เช่นเดียวกับรายการที่ไม่ได้เรียงลำดับ (*) หากมีการซ้อนกันการซ้อนหลัง blockquote จะดำเนินต่อไปไม่ถูกต้อง
    เปล่า
    โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
    Licensed under cc by-sa 3.0 with attribution required.