URLs coladas processam + caracteres incorretamente quando são usadas (corretamente) como espaços

Continuando a discussão de Pasted URLs in Rich Text Editor improperly escape tilde character:

Reproduzindo:

Eu inseri a URL a seguir acima colando-a no editor:
https://frinklang.org/fsp/solve2.fsp?equations=a+%3D+3+b+%2B+c&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458+m+s%5E-1&resultAs=

A resposta correta ao clicar no link seria:

Mas a versão renderizada pelo Discourse dessa URL é:
https://frinklang.org/fsp/solve2.fsp?equations=a%2B%3D%2B3%2Bb%2B%2B%2Bc&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458%2Bm%2Bs%5E-1&resultAs=

Note o %2B substituindo o caractere +. Isso falha e produz o seguinte resultado:

Testando a ferramenta de hiperlink:

Discourse-Made-Hyperlink

URL renderizada pela Ferramenta de Link do Discourse:
https://frinklang.org/fsp/solve2.fsp?equations=a%2B%3D%2B3%2Bb%2B%2B%2Bc&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458%2Bm%2Bs%5E-1&resultAs=

Isso também falha, parecendo com isto:

Eu não tenho 100% de certeza do que está dando errado, mas acho que são os caracteres +, que deveriam ser espaços, sendo processados incorretamente como um literal +.

Usar um + para um espaço em uma URL está em conformidade com o padrão, então isso pode estar afetando outros sites/sistemas que usam o caractere + dessa forma.

1 curtida

Outras questões que pensei estarem relacionadas, mas agora acho que não:

https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/6

Sim, este é um problema complicado, acho que é apenas um bug do oneboxer e do frontend:

https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on

vs:

<https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on>

vs:

https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on

Eu tenho uma correção aqui, mas como você pode ver nos Tópicos relacionados, isso é MUITO COMPLICADO :tm:, ao longo dos anos houve tantos bugs nesta área.

1 curtida

Obrigado pela atenção!

Você pode confiar em Alan, o criador da linguagem Frink, para expor qualquer erro, sendo 100% compatível com os padrões. É o que ele faz.

(A propósito, se você precisar de correção de unidades extrema para qualquer aplicação científica ou de engenharia, confira o Frink.)

1 curtida