Codeblock in nummerierter Liste (Wiki-Syntax)

86

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

Beispielsweise:

# Nummer 1
# Nummer 2
  Einrückter 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
   Einrückter 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 als MediaWiki ist. Ich musste mein Beispiel in PRE-Tags einfügen, um es zu vermasseln!)

Ich weiß , Sie können einrücken Text mit „#:“ Syntax ...

# Nummer 1
# Nummer 2
#: Einrückter Abschnitt, der lediglich 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
## Nummer 1
## Nummer 2
# MainEntry 2
## Nummer 1
## Nummer 2
  Einrü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
      Einrückter Abschnitt, der zu einem Codeblock wird
1. 1. Nummer 3
   2. Nummer 4

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

inanutshellus
quelle
Ich habe hier ein Beispiel für das Problem gemacht: en.wikipedia.org/w/…
inanutshellus

Antworten:

72

Sie können die folgende Wiki-Syntax ausprobieren, die für mich funktioniert 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 der andere geeignete Weg darin, HTML-Markup zu verwenden.

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>
Kyle
quelle
1
Diese Wiki-Syntax funktionierte für mich in MediaWiki 1.15.1. Es gibt ein wenig zusätzlichen Platz um die Codezeilen, aber es funktioniert.
Nick Chammas
1
Ich habe dieselbe Syntax verwendet, die Sie für Bilder in nummerierten Listen vorgeschlagen haben: #:[[File:image.jpg]]zwischen nummerierten Elementen. Das hilft einer Tonne.
Michael Plautz
Arbeitete für mich an MediaWiki 1.17; Vielen Dank!
Nein,
Ich bin nicht sicher, welche Version von MediaWiki wir verwenden, aber das funktioniert. Es gibt nur eine Einschränkung: Wenn Sie den 'pre'-Zeilen eine weitere #: eingerückte Zeile voranstellen, z. B. für einen Titel oder etwas anderes, wird das' pre 'nicht richtig gerendert.
Anuragw
Funktioniert nicht in MediaWiki, das von GitHub verwendet wird (siehe Beispiel hier ). Verwenden Sie stattdessen die HTML-Version.
Jonathan Cross
34

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 ist </li>, was es richtig funktioniert.

Adrian Archer
quelle
Ich habe Ihr Beispiel bearbeitet, um zu zeigen, wie es funktionieren würde: en.wikipedia.org/w/…
Adrian Archer
Dies ist ein bekanntes Problem mit der Wiki-Syntax.
Adrian Archer
Kyles Antwort sollte als Antwort akzeptiert werden. Wenn Sie verschachtelte Listen erstellen, ist es schwierig, HTML zu verwenden. Darüber hinaus ist die obige Antwort in der alten Wikipedia-Sandbox-Seite vergraben. Der eigentliche Text in der obigen Stackoverflow-Antwort löst das OP-Problem nicht.
Nein,
15

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 besteht darin, die Zeilenumbrüche durch die Entität zu ersetzen und alles in eine Zeile zu schreiben.

John
quelle
5
Richtig, aber es funktioniert nicht, wenn Sie nicht Ihren gesamten Blockcode in eine Zeile schreiben möchten
RockScience
13

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

Fehler 1115 - Zeilenumbruch als Listenelement-Terminator ist problematisch

Fehler 1584 - Benötigen Sie eine Methode zum Auflisten von Elementen mit mehreren Absätzen, zum Fortführen nummerierter Listen und zum 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.

Antoine 'hashar' Musso
quelle
1
Wir haben auch eine ganze Seite " Hilfe: Zeilenumbrüche und Leerzeichen " und eine spezielle Diskussion dieses Problems unter Einfügen von markenunabhängigen Markups .
Nemo
3

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 unvollständig sind. Ich habe gelernt, ohne Zahlen zu leben und stattdessen:

  • Verwenden Sie für alle meine Listen den Splat (*) anstelle von (#)
  • Verwenden Sie weiterhin den führenden Platz für alle meine Codeblöcke

Dies ist weitaus einfacher und wartbarer 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.

Moodboom
quelle
1

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)
       noch ein paar Sachen
  • 2. zwei

  • Kory Lovre
    quelle
    6
    Ich fand @ Kyles Antwort mit :: <pre> in Zeilen zwischen </ pre> ist für mich NOTWENDIG. Nur 1: Wie Sie sagen, hat nicht für mich gearbeitet ...
    Cellepo
    Diese Antwort hat bei mir in Mediawiki 1.17 nicht funktioniert. Ich finde auch @Kyle Antwort notwendig.
    Nein,
    -2

    Sie können auch versuchen, ein "blockquote" -Tag hinzuzufügen, das das "pre" -Tag umgibt, damit es etwas ausgefeilter aussieht.

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

    Dadurch wird das graue Feld in Übereinstimmung mit Ihren Aufzählungszeichen / Zahlen eingerückt, ohne Doppelpunkte zu verwenden.

    Mars
    quelle
    1
    Dies funktioniert bei mir nicht, auch wenn ich die Reihenfolge der schließenden Tags korrigiere. Es bricht die Nummerierung der Liste.
    P.Péter
    Gleiches gilt für ungeordnete Listen (*). Wenn sie verschachtelt sind, wird die Verschachtelung nach dem Blockquote nicht korrekt fortgesetzt.
    Nein,