Bloque de código en lista numerada (sintaxis Wiki)

86

En la sintaxis wiki de MediaWiki (wikipedia), ¿hay alguna manera de tener una lista numerada con un bloque de código en el medio?

Por ejemplo:

# Numero 1
# Número 2
  Sección con sangría que se convertirá en un bloque de código
# Numero 3
# Número 4

Lo que sucede en MediaWiki es que terminas con algo como esto:

1. Número 1
2. Número 2
   Sección con sangría que se convertirá en un bloque de código
1. Número 3
2. Número 4

(Observe cómo "Número 3" y "Número 4" se restablecen como 1 y 2 ... Parece que StackOverflow es mucho más inteligente que MediaWiki, ¡tuve que poner mi ejemplo en etiquetas PRE para que se arruine!)

Sé que puedes aplicar sangría al texto con la sintaxis "#:" ...

# Numero 1
# Número 2
#: Sección con sangría que simplemente se sangrará
# Numero 3
# Número 4

... pero realmente me gustaría obtener la misma clase CSS visual para mi código incluso si está en una lista numerada.

Se vuelve aún más entretenido con listas anidadas. Esta sintaxis ...

# MainEntry 1
## Numero 1
## Número 2
# MainEntry 2
## Numero 1
## Número 2
  Sección con sangría que se convertirá en un bloque de código
## Numero 3
## Número 4

... se convierte en ...

1. MainEntry 1
   1. Número 1
   2. Número 2
2. MainEntry 2
   1. Número 1
   2. Número 2
      Sección con sangría que se convertirá en un bloque de código
1. 1. Número 3
   2. Número 4

(Tenga en cuenta que "Número 3" ahora es "1. 1.")

inanutshellus
fuente
Hice un ejemplo del problema aquí: en.wikipedia.org/w/…
inanutshellus

Respuestas:

72

Puedes probar la siguiente sintaxis wiki, me funciona en 1.17

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

No es perfecto, porque terminas con una sangría mayor, pero permite usar la sintaxis wiki para bloques previos formateados correctamente en varias líneas.

Como se mencionó anteriormente, la otra forma adecuada sería utilizar el marcado HTML.

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>
Kyle
fuente
1
Esa sintaxis wiki funcionó para mí en MediaWiki 1.15.1. Pone un poco de espacio extra alrededor de las líneas de código, pero funciona.
Nick Chammas
1
Usé la misma sintaxis que sugirió para imágenes dentro de listas numeradas: #:[[File:image.jpg]]entre elementos numerados. Esto ayuda muchísimo.
Michael Plautz
Trabajó para mí en MediaWiki 1.17; ¡Gracias!
No
No estoy seguro de qué versión de MediaWiki usamos, pero funciona. Solo hay una advertencia: si antecede las líneas 'pre' con otro #: línea con sangría, digamos para un título o algo así, la 'pre' no se representa correctamente.
anuragw
No funciona en mediawiki utilizado por GitHub (ver ejemplo aquí ). En su lugar, utilice la versión HTML.
Jonathan Cross
34

Utilice html:

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

funcionará en mediawiki.

Tenga en cuenta que en el ejemplo que publiqué a continuación, es el </li>que lo hace funcionar correctamente.

Adrian Archer
fuente
Edité tu ejemplo para mostrar cómo funcionaría: en.wikipedia.org/w/…
Adrian Archer
Este es un problema conocido con la sintaxis wiki.
Adrian Archer
La respuesta de Kyle debería ser una respuesta aceptada. Si está haciendo listas anidadas, será difícil usar html. Además, la respuesta anterior está enterrada en la antigua página de sandbox de wikipedia. El texto real en la respuesta de Stackoverflow anterior no resuelve el problema del OP.
No
15

Esto funciona bien en 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.

El secreto es reemplazar las nuevas líneas con la entidad y escribir todo en una línea.

Juan
fuente
5
correcto, pero no funciona si no desea escribir todo su código de bloque en una línea
RockScience
13

Su problema es el tema de dos errores completados en el rastreador de errores de MediaWiki a finales de 2004 y 2005:

Error 1115: la nueva línea como terminador de elementos de lista es problemática

Error 1584: se necesita un método para los elementos de la lista de varios párrafos, las listas numeradas continuas y la asignación de números específicos a los elementos de la lista

Al leerlos, encontrará que la solución es no usar la sintaxis de MediaWiki, sino confiar en HTML "puro".

Antoine 'hashar' Musso
fuente
1
También tenemos una página completa de Ayuda: líneas nuevas y espacios y una discusión específica de este tema en inserciones de marcado independientes de la lista .
Nemo
3

Sugiero una respuesta diferente: no lo hagas.

Intenté utilizar todas las soluciones para este problema básico de Mediawiki y descubrí que todas son muy imperfectas. Aprendí a vivir sin números y, en cambio:

  • Use el símbolo (*) en lugar de (#) para todas mis listas
  • Continuar usando el espacio inicial para todos mis bloques de código

Esto es mucho más simple y fácil de mantener que cualquier solución alternativa. Además, el uso de cualquier referencia a un número está sujeto a cambios a medida que se editan los pasos, y esto se convierte en otro problema de mantenimiento.

estado de ánimo
fuente
1

En el ejemplo anterior, la segunda sangría (: :) no es necesaria.

Solo una sangría funciona bien (:) de la siguiente manera:

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

Produce:

  • 1 uno
       algunas cosas (solo un nivel de sangría, no dos)
       algunas cosas más
  • 2. dos

  • Kory Lovre
    fuente
    6
    Encontré la respuesta de @ Kyle con :: <pre> en las líneas entre </pre> ES NECESARIO para mí. Solo 1: como dices, no funcionó para mí ...
    cellepo
    Esta respuesta no me funcionó en Mediawiki 1.17. Yo también encuentro necesaria la respuesta de @Kyle.
    No
    -2

    También puede intentar agregar una etiqueta "blockquote" alrededor de la etiqueta "pre", para que se vea un poco más pulida.

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

    Lo cual sangrará el cuadro gris en línea con sus viñetas / números sin usar dos puntos.

    Marte
    fuente
    1
    Esto no me funciona, incluso si corrijo el orden de las etiquetas de cierre. Rompe la numeración de la lista.
    P.Péter
    Lo mismo ocurre con las listas desordenadas (*). Si están anidados, el anidamiento después de la cita en bloque no continúa correctamente.
    No