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


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:

# Number 1
# Number 2
  Indented section that will become a code block
# Number 3
# Number 4

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

1. Number 1
2. Number 2
   Indented section that will become a code block
1. Number 3
2. Number 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 PRE etiquetas para hacer que la cagara!)

Sé que puedes indentar texto usando "#:" sintaxis...

# Number 1
# Number 2
#: Indented section that will merely be indented
# Number 3
# Number 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
## Number 1
## Number 2
# MainEntry 2
## Number 1
## Number 2
  Indented section that will become a code block
## Number 3
## Number 4

...convertir...

1. MainEntry 1
   1. Number 1
   2. Number 2
2. MainEntry 2
   1. Number 1
   2. Number 2
      Indented section that will become a code block
1. 1. Number 3
   2. Number 4

(Observe cómo "Número 3" es ahora " 1. 1.")

Author: inanutshellus, 2011-02-14

7 answers

Puedes probar la siguiente sintaxis wiki, funciona para mí en 1.17

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

No es perfecto, porque terminas con una sangría más, pero te permite usar la sintaxis wiki para bloques pre correctamente formateados en varias líneas.

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

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>
 65
Author: Kyle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-05 18:39:18

Use html:

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

Funcionará en mediawiki.

Nota del ejemplo que he publicado a continuación, es el </li> que hace que funcione correctamente.

 33
Author: Adrian Archer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-15 20:53:17

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

Error 1115-Nueva línea como elemento de lista terminator es problemático

Error 1584-Método necesario para elementos de lista multiparagráfico, continuar las listas numeradas y asignar números específicos a los elementos de lista

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

 12
Author: Antoine 'hashar' Musso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-02 21:23:50

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 el entidad y escribir todo en una línea.

 12
Author: John,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-21 14:50:02

Estoy sugiriendo una respuesta diferente: no lo hagas.

He intentado usar todas las soluciones para este problema básico de Mediawiki y he encontrado que todas son muy imperfectas. He aprendido a vivir sin números, y en su lugar:

  • Use el splat (*) 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 es sujeto a cambios a medida que se editan los pasos, y esto se convierte en otro problema de mantenimiento.

 2
Author: moodboom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-25 18:54:46

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
       some stuff (just one indent level, not two)
       some more stuff
  • 2. dos
  •  1
    Author: Kory Lovre,
    Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
    2013-04-30 23:52:32

    También puede intentar agregar una etiqueta "blockquote" que rodea la etiqueta "pre", lo que hace que se vea un poco más pulido.

    == 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
    </blockquote>
    </pre>
    

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

     -2
    Author: mars,
    Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
    2014-01-16 00:25:52