2016-03-04 45 views
8

Provo a creare un tutorial per gli studenti. Voglio numerare le domande che chiedo loro, ma nel frattempo vorrei aggiungere informazioni per presentare le domande. Come posso creare una lista numerata automaticamente che non resetta la numerazione ogni volta che inserisco del testo. Per esempio:Elenco numerazione markdown notebook Jupyter

This is some info. 
1. This is question one. 

This is more info. 
2. This is question two. 

Dà uscita:

Si tratta di alcune informazioni.

  1. Questa è una domanda.

Questa è più informazioni.

  1. Questa è la domanda due.

risposta

5

Questo non è direttamente possibile con Markdown standard, sebbene sia possibile "falsificarlo" (vedere di seguito). In effetti, la rules Stato:

E 'importante notare che i numeri reali che si utilizzano per contrassegnare la lista non hanno alcun effetto sulla output HTML Markdown produce. ... Il punto è che, se lo si desidera, è possibile utilizzare i numeri ordinali negli elenchi di Markdown ordinati, in modo che i numeri nella propria origine corrispondano ai numeri nel codice HTML pubblicato. Ma se vuoi essere pigro, non devi.

Se si utilizza la numerazione di elenco pigro, tuttavia, è comunque necessario avviare l'elenco con il numero 1. A un certo punto in futuro, Markdown può supportare l'avvio di elenchi ordinati su un numero arbitrario.

Quel futuro non è mai arrivato, ufficialmente. Tuttavia, alcune diverse implementazioni di Markdown possono offrire tale funzionalità come opzione non predefinita. Sfortunatamente, è raro (e non ricordo quali implementazioni siano).

Indipendentemente da ciò, si avrà un altro problema. Non mi è chiaro in che modo l'output desiderato sarebbe HTML valido. In sostanza, stai chiedendo dei paragrafi esterni agli elementi della lista che sono annidati all'interno del tuo elenco. Sarebbe HTML non valido:

<ol> 
    <p>This is some info.</p> 
    <li>This is question one.</li> 
    <p>This is more info.</p> 
    <li>This is question two.</li> 
</ol> 

Detto questo, sarà (quasi) di visualizzazione come desiderato (gli elementi non-lista sono anche rientrato).

    Queste sono alcune informazioni.

  1. Questa è la prima domanda.
  2. Questa è più informazioni.

  3. Questa è la domanda due.

Non lo consiglierei ma è possibile utilizzarlo come HTML non elaborato. Forse potresti trovare qualche altro metodo o formato per rappresentare i tuoi dati.

Ho suggerito di utilizzare una lista ordinata nidificata all'interno di un elenco di definizioni se l'implementazione Markdown lo supporta (mentre non standard, questa funzionalità è molto comune e coerente tra le implementazioni, anche se potrebbe non essere attivata per impostazione predefinita).Ti dà l'annidamento corretto ma lo stesso problema se i numeri non consecutivi persistono. Tuttavia, se si aggiunge manualmente i numeri e la fuga in modo che non vengano interpretati come elementi di una lista, funziona così:

This is some info. 
: 1\. This is question one. 

This is more info. 
: 2\. This is question two. 

che rende come:

<dl> 
<dt>This is some info.</dt> 
<dd>1. This is question one.</dd> 
<dt>This is more info.</dt> 
<dd>2. This is question two.</dd> 
</dl> 

E mostra come:

Queste sono alcune informazioni.
    1. Questa è la prima domanda.
Questa è più informazioni.
    2. Questa è la seconda domanda.

È interessante notare che, rimuove come SO il (comunemente di default) il rientro sulle liste di definizione, nei miei tentativi di falso nella demo di cui sopra, ho capito c'è una soluzione più semplice che dovrebbe funzionare in tutte le implementazioni Markdown. Basta usare i paragrafi, numeri manuali, e gli spazi non-rottura per forzare il rientro:

This is some info. 

&nbsp; &nbsp; 1. This is question one. 

This is more info. 

&nbsp; &nbsp; 2. This is question two. 

Nota che gli spazi non divisibili causa Markdown non vedere quelle linee come voci di elenco negando la necessità di sfuggire loro. Quanto sopra rende come:

<p>This is some info.</p> 
<p>&nbsp; &nbsp; 1. This is question one.</p> 
<p>This is more info.</p> 
<p>&nbsp; &nbsp; 2. This is question two.</p> 

E mostra come:

Si tratta di alcune informazioni.

    1. Questa è la prima domanda.

Questa è più informazioni.

    2. Questa è la seconda domanda.

1

Non identica alla desiderata, ma jupyter fermato rinumerazione quando ho scritto 1) 2) 3) ecc

L' ')' sembra disabilitare rinumerazione svolto da Markdown di Jupyter. Al leasing per jupyter versione 5.0.0 con python 3.5.2.

+0

Questo funziona anche per me, tuttavia deve esserci una linea vuota tra ciascuno degli elementi dell'elenco, altrimenti tutti i punti numerati vengono visualizzati sulla stessa riga. Lo stesso metodo che utilizza i punti fermi '.' continua a non funzionare anche quando si usano linee vuote tra gli elementi della lista. –

Problemi correlati