Módulo Discussão:Usuário

O conteúdo da página não é suportado noutras línguas.
Adicionar tópico
Origem: Wikipédia, a enciclopédia livre.

Bug: U+200B é exibido como um quadradinho no Opera 12.15(1748)[editar código-fonte]

Caro @Diego Queiroz: Vi que você introduziu40217973]40218017] um código que prefixou o caractere U+200B ao separador de campos. Entretanto, o navegador Opera 12.15(1748) contém um bug que faz com que tal caractere seja exibido como um pequeno quadradinho. Poderia nos esclarecer qual, exatamente, era o bug que estava tentando resolver, ao introduzi-lo? Será que poderia trocar por U+200C ?? Ou, então, adicionar um método ao return txt que retirasse os caracteres adicionais ?? Obrigado pela atenção, --Usien6 D​ C​ E​ F 18h24min de 18 de fevereiro de 2016 (UTC)Responder

@Usien6: Honestamente, não lembro. Mas parece que, sem ele, algum dos parsers do software wiki remove o espaço da esquerda, ou algo do tipo. Notei que vários códigos por aí fazem uso desse workaround, como mw:Module:Section link, en:Module:Anchor/sandbox e en-wiktionary:Module:ja-pron, talvez convém perguntar para eles porque usaram (suponho que o motivo tenha sido o mesmo). Mas se tá escrito que é um Bug, provavelmente é, e talvez até tenha alguma referência disso no Phabricator (meu EU do passado costuma ser muito mais astuto do que meu EU do presente). Quanto à mudança que sugeriu, não sei se seria a mais correta. Embora seja um workaround, me parece que o ZERO WIDTH SPACE é o caractere mais apropriado, de fato. Acho melhor entender porque o Opera está colocando esse "quadradinho" no lugar do caractere. Será que a codificação não está incorreta?
@He7d3r:, tem alguma ideia do motivo de eu ter inserido isso aí? Se não me falha a memória, o HTML produzido pelo Scribunto passa por algum parser antes de ser exibido, e esse parser faz algumas cagadas (como remover espaços onde não devia). Já viu algo sobre isso? --Diego Queiroz (discussão) 22h13min de 29 de fevereiro de 2016 (UTC)Responder
Não me recordo de nada que possa ajudar em relação a isso. Não estaria faltando alguma fonte no sistema, para não aparecer um quadradinho? Já vi quadradinhos aparecerem no Windows quando eu colocava certas setas no sumário de edição... Helder 13h07min de 1 de março de 2016 (UTC)Responder
Olá @Diego Queiroz:@He7d3r: Muito obrigado pela atenção. Vi, há vários meses atrás, um ticket submetido aos desenvolvedores do Opera alertando para esse bug. Andei procurando por ele recentemente, mas não acho mais, em lugar nenhum. De qualquer forma, não está relacionado a fontes, nem a codificações, mas ao próprio Presto. Quando lhe perguntei o motivo original da edição, estava imaginando que o problema estava no interpretador Lua, tal que remover o caractere antes do retorno resolveria o problema atual. Mas pelo que você está dizendo, o defeito se manifesta depois do Lua já ter retornado, tal que a remoção do caractere implicaria na remergência do problema anterior. []s, --Usien6 D​ C​ E​ F 00h52min de 4 de março de 2016 (UTC)Responder
@He7d3r:@Usien6: Fiz uns testes para tentar entender minha intenção com esse código.
O bug é o seguinte: como resultado da execução desse código, ele gera um HTML no formato:
<span>Alguma coisa</span>[separador]<span>Alguma coisa</span>
No entanto, alguns itens ficam ocultos para usuários sem privilégios. Esses itens ficam com a estrutura:
<span>Alguma coisa</span><span class="sysop-show">[separador]<span>Alguma coisa</span></span>
O que ocorre é que, por algum bug no software, se o [separador] começa com espaço, ele altera a posição do espaço e renderiza a página como:
<span>Alguma coisa</span>[espaço]<span class="sysop-show">[separador s/ espaço]<span>Alguma coisa</span></span>
Assim, o truque de colocar o &#8203; no começo do separador era apenas de evitar que o primeiro caractere fosse um espaço e impedir que o bug ocorresse (incluir outros caracteres ou &#32; no lugar do espaço não resolve o problema). O resultado devido a esse bug não é nada sério: caso tiremos o &#8203;, ele apenas vai colocar um espaço a mais antes do fecha-parenteses se o usuário não for administrador, ou seja, é apenas um detalhe estético. --Diego Queiroz (discussão) 04h32min de 11 de março de 2016 (UTC)Responder

────────── Caro @Diego Queiroz: Entendo... Talvez o mais apropriado seria utilizar o elemento ul.hlist, não acha? Pensei em algo assim:

  1. Calcular um resumo alfanumérico do {{{separador}}};
  2. emitir um elemento <style type="text/css"> .hlist.usuario-{{{resumo}}} li::after{ content: "{{{separador}}}" !important; } </style>;
  3. abrir um elemento <ul class="hlist usuario-{{{resumo}}}">;
  4. emitir os <li>...</li> e os <li class="sysop-show">...</li> normalmente; e,
  5. encerrar com </ul>.

O que acha? --Usien6 D​ C​ E​ F 15h59min de 11 de março de 2016 (UTC)Responder

@Usien6: Desculpe a demora para responder, to um pouco distante da Wiki ultimamente. Eu não sou perito em CSS, mas me parece uma boa ideia, só precisa saber se a Wiki dá suporte a esse tipo de construção. Sua ideia sobre o hash é interessante, mas acho que a unicidade das classes não é um problema. O problema mesmo é que não é possível utilizar a tag <style>. Você saberia elaborar um outro exemplo sem usar ela? Inspirado na sua ideia, creio que a melhor alternativa seja utilizar o Horizontal lists por padrão. Esse CSS já está embutido no nosso MediaWiki:Common.css. --Diego Queiroz (discussão) 03h59min de 29 de março de 2016 (UTC)Responder
Caro @Diego Queiroz: É verdade, havia me esquecido de que <style> seria interpretado como literal de texto pelo MediaWiki. Você acha que é mesmo relevante permitir a escolha de separadores? Se sim, podemos solicitar sejam individualmente adicionados ao Common.css. Se não, podemos pular diretamente para o .hlist. Ou seria melhor deixar tudo como está? O que acha? Att --Usien6 D​ C​ E​ F 17h42min de 29 de março de 2016 (UTC)Responder
Na verdade não acho relevante manter isso não. Só não pude conferir ainda se o recurso é de fato utilizado, ou não. Mas se eu coloquei, creio que esteja sendo utilizado em algum lugar. Precisa dar uma olhada nos afluentes... --Diego Queiroz (discussão) 22h24min de 29 de março de 2016 (UTC)Responder
Dei uma olhada agora, ela é utilizada nas Predefinições de Usuário. Com isso, creio que seja preciso manter elas. Não arriscaria mudar, pois afetaria muitas páginas e vai atrair uma manada de usuários reclamando.  :/ --Diego Queiroz (discussão) 23h45min de 29 de março de 2016 (UTC)Responder
Fiz uma versão que utiliza as duas formas conforme a necessidade: com <span> e outra com <ul><li>, infelizmente a segunda forma não deu muito certo. Quando uso o <ul><li> ele encerra o parágrafo anterior e inicia um novo parágrafo. Não consegui fazer o texto ficar na mesma linha. --Diego Queiroz (discussão) 17h55min de 30 de março de 2016 (UTC)Responder