web-dev-qa-db-fra.com

Bloc de code dans la liste numérotée (syntaxe Wiki)

Dans la syntaxe wiki de MediaWiki (wikipedia), existe-t-il un moyen d'avoir une liste numérotée avec un bloc de code au milieu?

Par exemple:

 # Numéro 1 
 # Numéro 2 
 Section en retrait qui deviendra un bloc de code 
 # Numéro 3 
 # Numéro 4 

Ce qui se passe dans MediaWiki, c'est que vous vous retrouvez avec quelque chose comme ceci:

1. Numéro 1 
 2. Numéro 2 
 Section en retrait qui deviendra un bloc de code 
 1. Numéro 3 
 2. Numéro 4

(Notez comment "Number 3" et "Number 4" sont réinitialisés en 1 et 2 ... Il semble que StackOverflow soit beaucoup plus intelligent que MediaWiki, j'ai dû mettre mon exemple dans des balises PRE pour le faire bousiller!)

Je sais que vous pouvez retrait texte en utilisant la syntaxe "#:" ...

 # Numéro 1 
 # Numéro 2 
 #: Section en retrait qui sera simplement en retrait 
 # Numéro 3 
 # Numéro 4 

... mais j'aimerais vraiment avoir la même classe CSS visuelle pour mon code même s'il est dans une liste numérotée.

Il devient encore plus amusant avec des listes imbriquées. Cette syntaxe ...

 # MainEntry 1 
 ## Numéro 1 
 ## Numéro 2 
 # MainEntry 2 
 ## Numéro 1 
 ## Numéro 2 
 Section en retrait qui deviendra un bloc de code 
 ## Numéro 3 
 ## Numéro 4 

...devient...

1. MainEntry 1 
 1. Numéro 1 
 2. Numéro 2 
 2. MainEntry 2 
 1. Numéro 1 
 2. Numéro 2 
 Section en retrait qui deviendra un bloc de code 
 1. 1. Numéro 3 
 2. Numéro 4 

(Notez comment "Numéro 3" est maintenant "1. 1.")

83
inanutshellus

Vous pouvez essayer la syntaxe wiki suivante, cela fonctionne pour moi sur 1.17

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

Ce n'est pas parfait, car vous vous retrouvez avec un retrait plus important mais cela permet d'utiliser la syntaxe wiki pour des pré-blocs correctement formatés sur plusieurs lignes.

Comme mentionné précédemment, l'autre bon moyen serait d'utiliser le balisage HTML.

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

Utilisez html:

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

cela fonctionnera dans mediawiki.

Notez dans l'exemple que j'ai posté ci-dessous, c'est le </li> qui le fait fonctionner correctement.

34
Adrian Archer

Cela fonctionne très bien dans 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.

Le secret est de remplacer les nouvelles lignes par les.

14
John

Votre problème fait l'objet de deux bugs corrigés dans le tracker de bogues MediaWiki fin 2004 et 2005:

Bogue 1115 - La nouvelle ligne comme terminateur d'élément de liste est gênante

Bogue 1584 - Besoin d'une méthode pour les éléments de liste multiparagraphe, la poursuite des listes numérotées et l'attribution de numéros spécifiques aux éléments de liste

En les lisant, vous découvrirez que la solution est de ne pas utiliser la syntaxe MediaWiki mais de s'appuyer sur du HTML "pur".

13

Je suggère une réponse différente: ne le faites pas.

J'ai essayé d'utiliser toutes les solutions de contournement pour ce problème de base de Mediawiki et j'ai constaté qu'elles étaient toutes très imparfaites. J'ai appris à vivre sans chiffres, et à la place:

  • Utilisez le splat (*) au lieu de (#) pour toutes mes listes
  • Continuer à utiliser l'espace de tête pour tous mes blocs de code

C'est beaucoup plus simple et maintenable que toute solution de contournement. En outre, l'utilisation de toute référence à un numéro est susceptible de changer à mesure que les étapes sont modifiées - et cela devient alors un autre problème de maintenance.

2
moodboom

Dans l'exemple ci-dessus, le deuxième retrait (: :) n'est pas nécessaire.

Une seule indentation fonctionne correctement (:) comme suit:

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

Produit:

  • 1 un
     quelques trucs (juste un niveau de retrait, pas deux) 
     quelques trucs de plus
    • 2. deux
  • 1
    Kory Lovre