Executando verificação de segurança...
2

[Tabnews]: Texto entre tags <sub></sub> aparece aglutinado após renderização do markdown

Prezado leitor desta postagem.

Poderia verificar se o texto mais abaixo, Exemplo 2, aparece normalmente para você? Estou tentando utilizar o par de tags <sub></sub> para estilizar o texto, porém o texto resultante está aparecendo aglutinado após o rendering do markdown. Deixo dois exemplos abaixo. O primeiro é com texto normal, sem qualquer problemas, e o segundo é o texto entre as referidas tags.

Screenshot

image

Caso a exibição também esteja comprometida para você e saiba como corrigir esse problema, deixe nos comentários. Se preferir, faça algo melhor ainda, abra uma Issue em https://github.com/filipedeschamps/tabnews.com.br/issues explicando para os desenvolvedores do Tabnews como resolvê-lo.

Exemplo 1: Texto normal


Área de rascunho

Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.

Por favor, não pontuar


Exemplo 2: Texto dentro das tag <sub></sub>


Área de rascunho

Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.

Por favor, não pontuar


Qualquer texto após a falha de renderização também é afetado, assemelhando a um vazamento da função das tags.

Código fonte desta postagem
Prezado leitor desta postagem.

Poderia verificar se o texto mais abaixo aparece normalmente para você? Estou tentando utilizar o par de _tags_ `<sub></sub>` para estilizar o texto, porém o texto resultante está aparecendo aglutinado após o _rendering_ do _markdown_. Deixo dois exemplos abaixo. O primeiro é com texto normal, sem qualquer problemas, e o segundo é o texto entre as referidas _tags_.

<details>
<summary>Screenshot</summary>
    
![image](https://i.imgur.com/jXjSab3.png)

</details>

Caso a exibição também esteja comprometida para você e saiba como corrigir esse problema, deixe nos comentários. Se preferir, faça algo melhor ainda, abra uma _Issue_ em https://github.com/filipedeschamps/tabnews.com.br/issues explicando para os desenvolvedores do Tabnews como resolvê-lo.

#### Exemplo 1: Texto normal

---

###### Área de rascunho

Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.

Por favor, não pontuar


---

#### Exemplo 2: Texto dentro das tag `<sub></sub>`

---

<sub>

###### Área de rascunho

Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.

Por favor, não pontuar

</sub>

---

Qualquer texto após a falha de renderização também é afetado, assemelhando a um vazamento da função das tags.


Código fonte desta postagem
Carregando publicação patrocinada...
6

Pra mim também aparece com todo o texto na mesma linha, e acredito que vai acontecer o mesmo com todo mundo, por causa do HTML gerado e do CSS que o site usa.


O problema

Este Markdown:

<sub>

###### Área de rascunho

Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.

Por favor, não pontuar

</sub>

Gera este HTML:

<sub>
  <h6 id="gpoleszuk-content-área-de-rascunho-1">Área de rascunho</h6>
  <p>Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.</p>
  <p>Por favor, não pontuar</p>
</sub>

E se olharmos no developer tools do browser, vemos que o sub possui line-height igual a zero:

.markdown-body sub, .markdown-body sup {
    line-height: 0;
    ... etc
}

Isso que faz com que todo o texto fique em uma única linha. Se desabilitarmos o line-height (ou mudarmos para algum valor maior que zero), aí o texto passa a ser exibido normalmente.


Como resolver?

Somente pelo site, com todo o conteúdo que vc quer, não sei se tem um jeito simples. Eu até tentei forçar o line-height para algum valor diferente de zero:

<sub style="line-height: 1 !important;">

Mas o renderer parece ignorar e remover qualquer style que eu coloque. Segue o teste abaixo:

Área de rascunho

Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.

Por favor, não pontuar

O trecho acima foi colocado com style na tag sub, mas o HTML foi gerado sem o style. O curioso é que se eu editar, o style continua lá, então ele só é ignorado na hora de converter para HTML.


Uma solução seria usar algo externo ao site, como por exemplo o Stylus, que é uma extensão do Chrome que permite que vc altere/customize o CSS de qualquer site. No meu caso, eu só adicionei o trecho abaixo para o TabNews:

.markdown-body sub, .markdown-body sup {
    line-height: 1.5;
}

E assim o texto passou a ser exibido normalmente. Mas mudar o line-height diretamente via Markdown ou HTML no próprio post não sei se dá, pois como já disse acima, o renderer parece remover o style do elemento e usar somente o que está configurado na engine.


Sobre usar sub para estilizar

Na própria documentação da MDN tem o seguinte:

The <sub> element should be used only for typographical reasons - that is, to change the position of the text to comply with typographical conventions or standards, rather than solely for presentation or appearance purposes.

E na especificação do HTML temos:

These elements must be used only to mark up typographical conventions with specific meanings, not for typographical presentation for presentation's sake.

Ou seja, sub e sup não deveriam ser usados com o propósito de estilizar texto. É um uso torto e portanto não há garantia e nem obrigação de funcionar em todos os casos. Vale mencionar que nos links já citados é mencionado que o conteúdo destes elementos deve ser apenas phrasing content (e a lista destes elementos está aqui e aqui). Repare que h6 e p não estão na lista.

Ah, então a culpa é do Markdown que gerou esse HTML inválido.

Sim e não :-)

