Infelizmente, ainda tenho o problema. Tentei alterar a ordem das expressões regulares nas configurações do tema, mas a entrada “mais curta” ainda é acionada primeiro.
Olá @jrgong! Você conseguiu fazer uploads em massa usando um arquivo CSV? Estou tentando descobrir, mas não tenho certeza de onde clicar. Sou leigo em desenvolvimento, aliás ![]()
Estou usando isto ![]()
https://meta.discourse.org/t/discourse-linkify-google-sheets/163985/4
Nós também. Observo que:
discourse,https://discourse.org
discourse meta,https://meta.discourse.org
meta discourse,https://meta.discourse.org
Nos dá:
discourse
discourse meta
meta discourse
A ordem em que esses itens estão nas Configurações do Tema (e presumivelmente no banco de dados subjacente) não parece fazer diferença. Em vez disso, se você estender uma palavra já linkificada, ele detectará a diferença. Se você adicionar uma palavra antes, não detecta.
Hmm, isso é um pouco estranho. Você tem razão, a ordem nas configurações não deveria importar, porque nós ordenamos as palavras por tamanho:
Não tenho certeza de quanto tempo deveria ser investido nisso, já que, pelo que sei, esse recurso está sendo portado para o núcleo do Discourse.
Oi,
Acabei de perceber que as palavras com link não têm aquele contador de cliques que os outros links têm (o que seria um recurso legal, na minha opinião). Isso é intencional ou é apenas um bug?
Isso pode ser restrito a categorias/tags específicas, de modo que uma postagem precise estar na categoria ou marcada com a tag para gerar links?
É possível especificar um título para o link? Assim, “ghost” se tornaria “ghost (veja o aviso!)”?
Possivelmente usando a sintaxe de link do Markdown:
ghost,[ghost (veja o aviso!)](https://warning.example.com)
Ou especificando o título como um terceiro parâmetro:
ghost,https://warning.example.com,ghost (veja o aviso!)
@Paracelsus o contador de cliques não é suportado neste tema, desculpe.
Não é exatamente um bug, o tema é apenas um código JavaScript executando no seu navegador. Ele não se comunica com o servidor, então não há como armazenar o número de cliques.
Agora, no Discourse, em Substituir palavras:
/admin/customize/watched_words/action/replace
Se eu apenas digitar a palavra e depois inserir o URL sem nenhuma formatação Markdown, funciona! Então, é assim que fazê-lo funcionar sem o componente de tema autolink.
(Enquanto no componente de tema você coloca a palavra/frase, seguida de uma vírgula e depois o link a ser usado, na substituição de palavras vigiadas você insere a palavra em um campo e APENAS o link em outro… não tente inserir Markdown na string de substituição, como eu tentei originalmente.)
Ei, este é um ótimo componente! Obrigado por tê-lo feito.
Mas há um pequeno problema: parece que a linkificação requer um espaço após a palavra específica, então o componente não está funcionando bem em instâncias do Discourse em chinês e japonês (talvez também em coreano? Eu não conheço essa língua).
Sou falante nativo de chinês e também falo japonês. Em chinês, acontece que as pessoas usam algumas palavras emprestadas fixas em letras, como Apple, Office, BB (Blackboard), DNA, etc., cuja tradução raramente é usada na língua familiar. E geralmente não adicionamos um espaço antes/depois desse tipo de palavra quando ela está cercada por chinês, na escrita informal.
Este é um exemplo:
你会用Office吗?
Você sabe como usar o pacote Office?
É semelhante em japonês.
革新に満ちたAppleの世界へようこそ。(copiado do site oficial da Apple Japão)
Bem-vindo ao mundo da Apple, que é cheio de revoluções.
Estou ciente de que pode ser muito trabalho adaptar este componente para essas duas línguas, pois isso pode levar a linkificações não intencionais em línguas que usam o alfabeto. Então, estou apenas apontando a existência de uma pequena imperfeição. Agradeço novamente esta ótima ideia de criar este componente. ![]()
Isso funciona muito bem. É possível executá-lo retroativamente, ou você precisa procurar todos os links manualmente e alterá-los?
Você deve ser capaz de reassarar essas postagens. Você pode clicar na chave inglesa e reconstruir o HTML. Quando você vir que funciona, você pode procurar por como reassarar tarefas rake de postagens correspondentes.
Na verdade, este tema cria links dinamicamente para posts quando eles são carregados no navegador, então não é preciso fazer nada. ![]()
Ah. Muito legal. Eu não tinha percebido, mas faz sentido.
Nosso glossário de software de genealogia FOSS era muito extenso para uma Postagem ou Linkificação.
Se tivéssemos apenas linkificado cada termo do Glossário, então cada postagem se afogaria em um mar de links azuis. Os usuários provavelmente parariam de clicar nos links. E queríamos uma trilha de auditoria para o Glossário.
Então, eu linkifiquei “Glossário Gramps” para aquele artigo em nosso wiki com tecnologia MediaWiki. E agora uso uma anotação como “(ver [termo do glossário] no Glossário Gramps)”.
(Temos um 2º Glossário de Genealogia para terminologia genérica ao assunto Genealogia em vez de específica para nosso software.)
Algo foi feito para permitir pipes?
Atualmente estou usando isso como uma solução alternativa:

Além disso, existe uma maneira de excluir um mundo de ser linkificado quando ele está dentro de um “neto-neto-[…]filho” de uma classe excluída?
Estou construindo um fórum com uma categoria de Documentação e não quero palavras linkificadas nela porque seria redundante: palavras em outras categorias serão linkificadas e apontarão para tópicos nesta categoria de documentação.
Além disso, palavras linkificadas abrem em uma nova janela.
Portanto, isso não funcionou:

Aqui está um exemplo do problema que estou enfrentando. Esta é a parte de um texto dentro de um tópico de documentação.
Se eu clicar em 22° halo, ele abrirá uma página que leva para… A mesma página, no mesmo lugar.
Posso excluir palavras em títulos, especialmente porque ele contém uma tabela de conteúdo, mas os parágrafos seguintes não têm nenhuma classe específica. São parágrafos normais.
Talvez a configuração de classe excluída possa aceitar seletores CSS?
Por exemplo, d-toc-cooked > *
editar: Também não consigo entender por que isso não funciona, já que minha palavra é um filho direto de uma classe excluída:
![]()
O “22° Halo” ainda está linkificado:
<h3 id="toc-h3-22-halo" data-d-toc="toc-h3-22-halo" class="d-toc-post-heading">
<a name="h-22-halo-7" class="anchor" href="#h-22-halo-7"></a>
<a href="https://discourse.canapin.com/t/ice-halos-information-and-list/28#h-22-halo-7" rel="nofollow" target="_blank" class="linkify-word no-track-link">22° Halo</a>
</h3>
É porque o código HTML da tabela de conteúdo pode ser gerado depois da “linkificação”?
Sim, provavelmente é esse o problema aqui, ambos são componentes JavaScript, então você tem uma condição de corrida e o resultado dependerá de qual deles é executado primeiro.
Eu adicionei uma classe na lista de permissões do HTML para contornar o problema.
No entanto, poder ter um botão com atributos excluídos poderia permitir mais flexibilidade para evitar que palavras sejam transformadas em links, usando o atributo HTML data-(qualquer coisa) integrado, já que ele é permitido por padrão no Discourse.
Exemplo:
<span> text </span> → <span> text </span>
Um pull request seria aceito se eu conseguisse adicionar isso ao componente de tema?
Isso, infelizmente, impede a criação de links para palavras que incluem explicitamente qualquer um desses caracteres (especialmente ., que é útil para vincular abreviações como ID.1 ou id2.5).
Isso talvez seja melhor corrigido no núcleo, mas por enquanto, aqui está um PR que corrige os problemas acima:
https://github.com/discourse/discourse-linkify-words/pull/21
Regra de regex de exemplo (corresponderá a id1.1 a id10.100 (incluindo variações id m.n, IDm.n e ID m.n))
/(ID¦id)\\s?(([1-9]¦10)\\.([1-9]¦[1-9][0-9]¦100))/, https://example.com/id$2

