Postando código ou texto pré-formatado

:bookmark: Este guia explica como postar código ou texto pré-formatado no Discourse usando os formatos Markdown, BBCode e HTML.

:person_raising_hand: Nível de usuário necessário: Todos os usuários

Tem uma linha de código que você precisa compartilhar? Talvez você precise compartilhar um log de erro do seu site? Ler código não formatado pode ser desafiador, especialmente se o código depender de espaçamento ou contiver caracteres especiais que o Discourse transforma.

Resumo

Neste guia, você aprenderá:

  • Como formatar código em linha.
  • Como formatar linhas inteiras de código.
  • Como formatar blocos de código.
  • Como usar BBCode e HTML para formatação de código.
  • Como desativar a estilização automática de código.

Formatação de código em linha

Para formatar uma seção específica do texto, use um único acento grave (backtick) de cada lado do código. Isso pode ser feito dentro de texto normal ou quando o código está em sua própria linha. A formatação em linha não aplica nenhuma formatação automática de código (veja abaixo) e aplica apenas o “estilo de código” ao texto entre os acentos graves.

Exemplo 1:

Digitando:

`Este é um trecho de código`

Produz:

Este é um trecho de código

Exemplo 2:

Digitando:

Aqui está algum texto com `um pouco de código` dentro!

Produz:

Aqui está algum texto com um pouco de código dentro!

Formatação de linha inteira

Para formatar uma linha inteira, adicione 4 espaços no início de uma linha. Todo o texto até a próxima quebra de linha será considerado código.

Exemplo:

Digitando:

    Todo o texto após 4 espaços será formatado.

Produz:

Todo o texto após 4 espaços será formatado.

Formatação de bloco de código

Embora você possa usar o método de 4 espaços para produzir várias linhas de código, isso pode ser tedioso, especialmente se você estiver copiando e colando e precisar digitar 4 espaços em várias linhas de texto.

Em vez disso, use 3 acentos graves (```) em sua própria linha acima e abaixo do seu código. Certifique-se de que não haja espaços nas linhas com os acentos graves, ou isso não funcionará.

Exemplo:

Digitando:

```
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("Eu posso formatar código agora!");
    }
}
```

Produz:

public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("Eu posso formatar código agora!");
    }
}

BBCode e HTML

Além do Markdown, o Discourse suporta um subconjunto de BBCode e HTML.

Para HTML, use as tags <code> e <pre>:

<pre><code>
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("Eu posso formatar código agora!");
    }
}
</code></pre>

Para BBCode, use a tag [code]:

[code]
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("Eu posso formatar código agora!");
    }
}
[/code]

Especificando a Linguagem de Programação

Por padrão, o Discourse detecta a linguagem do seu código e a estiliza de acordo.

Para especificar manualmente a linguagem de programação para um bloco de código, digite o nome da linguagem logo após o primeiro conjunto de acentos graves:

``` sua_linguagem
# Seu código aqui

Exemplo

Para especificar Ruby:

Digite:

``` ruby
3.times do |stuff|
    stuff.do
end
```

Produz:

3.times do |stuff|
    stuff.do
end

A linguagem deve ser uma das linguagens destacadas configuradas para destaque de sintaxe no seu site. A lista padrão pode ser encontrada em config/site_settings.yml pesquisando por highlighted_languages.
Você também pode definir a linguagem de código padrão com a configuração de site default code lang.

Suprimindo o destaque

Se você deseja impedir qualquer destaque de sintaxe, pode usar text como a linguagem:

Exemplo

Digitando:

``` text
Seu texto para NÃO destacar aqui

Produz:

Seu texto para NÃO destacar aqui

Melhores práticas

  • Sempre garanta que seu código em linha esteja enquadrado com acentos graves únicos para maior clareza.
  • Use a formatação de bloco de código para compartilhar trechos maiores de código.
  • Evite a estilização automática de código ao compartilhar texto ou logs que não se beneficiam da estilização específica da linguagem.
  • Especifique a linguagem se a detecção automática não estiver reconhecendo seu código corretamente.

Recursos Adicionais

15 curtidas

Um link corrigido e mais seguro para a lista padrão de idiomas habilitados para realce de sintaxe é https://github.com/discourse/discourse/blob/c4de8565eceeadda8f2a800226a02d0c40752ae6/config/site_settings.yml#L1086-L1087

3 posts foram divididos em um novo tópico: Não é possível postar tópico com bloco de código