No código de remarcação a seguir, quero item 3
começar com o número da lista 3. Mas, devido ao bloco de código entre as remarcações, esse item da lista é iniciado como uma nova lista. Existe alguma maneira de impedir esse comportamento?
Saída desejada:
1. item 1
2. item 2
```
Code block
```
3. item 3
Produção produzida:
- item 1
- item 2
Code block
- item 3
<code>
elemento HTML com novas linhas, o que não é destacável por sintaxe e possui uma linha em branco extra acima visivelmente destacada como código.29. this is list item number 29
. Porém, isso pode não funcionar em todos os analisadores de remarcação.Respostas:
Use quatro espaços para recuar o conteúdo entre os marcadores
Produz:
item 2
Code block
fonte
Observe como na solução da Macmade, você pode ver uma linha extra de código acima do "Bloco de código".
Aqui estão duas soluções melhores:
Recue o bloco de código com mais 4 espaços (geralmente 8, neste exemplo de lista aninhada, 12). Isso colocará o código em um
<pre>
elemento. No SO, você pode especificar o realce da sintaxe com um<!-- language: lang-js -->
recuo de 4 espaços (+1 aqui devido à lista aninhada).item 2
item 3
Ou, basta colocar o bloco de código nos backticks e recuar em 4 espaços (aqui, 1 extra por causa da lista aninhada). Você receberá um parágrafo de texto recuado regular, com um
<code>
elemento dentro dele. Este você não pode destacar a sintaxe:item 2
Code block
item 3
Nota: você pode clicar em "editar" nesta resposta para ver o código Markdown subjacente. Não há necessidade de salvar;)
fonte
Como uma extensão para as respostas existentes. Para aqueles que tentam continuar uma lista numerada após algo diferente de um bloco de código. Por exemplo, um segundo parágrafo. Apenas indente o segundo parágrafo em pelo menos 1 espaço.
Remarcação:
Resultado:
dois
três
fonte
Se você usar tab para recuar o bloco de código, ele moldará o bloco inteiro em uma linha. Para evitar isso, você precisa usar a lista ordenada html.
Bloco de código
fonte
A solução da Macmade não funciona mais para mim na minha instância do Jekyll no Github Pages, mas eu encontrei essa solução em um problema para o repositório do kramdown github. Para o exemplo do OP, ficaria assim:
Resolvi meus problemas com facilidade.
fonte
Fonte;
Resultado;
1. item 1
2. item 2
Code block
3. item 3fonte
Se você não deseja que as linhas entre os itens da lista sejam recuadas, como o usuário Mars mencionado em seu comentário, você pode usar
pandoc
oexample_lists
recurso. Dos documentos deles :fonte
(@)
corresponde a uma lista de continuar global (por isso não pode ser apenas um Usando.pandoc
'Sstartnum
extensão você pode começar uma lista ordenada com o número que você quer e ele simplesmente funciona.Coloque os números da lista entre parênteses em vez de seguidos por um ponto.
(1) item 1
(2) item 2
code block
(3) item 3fonte
<ol>
e<li>
elems e simplesmente envolve-los em<p>
tags. Além disso, você literalmente recebe(1)
.Resolvi esse problema no Github, separando o sub-bloco recuado com uma nova linha, por exemplo, você escreve o item 1 e pressiona enter duas vezes (como se fosse um novo parágrafo), recua o bloco e escreve o que deseja (um bloco de código, texto etc.). Mais informações sobre listas de Markdown e quebras de linha de Markdown .
Exemplo:
item dois
this block acts as a new paragraph, above there is a blank line
item três
some other code
fonte
Observe que também há várias extensões disponíveis que corrigem esse comportamento para contextos específicos do uso do Markdown.
Por exemplo, a extensão sane_lists do python-markdown (usada no mkdocs, por exemplo), reconhecerá os números usados nas listas do Markdown. Você só precisa ativar esta extensão
arkdown.markdown(some_text, extensions=['sane_lists'])
fonte
Se você deseja alinhar o texto ao item anterior da lista, mas evita quebras de linha "grandes", use dois espaços no final de um item da lista e indente o texto com alguns espaços.
Fonte: (pontos são espaços ;-) é claro)
Resultado:
Este é algum texto
fonte