Como recuar algumas linhas na marcação Markdown?

360

Eu quero escrever algumas linhas de texto. Eles devem ser formatados normalmente, exceto que cada linha deve começar na 6ª coluna. Ou seja, não quero que a regra de formatação do bloco de código faça com que esse pedaço de texto pareça código, pois usarei outra formatação como negrito, etc. Como fazer isso no Markdown?

Meng Lu
fonte
12
É uma pena que Markdown não suporte isso. Está faltando uma característica fundamental.
Josh Noe
5
que tal : ?
precisa
4
O uso de: for lists de definição não é universal nas implementações do Markdown, mas se a sua variante do Markdown suportar, isso funcionará perfeitamente. Você deve fazer disso uma resposta real.
Alex Dupuy

Respostas:

383

Não há como fazer isso nos recursos nativos da remarcação. No entanto, a marcação permite HTML embutido, portanto, escrever

      This will appear with six space characters in front of it

vai produzir:

      Aparecerá com seis caracteres de espaço à sua frente

Se você tiver controle sobre CSS na página, também poderá usar uma tag e estilizá-la, em linha ou com regras CSS.

De qualquer forma, a redução não é uma ferramenta para layout, é para simplificar o processo de escrita para a Web. Portanto, se você encontrar um conjunto de recursos para fazer o que precisa, poderá verificar se deseja ou não ' re usando a ferramenta certa aqui. Confira os documentos de Gruber:

http://daringfireball.net/projects/markdown/syntax#html

alegscogs
fonte
12
É possível inserir  (Unicode: \ 2002) em um arquivo Markdown e eles não aparecerão como  na fonte - somente quando você renderizar o arquivo. Basta exercitar a tecla de atalho no seu sistema operacional para inserir esse caractere.
Vaughan
11
Bloco citações são uma boa maneira de fazer isso (ver resposta da @ ChrisV)
drevicko
E se eu quiser usar o recuo para alinhar o texto. Por exemplo, eu quero que a segunda palavra em duas linhas comece no mesmo local (como codificadores gostam de fazer com o operador de atribuição =).
Royi
3
 é ótimo para recuo simples e claro. Nenhum estilo / alterações de fonte, apenas recuo 👍
Verde
5
As linhas quebradas no texto longo não são recuadas, o que você pode não querer no seu layout. Redimensione sua exibição renderizada para testar. Além disso,  está mais perto da guia.
dimmech
76

Uma maneira de fazer isso é usar marcadores, que permitem especificar vários níveis de recuo. Os pontos de marcador são inseridos usando múltiplos de dois espaços, estrela, outro espaço, por exemplo:

this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>

Esse método tem a grande vantagem de que também faz sentido quando você visualiza o texto bruto.

Se você se preocupa em não ver os pontos de marcador , deve (dependendo de onde estiver usando a remarcação) ser capaz de adicionar li {list-style-type: none;}ao css toda a área da remarcação.

SColvin
fonte
5
Bom truque, mas eu só quero desativar os marcadores visíveis para uma parte de um Markdown (e seu HTML resultante), mas não todo. Existe uma maneira limpa de fazer isso?
Meng Lu
@MengLu Tenho o mesmo requisito. Você descobriu isso?
lifebalance
11
Muito melhor estrutura de sábio do que a resposta aceita
irowe
Lembre-se de que o markdown pode aceitar HTML - faz parte da especificação. Portanto, para uma lista específica, não há nada que o impeça de usar HTML para resolver esse problema. Lembre-se de que você pode ter HTML na remarcação, mas não a remarcação nos seus fragmentos HTML. <ul> <li style = "list-style-type: none;"> Seu conteúdo recuado, que deve ser todo HTML </li> </ul>
Hamish Willee
2
Isso parece muito melhor do que a resposta aceita para mim. Ele lhe dá mais controle de grão fino sobre o seu texto recuado, para não mencionar a ser mais legível e mais fácil de manter
Arepo
36

Este é um thread antigo , mas eu pensaria que as aspas de bloco de markdown ('>') seriam melhores para isso:

ChrisV
fonte
21
Essa é uma boa solução se você não precisar recuar uma quantidade especificada e não se preocupa em obter uma cor de plano de fundo diferente ou outros estilos que possam acompanhar as citações em bloco. Por fim, as cotações em bloco têm um propósito semântico e são melhores se você realmente deseja definir algo como uma cotação.
alegscogs
20
Errado. As citações em bloco (>) são para criar aspas, não um recuo simples. É totalmente diferente em estilos.
Verde
25

Veja se isso ">" ajuda:

