it-swarm.com.de

Codeblock in nummerierter Liste (Wiki-Syntax)

Gibt es in der Wiki-Syntax von MediaWiki (Wikipedia) eine Möglichkeit, eine nummerierte Liste mit einem Codeblock in der Mitte zu haben?

Beispielsweise:

 # Nummer 1 
 # Nummer 2 
 Eingezogener Abschnitt, der zu einem Codeblock wird 
 # Nummer 3 
 # Nummer 4 

Was in MediaWiki passiert, ist, dass Sie am Ende so etwas haben:

 1. Nummer 1 
 2. Nummer 2 
 Eingezogener Abschnitt, der zu einem Codeblock wird 
 1. Nummer 3 
 2. Nummer 4

(Beachten Sie, wie "Nummer 3" und "Nummer 4" als 1 und 2 zurückgesetzt werden ... Es sieht so aus, als ob StackOverflow viel schlauer ist als MediaWiki. Ich musste mein Beispiel in PRE-Tags einfügen, um es zu vermasseln!)

Ich weiß, Sie können Einrückung Text mit "#:" Syntax ...

 # Nummer 1 
 # Nummer 2 
 #: Eingerückter Abschnitt, der nur eingerückt wird 
 # Nummer 3 
 # Nummer 4 

... aber ich möchte wirklich die gleiche visuelle CSS-Klasse für meinen Code erhalten, auch wenn er in einer nummerierten Liste enthalten ist.

Mit verschachtelten Listen wird es noch unterhaltsamer. Diese Syntax ...

 # MainEntry 1 
 ## Number 1 
 ## Number 2 
 # MainEntry 2 
 ## Number 1 
 ## Nummer 2 
 Eingerückter Abschnitt, der zu einem Codeblock wird 
 ## Nummer 3 
 ## Nummer 4 

...wird...

 1. Haupteintrag 1 
 1. Nummer 1 
 2. Nummer 2 
 2. Haupteintrag 2 
 1. Nummer 1 
 2. Nummer 2 
 Eingezogener Abschnitt, der zu einem Codeblock 
 1 wird. 1. Nummer 3 
 2. Nummer 4 

(Beachten Sie, wie "Nummer 3" jetzt "1. 1." ist.)

83
inanutshellus

Du könntest die folgende Wiki-Syntax ausprobieren, sie funktioniert bei mir auf 1.17

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

Es ist nicht perfekt, weil Sie am Ende einen größeren Einzug haben, aber es erlaubt einem, die Wiki-Syntax für korrekt formatierte Vorblöcke über mehrere Zeilen zu verwenden.

Wie bereits erwähnt, besteht die andere richtige Möglichkeit darin, HTML-Markup zu verwenden.

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

Verwenden Sie HTML:

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

es wird in mediawiki funktionieren.

Beachten Sie aus dem Beispiel, das ich unten gepostet habe, dass es das </li> das macht es richtig.

34
Adrian Archer

Dies funktioniert gut in 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.

Das Geheimnis ist, die Zeilenumbrüche durch die zu ersetzen.

14
John

Ihr Problem ist Gegenstand von zwei Fehlern, die Ende 2004 und 2005 im MediaWiki-Bug-Tracker aufgetreten sind:

Bug 1115 - Newline als Listenelementabschluss ist problematisch

Bug 1584 - Benötige Methode für Listenelemente mit mehreren Absätzen, fortlaufende nummerierte Listen und Zuweisen bestimmter Nummern zu Listenelementen

Wenn Sie sie lesen, werden Sie feststellen, dass die Lösung darin besteht, nicht die MediaWiki-Syntax zu verwenden, sondern sich auf "reines" HTML zu verlassen.

Ich schlage eine andere Antwort vor: Tu es nicht.

Ich habe versucht, alle Problemumgehungen für dieses grundlegende Mediawiki-Problem zu verwenden, und festgestellt, dass sie alle sehr unvollkommen sind. Ich habe gelernt, ohne Zahlen zu leben, und stattdessen:

  • Verwenden Sie für alle meine Listen das Anführungszeichen (*) anstelle von (#)
  • Verwenden Sie weiterhin das führende Leerzeichen für alle meine Codeblöcke

Dies ist weitaus einfacher und wartungsfreundlicher als jede Problemumgehung. Außerdem kann sich die Verwendung eines Verweises auf eine Nummer ändern, wenn die Schritte bearbeitet werden - und dies wird dann zu einem weiteren Wartungsproblem.

2
moodboom

Im obigen Beispiel ist der zweite Einzug (: :) nicht erforderlich.

Nur eine Einrückung funktioniert einwandfrei (:) wie folgt:

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

Produziert:

  • 1 Eins
     einige Sachen (nur eine Einrückungsstufe, nicht zwei) 
     weitere Sachen
    • 2. zwei
  • 1
    Kory Lovre