Bloco de código em lista numerada (sintaxe Wiki)

86

Na sintaxe wiki do MediaWiki (wikipedia), existe uma maneira de ter uma lista numerada com um bloco de código no meio?

Por exemplo:

# Número 1
# Número 2
  Seção recuada que se tornará um bloco de código
# Número 3
# Número 4

O que acontece no MediaWiki é que você acaba com algo assim:

1. Número 1
2. Número 2
   Seção recuada que se tornará um bloco de código
1. Número 3
2. Número 4

(Observe como "Número 3" e "Número 4" são redefinidos como 1 e 2 ... Parece que StackOverflow é muito mais inteligente do que MediaWiki, eu tive que colocar meu exemplo em tags PRE para fazer estragar!)

Eu sei que você pode indentar o texto usando a sintaxe "#:" ...

# Número 1
# Número 2
#: Seção recuada que será apenas recuada
# Número 3
# Número 4

... mas eu realmente gostaria de obter a mesma classe CSS visual para meu código, mesmo que esteja em uma lista numerada.

Ele fica ainda mais divertido com listas aninhadas. Esta sintaxe ...

# MainEntry 1
## Número 1
## Número 2
# MainEntry 2
## Número 1
## Número 2
  Seção recuada que se tornará um bloco de código
## Número 3
## Número 4

...torna-se...

1. MainEntry 1
   1. Número 1
   2. Número 2
2. MainEntry 2
   1. Número 1
   2. Número 2
      Seção recuada que se tornará um bloco de código
1. 1. Número 3
   2. Número 4

(Observe como "Número 3" agora é "1. 1.")

Inanutshellus
fonte
Fiz um exemplo do problema aqui: en.wikipedia.org/w/…
inanutshellus

Respostas:

72

Você pode tentar a seguinte sintaxe wiki, ela funciona para mim em 1.17

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

Não é perfeito, porque você acaba com um recuo mais, mas permite que se use a sintaxe wiki para pré-blocos formatados corretamente em várias linhas.

Como mencionado anteriormente, a outra maneira adequada seria usar a marcação HTML.

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>
Kyle
fonte
1
Essa sintaxe wiki funcionou para mim no MediaWiki 1.15.1. Isso coloca um pouco de espaço extra em torno das linhas de código, mas funciona.
Nick Chammas
1
Usei a mesma sintaxe que você sugeriu para imagens em listas numeradas: #:[[File:image.jpg]]entre itens numerados. Isso ajuda muito.
Michael Plautz
Trabalhou para mim no MediaWiki 1.17; Obrigado!
Não
Não tenho certeza de qual versão do MediaWiki usamos, mas funciona. Há apenas uma advertência: se você preceder as linhas 'pré' com outra linha #: indentada, digamos para um título ou algo assim, o 'pre' não renderiza corretamente.
anuragw
Não funciona no mediawiki usado pelo GitHub (veja o exemplo aqui ). Em vez disso, use a versão HTML.
Jonathan Cross
34

Use html:

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

vai funcionar no mediawiki.

Observe o exemplo que postei abaixo, é o </li>que o faz funcionar corretamente.

Adrian Archer
fonte
Eu editei seu exemplo para mostrar como funcionaria: en.wikipedia.org/w/…
Adrian Archer
Este é um problema conhecido com a sintaxe do wiki.
Adrian Archer de
A resposta de Kyle deve ser aceita. Se estiver fazendo listas aninhadas, será difícil usar html. Além disso, a resposta acima está enterrada na página sandbox da antiga Wikipedia. O texto real na resposta Stackoverflow acima não resolve o problema do OP.
Não
15

Isso funciona bem no 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.

O segredo é substituir as novas linhas pela entidade e escrever tudo em uma linha.

John
fonte
5
correto, mas não funciona se você não quiser escrever todo o seu código de bloco em uma linha
RockScience
13

Seu problema é o assunto de dois bugs preenchidos no bug tracker do MediaWiki no final de 2004 e 2005:

Bug 1115 - Nova linha como terminador de item de lista é problemático

Bug 1584 - Método necessário para itens de lista com vários parágrafos, listas numeradas contínuas e atribuição de números específicos a itens de lista

Ao lê-los, você descobrirá que a solução é não usar a sintaxe do MediaWiki, mas confiar no HTML "puro".

Antoine 'hashar' Musso
fonte
1
Também temos uma página inteira de Ajuda: novas linhas e espaços e uma discussão específica sobre esse problema em Inserções de marcação agnósticas de lista .
Nemo
3

Estou sugerindo uma resposta diferente: não faça isso.

Tentei usar todas as soluções alternativas para esse problema básico do Mediawiki e descobri que todas são muito imperfeitas. Aprendi a viver sem números e, em vez disso:

  • Use o splat (*) em vez de (#) para todas as minhas listas
  • Continue a usar o espaço inicial para todos os meus blocos de código

Isso é muito mais simples e fácil de manter do que qualquer solução alternativa. Além disso, o uso de qualquer referência a um número está sujeito a alterações à medida que as etapas são editadas - e isso se torna outro problema de manutenção.

humor
fonte
1

No exemplo acima, o segundo recuo (: :) não é necessário.

Apenas um recuo funciona bem (:) da seguinte maneira:

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

Produz:

  • 1 um
       algumas coisas (apenas um nível de indentação, não dois)
       mais algumas coisas
  • 2. dois

  • Kory Lovre
    fonte
    6
    Eu encontrei a resposta de @Kyle com :: <pre> nas linhas entre </pre> É NECESSÁRIO para mim. Apenas 1: como você diz, não funcionou para mim ...
    cellepo
    Essa resposta não funcionou para mim no Mediawiki 1.17. Eu também acho que a resposta @Kyle é necessária.
    Não
    -2

    Você também pode tentar adicionar uma tag "blockquote" ao redor da tag "pre", para torná-la um pouco mais polida.

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

    O que irá recuar a caixa cinza em linha com seus marcadores / números sem usar dois-pontos.

    Marte
    fonte
    1
    Isso não funciona para mim, mesmo se eu corrigir a ordem das tags de fechamento. Quebra a numeração da lista.
    P.Péter
    Mesmo com listas não ordenadas (*). Se eles estiverem aninhados, o aninhamento após o blockquote não continuará corretamente.
    Não