Line 1
> line 2 
>> line 3
idnavid
fonte
que é o bilhete doce em notebooks jupyter usando látex marcação
vwvan
2
Veja o comentário acima: "Errado. As citações em bloco (>) são para criar aspas, não um recuo simples. É totalmente diferente em estilos"
Usuário que não é usuário
22

guia "faça", o sinal +, o espaço e o conteúdo

assim

* level one + level two tabbed

Pavan Katepalli
fonte
github / bitbucket remarcação suporta uma regra recuo semelhante, sem a +:[tab][space]your-text-goes-here
roblogic
13

Que tal colocar um espaço determinado no início do parágrafo usando o ambiente matemático da seguinte maneira:

$\qquad$ My line of text ...

Isso funciona para mim e espero que funcione para você também.

Marcos Lourenço
fonte
10

Se você realmente precisar usar guias e não se importar com a cor de fundo e o preenchimento cinza, as <pre>tags poderão funcionar (se suportadas):

<pre>
This        That        And             This
That        This        And             That    
</pre>
Isso Isso E Isso
Que isso e aquilo    
escritor
fonte
7

Use espaços rígidos (sem quebra)

Por que usar outra linguagem de marcação? (Concordo com @cz acima).
Um objetivo do Markdown é tornar os documentos legíveis, mesmo em um editor de texto simples.

Mesmo resultado, duas abordagens

O código

Sample code
&nbsp;&nbsp;&nbsp;&nbsp;5th position in an really ugly code  
    5th position in a clear an readable code  
    Again using non-breaking spaces :)

O resultado

Código de exemplo
    5ª posição em um código realmente feio
    5ª posição em um código claro e legível
    Novamente usando espaços sem quebra :)

A representação visual de um espaço sem quebra (ou espaço rígido) é geralmente um espaço normal "", no entanto, sua representação Unicode é U + 00A0.
A representação Unicode do espaço comum é U + 0020 (32 na tabela ASCII).
Assim, os processadores de texto podem se comportar de maneira diferente enquanto a representação visual permanece a mesma.

Inserir um espaço rígido

| OS        | Input method                      |
|===========| ==================================|
| macOS     | OPTION+SPACE (ALT+SPACE)          |
| Linux     | Compose Space Space or AltGr+Space|
| Windows   | Alt+0+1+6+0                       |

Some text editor use Ctrl+Shift+Space.

Questão

Alguns editores de texto podem converter espaços físicos em espaços comuns nas operações de copiar e colar, portanto, tenha cuidado.

ePi272314
fonte
OPTION + SPACE ativou a busca por holofotes
wander95 18/01/19
Não pode ser, apenas se você tiver alterado os atalhos do padrão. O campo de pesquisa Spotlight é acionado com COMMAND-SPACE (a tecla COMMAND é a analógica da chave do Windows). O espaço sem quebra é introduzido com OPTION-SPACE (a opção é análoga à ALT)
ePi272314
No meu Mac, tenho um atalho no Option + Space, mas Shift + Option + Space funciona bem.
Dag Høidahl 18/09/19
Os agrupamentos de linhas com frases longas parecem feios com isso.
Mike Kormendy
4

Verifique se você pode usar HTML com a sua marcação. Talvez isso funcione para você:

  • Entrada da lista uma <br/>
    linha recuada <br/>
    <br/>
    E mais algumas ..
  • Segunda entrada
    • Subentrada <br/>
      Olá!
Webwurst
fonte
6
Para fazer isso, você só precisa terminar a linha com dois espaços.
Pietro
4

Para parágrafos citados / recuados, esse hack pode funcionar (dependendo do mecanismo de renderização):

| | | |
|-|-|-|
|  | _"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."_ | |
|

que renderiza como:

insira a descrição da imagem aqui

geotoria
fonte
2

Use um espaço sem interrupção diretamente  (não é o mesmo que !).

(Você pode inserir HTML ou algum código de remarcação esotérica, mas posso pensar em melhores razões para quebrar a compatibilidade com a remarcação padrão.)

cz
fonte
2

Para responder às perguntas de MengLu e @ lifebalance em resposta à resposta do SColvin (que eu prefiro a resposta aceita para o controle que ele fornece), parece que você poderia apenas segmentar um elemento pai das listas ao definir a exibição como nenhuma, adicionando um elemento circundante, se necessário. Portanto, se supusermos que estamos fazendo isso para um índice, podemos estender a resposta do SColvin:

HTML

<nav class="table-of-contents">
  this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>
</nav>

CSS

.table-of-contents ul {
  list-style-type: none;
}
Arepo
fonte
2

Conforme apontado por @AlexDupuy nos comentários, listas de definições podem ser usadas para isso.

Isso não é suportado por todos os processadores de descontos, mas está amplamente disponível: Guia de descontos - Listas de definições

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

Renderiza como (html):