Historicamente as ferramentas que lidam com HTML (tanto os browsers quanto os softwares que geram) sempre foram - e ainda são - bem lenientes com HTML inválido e até mesmo mal-formado, e acabam aceitando muita coisa que não deveria. Cabe a nós tomar cuidado para não gerar nada fora do padrão (mesmo que muitas vezes "funcione").

4

O problema não é o lineheight, na verdade, como o CSS está estruturado, line-height: 0; e sobreposto e até desativado mais a frente, o problema real é que p é um elemento de bloco que não adiciona uma linha em branco, sub não pode ter elementos de bloco sem uma linha em branco, simplesmente mudando essa propriedade de p para inline, é resolvido:

.markdown-body sub > p,  .markdown-body sup > p {
  display:inline;
}

E antes que alguém venha me cancelar dizendo que eu estou falando besteira, não é a tag sub, é o css que modificou ela (normalize.css), o GitHub, Medium, Twitter, sites com Bootstrap e similares tem o mesmo problema só copiar:

1

Valeu pela complementação, xafiyom362 bem como por testar os artifícios em outras plataformas. Muito provável que eu deva respeitar a função das tags em vez da plataformas alterarem o CSS como descobriu. Mesmo assim, caso alterem, as receitas que deixaram aqui serão úteis para os devs que entendem desses detalhes da renderização do markdown.

1
Valeu pela ajuda, [kht](https://www.tabnews.com.br/kht). Eu não imaginava a "engenharia" por detrás da renderização do _markdown_. Tanto você com o [xafiyom362](https://www.tabnews.com.br/xafiyom362) especificaram o problema com riqueza de detalhes de maneira que qualquer um agora entende a raiz da problemática. Concordo também que o problema foi meu em utilizar uma _tag_ que foi elaborada para uma finalidade específica e não para alterar tamanho de fonte de texto :)

Pontuei as respostas para que tenham relevância para o algoritmo do Tabnews. Talvez seja útil para outros usuários que enfrentarem a mesma surpresa como foi para mim. Felizmente podemos alterar o CSS no navegador como pontuou, mas acho que seria uma solução local, um trabalho todas as vezes que a página fosse recarregada. Vou seguir os conselhos que vocês deixaram, respeitando a função de cada tag. Pode-se notar que, dentro das tags, os links não são renderizados corretamente, indicando um uso inapropriado.

6

Assim, oo problema é o uso da tag sub está errado (lembre que esse é um editor markdown), leitores markdown usualmente fazem interpretação semântica das tag e a sub é uma tag pensada pra ser inline, note que seu uso semântico não ocorre esse problema: H2O = Água

O que causa essa falha de renderização é o conflito entre <sub> e o <p> gerado pelas linhas em branco entre os textos, retirando o <h6> e não deixando o markdown gerar as tags <p>:

Sem o h6 e com o sub inline: Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.

Por favor, não pontuar
, funciona perfeitamente

Para corrigir é simples, não adicione linhas em branco dendo do sub, assim ele não gera as tags <p>, nesse caso é necessrário trocar ###### por <h6>

Área de rascunho
Esta é uma postagem para fins de teste, não gerando Tabcoins propositalmente como definido nas regras do algoritmo do Tabnews. O conteúdo aqui produzido não tem valor informativo. Este espaço está sendo utilizado apenas para testar novas publicações, sua aparência, antes de serem publicadas definitivamente no portal.Por favor, não pontuar

Adicionar essa regra CSS resolve:

sub > p, sup > p {
        display:inline;
}
1
Valeu pela ajuda, [xafiyom362](https://www.tabnews.com.br/xafiyom362). Sua dica de escrever o texto em uma linha só, sem parágrafos, funciona perfeitamente como pode ser visto neste parágrafo. Tanto você com o [kht](https://www.tabnews.com.br/kht) foram a fundo para entender o problema e, segundo entendi bem, o problema foi meu em utilizar uma _tag_ que foi projetada para um fim específico.

Pontuei bem as respostas para que passem a ter relevância caso outros enfrentem a mesma situação.