Blocco di codice nell'elenco numerato (sintassi Wiki)


86

Nella sintassi wiki di MediaWiki (wikipedia), c'è un modo per avere un elenco numerato con un blocco di codice nel mezzo?

Per esempio:

# Numero 1
# Numero 2
  Sezione rientrata che diventerà un blocco di codice
# Numero 3
# Numero 4

Quello che succede in MediaWiki è che ti ritrovi con qualcosa del genere:

1. Numero 1
2. Numero 2
   Sezione rientrata che diventerà un blocco di codice
1. Numero 3
2. Numero 4

(Nota come "Numero 3" e "Numero 4" vengono reimpostati come 1 e 2 ... Sembra che StackOverflow sia molto più intelligente di MediaWiki, ho dovuto inserire il mio esempio nei tag PRE per farlo fallire!)

So che puoi far rientrare il testo usando la sintassi "#:" ...

# Numero 1
# Numero 2
#: Sezione rientrata che verrà semplicemente rientrata
# Numero 3
# Numero 4

... ma mi piacerebbe davvero ottenere la stessa classe CSS visiva per il mio codice anche se è in un elenco numerato.

Diventa ancora più divertente con elenchi annidati. Questa sintassi ...

# MainEntry 1
## Numero 1
## Numero 2
# MainEntry 2
## Numero 1
## Numero 2
  Sezione rientrata che diventerà un blocco di codice
## Numero 3
## Numero 4

... diventa ...

1. MainEntry 1
   1. Numero 1
   2. Numero 2
2. MainEntry 2
   1. Numero 1
   2. Numero 2
      Sezione rientrata che diventerà un blocco di codice
1. 1. Numero 3
   2. Numero 4

(Nota come "Numero 3" ora è "1. 1.")


Ho fatto un esempio del problema qui: en.wikipedia.org/w/…
inanutshellus

Risposte:


72

Potresti provare la seguente sintassi wiki, funziona per me 1.17

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

Non è perfetto, perché si finisce con un rientro più ampio, ma consente di utilizzare la sintassi wiki per pre-blocchi formattati correttamente su più righe.

Come accennato in precedenza, l'altro modo corretto sarebbe utilizzare il markup HTML.

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

1
Quella sintassi wiki ha funzionato per me su MediaWiki 1.15.1. Mette un po 'di spazio in più attorno alle righe di codice, ma funziona.
Nick Chammas

1
Ho usato la stessa sintassi che hai suggerito per le immagini all'interno di elenchi numerati: #:[[File:image.jpg]]tra elementi numerati. Questo aiuta moltissimo.
Michael Plautz

Ha funzionato per me su MediaWiki 1.17; Grazie!
No

Non sono sicuro di quale versione di MediaWiki utilizziamo, ma funziona. C'è solo un avvertimento: se si precede le righe "pre" con un altro #: riga indentata, diciamo per un titolo o qualcosa del genere, "pre" non viene visualizzato correttamente.
anuragw

Non funziona in mediawiki usato da GitHub (vedi esempio qui ). Utilizza invece la versione HTML.
Jonathan Cross,

34

Usa html:

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

funzionerà in mediawiki.

Nota dall'esempio che ho postato di seguito, è il </li>che lo fa funzionare correttamente.


Ho modificato il tuo esempio per mostrare come funzionerebbe: en.wikipedia.org/w/…
Adrian Archer

Questo è un problema noto con la sintassi wiki.
Adrian Archer

La risposta di Kyle dovrebbe essere accettata come risposta. Se si eseguono elenchi annidati, sarà difficile utilizzare html. Inoltre, la risposta di cui sopra è sepolta nell'antica pagina sandbox di wikipedia. Il testo effettivo nella risposta Stackoverflow sopra, non risolve il problema dell'OP.
No

15

Funziona bene 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.

Il segreto è sostituire le nuove righe con l'entità e scrivere tutto in una riga.


5
corretto, ma non funziona se non vuoi scrivere tutto il codice del blocco in una riga
RockScience

13

Il tuo problema è stato oggetto di due bug compilati nel bug tracker di MediaWiki alla fine del 2004 e del 2005:

Bug 1115 - La nuova riga come terminatore di voci di elenco è problematica

Bug 1584 - È necessario un metodo per gli elementi dell'elenco multiparagrafo, continuare gli elenchi numerati e assegnare numeri specifici agli elementi dell'elenco

Leggendoli, scoprirai che la soluzione è non usare la sintassi MediaWiki ma affidarti ad HTML "puro".


1
Abbiamo anche un'intera pagina della Guida: Newline e spazi e una discussione specifica su questo problema in Inserimenti di markup indipendenti dalla lista .
Nemo

3

Sto suggerendo una risposta diversa: non farlo.

Ho tentato di utilizzare tutte le soluzioni alternative per questo problema di base di Mediawiki e ho scoperto che sono tutte molto imperfette. Ho imparato a vivere senza numeri e invece:

  • Usa il simbolo (*) invece di (#) per tutti i miei elenchi
  • Continua a utilizzare lo spazio iniziale per tutti i miei blocchi di codice

Questo è molto più semplice e gestibile di qualsiasi soluzione alternativa. Inoltre, l'uso di qualsiasi riferimento a un numero è soggetto a modifiche man mano che i passaggi vengono modificati e questo diventa quindi un altro problema di manutenzione.


1

Nell'esempio sopra il secondo rientro (: :) non è necessario.

Solo un rientro funziona bene (:) come segue:

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

Produce:

  • 1 uno
       alcune cose (solo un livello di rientro, non due)
       altre cose
  • 2. due


  • 6
    Ho trovato la risposta di @ Kyle con :: <pre> sulle linee tra </pre> È NECESSARIO per me. Solo 1: come dici tu, non ha funzionato per me ...
    cellepo

    Questa risposta non ha funzionato per me in Mediawiki 1.17. Anch'io trovo necessaria la risposta di @Kyle.
    No

    -2

    Puoi anche provare ad aggiungere un tag "blockquote" che circonda il tag "pre", per farlo sembrare un po 'più raffinato.

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

    Che farà rientrare la casella grigia in linea con i tuoi punti / numeri senza usare i due punti.


    1
    Questo non funziona per me, anche se correggo l'ordine dei tag di chiusura. Spezza la numerazione della lista.
    P.Péter

    Lo stesso con gli elenchi non ordinati (*). Se sono annidati, l'annidamento dopo il blockquote non continua correttamente.
    No
    Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
    Licensed under cc by-sa 3.0 with attribution required.