Problema com Formatação de Bloco de Código no Discourse – Texto Vermelho e Realce Não Intencional

Estou encontrando um problema com a formatação de blocos de código no Discourse. Ao postar código Python, certas partes do código (como URLs e caminhos) estão sendo destacadas em vermelho ou formatadas inesperadamente, como mostrado na captura de tela abaixo:

Descrição do Problema

  • Ao postar código Python usando três crases para blocos de código, partes específicas do texto (como sublinhados em URLs ou caminhos) estão sendo destacadas em vermelho ou mal formatadas.
  • Tentei escapar caracteres, usar entidades HTML e remover a realce de sintaxe não especificando a linguagem, mas o problema persiste.

Exemplo de Código

Aqui está um trecho do código que está causando problemas (Python):

import degirum as dg
zoo = dg.connect(dg.CLOUD, “https://cs.degirum.com”, “”)
model = zoo.load_model(“mobilenet_v2_ssd_coco–300x300_quant_n2x_orca_1”)
result = model(“https://docs.degirum.com/images/samples/TwoCats.jpg”)
display(result.image_overlay)

O Que Tentei

  • Escapar sublinhados com uma barra invertida.
  • Usar entidades HTML para substituir sublinhados.
  • Remover o realce de sintaxe não especificando python no bloco de código.
  • Postar o código como texto simples sem nenhuma formatação.

Informações de Configurações

  • Nas configurações, estas são as linguagens destacadas:
  • bash, c, cpp, csharp, css, diff, go, graphql, ini, java, javascript, json, kotlin, lua, makefile, markdown, objectivec, perl, php, php-template, plaintext, python, python-repl, r, ruby, rust, scss, shell, sql, swift, typescript, xml, yaml, wasm

Pedido de Suporte

  • Alguém mais encontrou esse problema?
  • Existe uma maneira recomendada de impedir que o Discourse interprete mal partes do código?
  • Existem configurações ou personalizações que devo verificar que possam estar afetando a renderização de blocos de código?

Não estou familiarizado com o sistema de realce de sintaxe / configurações como um todo, mas se você quiser apenas se livrar do texto vermelho, pode usar CSS no tema do seu site:

code.language-python span {
    color: inherit;
}

O vermelho é usado para indicar strings, então se você quisesse apenas mudar isso para uma cor diferente, poderia fazer algo assim:

code.language-python span.hljs-string {
    color: #FFF; /* Substitua pela cor pretendida */
}

Além do texto vermelho, houve outras partes que estão sendo mal formatadas?

Obrigado pela sua sugestão, @bryce! Tentarei ajustar o CSS no tema do nosso site para resolver o problema do texto vermelho.

Tentarei ajustar o CSS no tema do nosso site para resolver o problema do texto vermelho.

Acho que o principal problema é que a fonte na minha captura de tela original não está formatada para parecer código — falta o estilo de fonte monoespaçada que é tipicamente usado para blocos de código. Idealmente, eu esperava que o código aparecesse mais assim, com a fonte e a cor de fonte corretas:

Screenshot 2024-08-12 at 12.04.53 PM

Existe alguma maneira de garantir que o código seja exibido em uma fonte monoespaçada, semelhante à deste exemplo?

Além disso, não notei nenhum outro problema de formatação importante, mas continuarei testando e avisarei se algo mais surgir.

Obrigado novamente pela sua ajuda!

As cores de destaque podem ser alteradas substituindo estas variáveis CSS:

  1. --hljs-comment: Usado para comentários de código
  2. --hljs-number: Usado para valores numéricos no código
  3. --hljs-string: Usado para valores de string no código
  4. --hljs-literal: Usado para valores literais no código
  5. --hljs-tag: Usado para tags HTML/XML
  6. --hljs-attribute: Usado para atributos em tags HTML/XML
  7. --hljs-symbol: Usado para símbolos no código
  8. --hljs-bg: Usado para a cor de fundo dos blocos de código
  9. --hljs-builtin-name: Usado para nomes de funções internas

Por exemplo, para substituir a cor da string:

:root {
   --hljs-string: pink;
}

Parece que o hljs (a biblioteca de destaque usada) pode não suportar o destaque de identificadores Python como degirum em seu exemplo, mas você deve conseguir chegar bem perto alterando as outras cores.

Quanto à fonte, isso é estranho - os blocos de código devem aparecer com uma fonte monoespaçada por padrão. Sugiro verificar novamente seu tema para ter certeza de que nada está sendo substituído lá.

1 curtida

Apenas para esclarecer, estamos atualmente usando o tema Padrão sem componentes adicionais, então é estranho que a fonte monoespaçada não esteja sendo aplicada por padrão aos blocos de código. Não parece que nada a esteja substituindo.

Como referência, estou trabalhando no Chrome Versão 127.0.6533.100 no macOS 14.6.1.

Você consegue reproduzir o problema em try.discourse.org?

Eu tentei, mas os links não foram destacados.

1 curtida

Testei o código em try.discourse.org, e os resultados são mostrados na captura de tela abaixo:

A fonte parece correta e os links estão destacados como esperado. No entanto, ainda estou enfrentando o problema em nossa comunidade, onde a fonte não é exibida corretamente e os links não são destacados como deveriam.

Não tenho certeza por que essa discrepância está ocorrendo.

Como referência, aqui está o link para a página em nossa comunidade.

o modo de segurança parece bom, eu acho. Pelo menos em termos de fonte.

Então o problema é algum plugin, tema ou componente.

Isso é realce de java

e no seu fórum é makefile

Há um guia sobre Selecting the programming language used in code blocks
Você também pode escolher um idioma padrão nas configurações do site

A captura de tela no seu fórum foi tirada sem o modo de segurança, então para mim a fonte é monoespaçada.

1 curtida

Obrigado a ambos por dedicarem tempo para me ajudar com isso. É bom saber que a fonte está aparecendo como monoespaçada para outras pessoas.

Como não está sendo exibida corretamente do meu lado, pode ser um problema específico da minha configuração ou ambiente. Para mim, ela está aparecendo incorretamente tanto no Chrome quanto no Safari (ambos em suas versões mais recentes). Ela também está aparecendo incorretamente para outras pessoas em minha organização em PCs.

Verifiquei agora de um computador pessoal e o problema persiste lá também. A fonte do código ainda não está sendo exibida como monoespaçada e os links não estão sendo destacados corretamente.

Isso parece descartar um problema com minha configuração principal, pois o problema é consistente em diferentes dispositivos.

Você já tentou desativar as personalizações de tema com o modo de segurança?

https://community.degirum.com/t/pysdk-quick-start-guide/71?safe_mode=no_themes

Acabei de verificar no Modo de Segurança, e o problema parece ter sido resolvido lá — a fonte do código aparece como monoespaçada e os links são destacados corretamente.

Isso é confuso porque estamos usando o tema Padrão sem componentes adicionais, então não tenho certeza do que pode estar causando o problema no modo normal.

Aqui estão as configurações do nosso tema Padrão:

É o que eu esperaria. Essas strings estão em uma cor diferente para que você possa identificar rapidamente que são strings. Não é assim que aparece no seu editor de texto?

Acho que você só quer mudar o SiteSetting.default_code_lang para “text” ou “”. Há também uma configuração highlighted_languages. Tenho certeza de que aqui eles mudaram a linguagem de código padrão para algo como texto, então

Isso fica assim:

result=model("https://big.bang")

E se eu forçar com ```python então fica assim

result=model("https://big.bang")

O Idioma Padrão do Código foi definido como automático. Acabei de alterá-lo para texto, mas nada mudou do meu lado.

Aqui estão nossos idiomas destacados:

Este é o aspeto no meu editor de texto:

Quando eu dei uma olhada, a autodeteção achou que era makefile, não python.

Você adicionou a linguagem de programação ao bloco de código em suas postagens?

1 curtida

É assim que fica quando adiciono Python ao bloco de código:

Como estou gerenciando a comunidade, meu objetivo é poder vê-lo como os usuários finais deveriam vê-lo. Como você pode ver no lado direito, simplesmente não parece certo.

O que você adicionou em comum: CSS?

1 curtida