Markdown: vervolg genummerde lijst

In de volgende markdown-code wil ik dat item 3begint met lijstnummer 3. Maar vanwege het codeblok tussen markdown begint dit lijstitem als een nieuwe lijst. Is er een manier om dat gedrag te voorkomen?

Gewenste uitvoer:

1. item 1
2. item 2
```
Code block
```
3. item 3

Geproduceerde output:

  1. item 1
  2. item 2


Code block

  1. item 3

Antwoord 1, autoriteit 100%

Gebruik vier spaties om inhoud tussen opsommingstekens te laten inspringen

1. item 1
2. item 2
    ```
    Code block
    ```
3. item 3

Produceert:

  1. item 1
  2. item 2


    Code block

  3. item 3

Antwoord 2, autoriteit 6%

Als uitbreiding op bestaande antwoorden. Voor degenen die een genummerde lijst proberen voort te zetten na iets anders dan een codeblok. Bijvoorbeeld een tweede alinea. Laat de tweede alinea minimaal 1 spatie inspringen.

Markdown:

1. one
2. two
 three
3. four

Uitvoer:

  1. een

  2. twee

    drie

  3. vier


Antwoord 3, autoriteit 5%

Merk op hoe je in de oplossing van Macmade een extra regel code kunt zien boven het “Codeblok”.

Hier zijn twee betere oplossingen:

  1. Inspring het codeblok met 4 extra spaties (dus meestal 8, in dit voorbeeld van een geneste lijst 12). Dit plaatst de code in een <pre>element. Op SO kun je zelfs syntax highlightspecificeren met een
    <!-- language: lang-js -->ingesprongen met 4 spaties (+1 hier vanwege de geneste lijst).

    1. item 1
    2. item 2

      Code.block('JavaScript', maybe)?
      
    3. item 3

  2. Of plaats het codeblok gewoon tussen backticks en spring met 4 spaties in (hier 1 extra vanwege de geneste lijst). Je krijgt een gewone ingesprongen tekstparagraaf, met een <code>-element erin. Deze kun je niet syntax-highlighten:

    1. item 1
    2. item 2

      Code block

    3. item 3

Opmerking: u kunt op dit antwoord op “bewerken” klikken om de onderliggende Markdown-code te zien. Opslaan is niet nodig 😉


Antwoord 4, autoriteit 2%

Macmade’s oplossing werkt niet meer voor mij op mijn Jekyll-instantie op Github Pages, maar ik vond deze oplossingvoor een probleem voor de kramdown github-repo. Voor OP’s voorbeeld zou het er als volgt uitzien:

1. item 1
2. item 2
```
Code block
```
{:start="3"}
3. item 3

Mijn problemen handig opgelost.


Antwoord 5, autoriteit 2%

Als je tab gebruikt om het codeblok te laten inspringen, wordt het hele blok in één regel gevormd. Om dit te voorkomen moet je html geordende lijst gebruiken.

  1. item 1
  2. item 2

Codeblok

<ol start="3">
  <li>item 3</li>
  <li>item 4</li>
</ol>

Antwoord 6, autoriteit 2%

Als je de Ruby-edelsteen redcarpetgebruikt om Markdown weer te geven, heb je mogelijk nog steeds dit probleem .

Je kunt aan de nummering ontsnappen en Redcarpet negeert graag elke speciale betekenis:

1\. Some heading
text text
text text
text text
2\. Some other heading
blah blah
more blah blah

Antwoord 7

Bron;

<span>1.</span> item 1<br/>
<span>2.</span> item 2
```
Code block
```
<span>3.</span> item 3

Resultaat;

1. item 1
2. artikel 2

Code block

3. item 3


Antwoord 8

Als u niet wilt dat de regels tussen de lijstitems inspringen, zoals gebruiker Mars vermeldde in zijn opmerking, kunt u de functie example_listsvan example_listsgebruiken . Uit hun docs:

(@)  My first example will be numbered (1).
(@)  My second example will be numbered (2).
Explanation of examples.
(@)  My third example will be numbered (3).

Antwoord 9

Ik heb dit probleem opgelost op Github door het ingesprongen subblok te scheiden met een nieuwe regel, je schrijft bijvoorbeeld item 1, druk dan tweemaal op enter (alsof het een nieuwe alinea was), laat het blok inspringen en schrijf wat je wilt (een blok code, tekst, enz.). Meer informatie over Markdown-lijstenen Markdown-regeleinden.

Voorbeeld:

  1. item één
  2. item twee


    this block acts as a new paragraph, above there is a blank line

  3. item drie


    some other code

  4. item vier

Antwoord 10

Zet de lijstnummers tussen haakjes in plaats van gevolgd door een punt.

(1) item 1
(2) artikel 2

Code block

(3) punt 3


Antwoord 11

Houd er rekening mee dat er ook een aantal extensies beschikbaar zijn die dit gedrag corrigeren voor specifieke contexten van Markdown-gebruik.

Bijvoorbeeld sane_listsextensie van python -markdown (gebruikt in mkdocs, bijvoorbeeld), herkent nummers die worden gebruikt in Markdown-lijsten. U hoeft alleen deze extensie arkdown.markdown(some_text, extensions=['sane_lists'])

in te schakelen


Antwoord 12

Je kunt proberen een backslash (\) toe te voegen vóór de punt (1\. item 1), die schakelt de automatische nummering van de lijst uit. Opmerking: hiermee wordt de inspringing aan de linkerkant verwijderd.

1. item 1

def call_of_duty()
   return press_f()

3. item 3

print("fus ro dah")

7. item 7

print("Omae Wa Mou Shindeiru")

10. item 10


Van de linkbron:

3\. Put on shoes
2\. Open door
1\. Step outside
renders
3. Put on shoes
2. Open door
1. Step outside

Antwoord 13

Als je tekst uitgelijnd wilt hebben met het voorgaande lijstitem, maar een “grote” regelafbreking wilt vermijden, gebruik dan twee spaties aan het einde van een lijstitem en laat de tekst inspringen met enkele spaties.

Bron: (punten zijn spaties 😉 natuurlijk)

1.·item1··
····This is some text
2.item2

Resultaat:

  1. item1
    Dit is wat tekst
  2. item2

Antwoord 14

In heeft CommonMark Specregels hierover

1. foo
2. bar
7) baz

Genereer deze HTML

<ol>
<li>foo</li>
<li>bar</li>
</ol>
<ol start="3">
<li>baz</li>
</ol>

Other episodes