Adicione suporte para itálico e negrito em nível de bloco no BBCode

Considere este texto:

[i]
Itálico - Primeira linha
Itálico - Segunda linha
[/i]

Ele é renderizado como:

Itálico - Primeira linha
Itálico - Segunda linha

Agora considere o mesmo texto com uma linha em branco:

[i]
Itálico - Primeira linha

Itálico - Segunda linha
[/i]

Ele é renderizado como:
[i]
Itálico - Primeira linha

Itálico - Segunda linha
[/i]

(o BBCode falha)

Esse é o comportamento esperado?

1 curtida

Não acho que [i] seja destinado a marcação de várias linhas? Em outras palavras, faça o seguinte:

[i]Itálico - Primeira linha[/i]

[i]Itálico - Segunda linha[/i]
3 curtidas

AFAIK, o BBCode não é totalmente especificado para cobrir isso, mas todos os exemplos relevantes de BBCode estão em linhas únicas. Portanto, é improvável que seja um bug.

A maneira normal de habilitar a marcação multilinha é adicionar quebras de HTML <br/> para tornar as linhas extras explícitas entre as tags. Isso também funciona aqui:

bbcode [i] itálico com <br/> <br/> quebra de linha html [/i] exemplo.

bbcode itálico com

quebra de linha html
exemplo.

2 curtidas

@Remah, adicionar um &nbsp; também funciona:

[i]
Itálico - Primeira linha
&nbsp;
Itálico - Segunda linha
[/i]

Renderiza como:

Itálico - Primeira linha
 
Itálico - Segunda linha

@codinghorror, acho que você está certo, já que a seguinte marcação não apresenta o problema:

[code]
Bloco de código - Primeira linha

Bloco de código - Segunda linha
[/code]
2 curtidas

Sim, o bloco bbcode em itálico não é implementado como multilinha. Este é o comportamento pretendido atualmente. O mesmo vale para negrito. O motivo pelo qual fiz isso é que <i> e <b> também são tratados como tags em linha versus em bloco em HTML.

Estou aberto a expandir esse caso de uso se houver solicitações suficientes para isso, mas, como está, está se comportando conforme projetado.

3 curtidas

Escrever múltiplos parágrafos de texto em itálico ou negrito sem se dar ao trabalho de aplicar a tag de formatação em cada parágrafo é um dos tipos de postagens em fóruns com baixo esforço e alta irritação que, na minha opinião, não deveriam ser incentivados.

7 curtidas