Este guia explica como postar código ou texto pré-formatado no Discourse usando os formatos Markdown, BBCode e HTML.
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.