Hashtags estão passando por uma #mudança

O Discourse tem suportado o link para categorias (#announcements) e tags (#release-notes) há muito tempo usando hashtags (#). Com a introdução do Discourse Chat, queríamos ser capazes de vincular a canais de chat com hashtags, o que exigiu uma reformulação de como o sistema funciona para permitir que os canais sejam sugeridos com autocompletar e também para cozinhar em posts e mensagens de chat. Também decidimos aproveitar o tempo para reformular o design do menu de autocompletar e das hashtags cozidas.

Um resumo das alterações incluídas nesta reformulação:

  • A capacidade de pesquisar canais de chat se você tiver o chat habilitado
  • Os resultados da pesquisa de hashtags priorizam correspondências exatas com base no slug e, dependendo se você os está usando em um post ou em uma mensagem de chat, priorizamos diferentes tipos de resultados (por exemplo, categorias estão no topo em um post, mas canais estão no topo no chat)
  • Um ícone distinto é mostrado para cada resultado
  • Um novo estilo para hashtags cozidas que incluem o ícone distinto

Os novos resultados de autocompletar:

O novo estilo cozido para autocompletar de hashtags, que corresponde de perto ao estilo @mention.

Você pode optar por usar esta nova versão de autocompletar e cozimento de hashtags habilitando a configuração do site enable_experimental_hashtag_autocomplete em seu site Discourse:

Esperamos torná-lo o padrão no próximo ano, enquanto isso, isso ainda é considerado um recurso experimental, então ainda há algumas coisas para corrigir e refinar.

Este recurso agora está habilitado no Discourse Meta também :sparkles:

42 curtidas

Um exemplo dessas novas hashtags na Meta. Por que não conferir Announcements? Ou ler algumas release-notes!

12 curtidas

23 posts foram divididos em um novo tópico: Adicionar estilo de cor e subcategoria a menções de categoria e chat

Aqui está um exemplo rápido de como é vincular a um canal de chat a partir de uma postagem: #general::channel

E aqui está um exemplo rápido de como é vincular a um canal de chat a partir de outro canal de chat:

7 curtidas

Uma postagem foi dividida em um novo tópico: Alterar hashtags existentes para o novo design

Uma atualização aqui – agora tornamos isso o padrão para todos os sites, após fazermos algumas alterações em como as hashtags são processadas. Agora também mostramos cores para os ícones, incluindo a estilização original da subcategoria :rainbow: :\n\n#support Feature #general::channel Announcements > Blog \n\nhttps://github.com/discourse/discourse/pull/21788\n\nEm breve, o código antigo que referencia o sistema de hashtags anterior também será excluído.

16 curtidas

Isso parece muito bom. Mas como funciona para pessoas com deficiência visual? Acho que

accessibility General #general::channel #documentation:devs

pode estar faltando rótulos aria… Aqui está a prévia HTML correspondente.

<p dir="ltr">
<a class="hashtag-cooked" href="/tag/accessibility" data-type="tag" data-id="109" data-slug="accessibility" tabindex="-1">
  <svg class="fa d-icon d-icon-tag svg-icon hashtag-color--tag-109 svg-string" xmlns="http://www.w3.org/2000/svg">
    <use href="#tag">
    </use>
  </svg>
  <span>accessibility</span>
</a> 
<a class="hashtag-cooked" href="/c/general/124" data-type="category" data-id="124" data-slug="general" tabindex="-1">
  <span class="hashtag-category-badge hashtag-color--category-124">
  </span>  
  <span>General</span>
</a> 
<a class="hashtag-cooked" href="/chat/c/general/508" data-type="channel" data-id="508" data-slug="general" tabindex="-1">
  <svg class="fa d-icon d-icon-comment svg-icon hashtag-missing svg-string" xmlns="http://www.w3.org/2000/svg">
    <use href="#comment">
    </use>
  </svg>
  <span>general</span>
</a> 
<a class="hashtag-cooked" href="/c/documentation/devs/56" data-type="category" data-id="56" data-slug="devs" tabindex="-1">
  <span class="hashtag-category-badge hashtag-color--category-56">
  </span>
  <span>developers</span>
</a>
</p>
7 curtidas

Obrigado por notar isso, este é um ótimo ponto. No mínimo, alguns aria-labels em cada hashtag são necessários. Tentarei fazer um commit para isso esta semana.

7 curtidas

Tópicos antigos não usarão o novo formato para tags e categorias até que o HTML seja reconstruído. Existe uma maneira segura de reconstruir todos os tópicos para tornar a interface do usuário consistente? Talvez com rake?

Algo assim? Não testei!

./launcher enter app
rake posts:rebake
2 curtidas

Acho que este é mais direcionado:

Não tenho certeza sobre a parte bundle exec, porém. Não sei se isso é necessário para um site ativo?

5 curtidas

Sem bundle exec, parece funcionar em um site de produção :slight_smile:

root@Canapin-app:/var/www/discourse# rake hashtags:mark_old_format_for_rebake
Finding posts matching old format, this could take some time...
[!] You are about to mark 0 posts containing hashtags in the old format to rebake. [CTRL+c] to cancel, [ENTER] to continue

Done, rebakes will happen when periodical updates job runs.
6 curtidas