<dl>
    <dt>Term 1</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
    <dt>Term 2</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
</dl>

Normalmente, o DTé renderizado em um formato de cabeçalho e cada um DDé renderizado como texto recuado abaixo dele.

Se você não deseja um título / termo, use um espaço sem interrupção no lugar do termo de definição:

&nbsp;
: This is the text that I want indented.  All text on the same line as the preceding colon will be included in this definition.
: If you include a second definition you'll get a new line; potentially separated by a space. <br />Some inline HTML may be supported within this too, allowing you to create new lines without spaces.
: Support for other markdown syntax varies; e.g. we can add a bullet list, but each one's wrapped in a separate definition term, so the spacing may be out.
: - item 1
: - item 2
: - item 3

Você pode ver isso em ação, copiando e colando os exemplos acima neste site: Stack Edit Markdown Editor

Captura de tela da renderização DL no Stack Edit

JohnLBevan
fonte
11
O & nbsp; funcionou perfeitamente. Obrigado
Kevin Mason
0

Algumas implementações do Markdown parecem usar o ~caractere para indentação.

npclaudiu
fonte
0

Outra alternativa é usar um editor de descontos como o StackEdit . Ele converte html (ou texto) em descontos em um editor WYSIWYG. Você pode criar recuos, títulos, listas no editor e ele mostrará o texto correspondente no formato de remarcação. Você pode salvar, publicar, compartilhar ou baixar o arquivo. Você pode acessá-lo no site deles - sem necessidade de downloads!

lizasperling
fonte
0

Ok, com um pouco de HTML no seu código R, fiz o seguinte código para gerar texto puro no R Markdown. O <h3 style="text-indent: 15em;">recuo do texto 15 espaços. Para a pergunta original, altere 15 para 6.

## Option: Du Pont Ratio Concept - (ROE Decomposition)
### (Closed Quotes/Total Premium) = (Closed Quotes/Quotes Issued) X <br>
<h3 style="text-indent: 15em;">
 (Quotes Issued/Renewal Premium) X <br></h3>
<h3 style="text-indent: 15em;">
 (Renewal Premium/Total Premium)</h3>

Portanto, o código resultante fornece o formato de saída desejado. Estou usando guias para o documento Markdown e estava olhando para alinhar o texto () que funcionou.

saída r

Bryan Butler
fonte
0

Para completar, as listas com marcadores mais profundas:

Nested deeper levels: ---- leave here an empty row * first level A item - no space in front the bullet character * second level Aa item - 1 space is enough * third level Aaa item - 5 spaces min * second level Ab item - 4 spaces possible too * first level B item

Níveis mais profundos aninhados:

  • item de primeiro nível A - não há espaço na frente do caractere de marcador
    • item Aa de segundo nível - 1 espaço é suficiente
      • item Aaa de terceiro nível - 5 vagas mín.
    • item Ab de segundo nível - 4 espaços possíveis também
  • item de primeiro nível B

    Nested deeper levels:
     ...Skip a line and indent eight spaces. (as said in the editor-help, just on this page)
    * first level A item - no space in front the bullet character
     * second level Aa item - 1 space is enough
         * third level Aaa item - 5 spaces min
        * second level Ab item - 4 spaces possible too
    * first level B item
    
            And there
            could be even more
            such octets of spaces.
    
Franta
fonte
0

Se você estiver trabalhando com pontos de bala, tente o seguinte:

<ul>
  <li>Coffee</li>
  <li>Tea
    <ul>
      <li>Black tea</li>
      <li>Green tea</li>
    </ul>
  </li>
  <li>Milk</li>
</ul>

Esse é o método que eu uso ao estilizar a remarcação.


fonte
0

No gitlab.com, um único espaço em en (U + 2002) seguido por um único espaço em em (U + 2003) funciona decentemente.

Presumivelmente, outras repetições ou combinações de caracteres espaciais não exatamente explicados também seriam suficientes.

Jan Kyu Peblik
fonte
0

Um dos problemas ao iniciar sua linha com espaços sem quebra é que, se sua linha for longa o suficiente para quebrar, quando ela derramar em uma segunda linha, o primeiro caractere da linha de transbordamento será iniciado com a esquerda pressionada em vez de começar com o primeiro caractere da linha acima dele.

Se o seu sistema permitir que você misture HTML com sua remarcação, uma maneira divertida e alegre de obter um recuo é assim:

<ul>
My indented text goes here, and it can be long and wrap if you like.
And you can have multiple lines if you want.
</ul>

Semanticamente dentro do seu HTML, é um absurdo (uma seção UL sem nenhum item do LI), mas todos os navegadores que usei apenas recuam o que há entre essas tags.

Jinlye
fonte