Purtroppo ho ancora il problema. Ho provato a cambiare l’ordine delle espressioni regolari nelle impostazioni del tema, ma l’elemento “più breve” viene comunque attivato per primo.
Ciao @jrgong! Sei riuscito a fare caricamenti in massa utilizzando un file CSV? Sto cercando di capire come fare, ma non sono sicuro di dove cliccare. Non sono uno sviluppatore, a proposito ![]()
Sto usando questo ![]()
https://meta.discourse.org/t/discourse-linkify-google-sheets/163985/4
Anche noi. Osserviamo che:
discourse,https://discourse.org
discourse meta,https://meta.discourse.org
meta discourse,https://meta.discourse.org
Restituisce:
discourse
discourse meta
meta discourse
L’ordine in cui questi elementi appaiono nelle Impostazioni del Tema (e presumibilmente nel database sottostante) non sembra fare differenza. Piuttosto, se estendi una parola già convertita in link, rileva la differenza. Se aggiungi una parola davanti, non succede nulla.
Hmm, è un po’ strano. Hai ragione, l’ordine nelle impostazioni non dovrebbe contare, perché ordiniamo le parole in base alla lunghezza:
Non sono sicuro di quanto tempo valga la pena investire in questo, dato che, per quanto ne so, questa funzionalità sta venendo migrata nel core di Discourse.
Ciao,
Ho appena notato che le parole con link non hanno quel contatore dei clic presente negli altri link (che, a mio avviso, sarebbe una bella funzionalità). È intenzionale o è solo un bug?
È possibile limitarlo a categorie/tag specifici, in modo che un post debba rientrare in una categoria o essere taggato per generare i link?
È possibile specificare un titolo per il link? Quindi “ghost” diventa “ghost (vedi avvertenza!)”?
Forse usando la sintassi dei link markdown:
ghost,[ghost (vedi avvertenza!)](https://warning.example.com)
O specificando il titolo come terzo parametro:
ghost,https://warning.example.com,ghost (vedi avvertenza!)
@Paracelsus il contatore dei clic non è supportato in questo tema, scusa.
Non è proprio un bug: il tema è solo un codice JavaScript in esecuzione nel tuo browser. Non comunica con il server, quindi non c’è modo di memorizzare il numero di clic.
Ora in Discourse, sotto Sostituisci parole:
/admin/customize/watched_words/action/replace
Se inserisco solo la parola e poi metto l’URL senza alcun markdown, funziona! Quindi questo è il modo per farlo funzionare senza il componente del tema autolink.
(Mentre nel componente del tema inserisci la parola/frase, poi una virgola, quindi il link da utilizzare, in Sostituisci parole osservate inserisci la parola in un campo e SOLO il link in un altro… non provare a inserire markdown nella stringa di sostituzione come ho fatto inizialmente.)
Ehi, questo è un ottimo componente! Grazie per averlo realizzato.
Ma c’è un piccolo problema, sembra che la linkificazione richieda uno spazio dopo la parola specifica, quindi il componente non funziona bene nelle istanze Discourse in cinese e giapponese (forse anche coreano? Non conosco questa lingua).
Sono madrelingua cinese e parlo anche giapponese. In cinese, capita che le persone usino parole straniere fisse, come Apple, Office, BB (Blackboard), DNA, ecc., la cui traduzione è raramente usata nella lingua familiare. E di solito non aggiungiamo uno spazio prima/dopo questo tipo di parole quando sono circondate da caratteri cinesi, nella scrittura informale.
Questo è un esempio:
你会用Office吗?
Sai usare la suite Office?
È simile in giapponese.
革新に満ちたAppleの世界へようこそ。(copiato dal sito ufficiale di Apple Japan)
Benvenuti nel mondo di Apple, pieno di rivoluzioni.
Sono consapevole che potrebbe essere molto lavoro adattare questo componente per queste due lingue, poiché ciò potrebbe portare a linkificazioni involontarie in lingue che usano l’alfabeto. Quindi, sto solo segnalando l’esistenza di una piccola imperfezione. Apprezzo ancora questa grande idea di creare questo componente. ![]()
Questo funziona benissimo. È possibile eseguirlo retroattivamente, o devi cercare manualmente tutti i link e cambiarli?
Dovresti essere in grado di rifare quei post. Puoi fare clic sulla chiave inglese e ricompilare l’HTML. Quando vedi che funziona, puoi cercare come rifare i post corrispondenti con il task rake.
In realtà, questo tema crea link ai post dinamicamente quando vengono caricati nel browser, quindi non c’è bisogno di fare nulla. ![]()
Oh. Molto bello. Non me ne ero reso conto, ma ha senso.
Il nostro glossario del software di genealogia FOSS era troppo esteso per un Post o un Link.
Se avessimo semplicemente linkato ogni termine del glossario, ogni post sarebbe annegato in un mare di link blu. Gli utenti probabilmente smetterebbero di cliccare sui link. E volevamo una traccia di controllo per il glossario.
Quindi ho linkato “Glossario Gramps” a quell’articolo nel nostro wiki basato su MediaWiki. E ora uso un’annotazione come “(vedi [termine del glossario] nel Glossario Gramps)”.
(Abbiamo un secondo Glossario di Genealogia per la terminologia generica alla materia della Genealogia piuttosto che specifica per il nostro software.)
È stato fatto qualcosa per consentire i pipe?
Attualmente sto usando questo come soluzione:

Inoltre, c’è un modo per escludere un mondo dal diventare un link quando si trova all’interno di un antenato di una classe esclusa?
Sto costruendo un forum con una categoria Documentazione e non voglio che le parole vengano trasformate in link perché sarebbe ridondante: le parole in altre categorie verranno trasformate in link e rimanderanno agli argomenti di questa categoria di documentazione.
Inoltre, le parole trasformate in link si aprono in una nuova finestra.
Quindi, questo non ha funzionato:

Ecco un esempio del problema che sto affrontando. Questa è la parte di un testo all’interno di un argomento di documentazione.
Se clicco su 22° halo, si aprirà una pagina che rimanda a… La stessa pagina, nello stesso punto.
Posso escludere parole nei titoli, soprattutto perché contiene un indice, ma i paragrafi seguenti non hanno una classe specifica. Sono paragrafi normali.
Forse l’impostazione classe esclusa potrebbe accettare selettori CSS?
Ad esempio, d-toc-cooked \u003e *
modifica: Inoltre, non riesco a capire perché questo non funzioni dato che la mia parola è un figlio diretto di una classe esclusa:
![]()
Il “22° Halo” è ancora linkificato:
<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>
È perché il codice HTML dell’indice potrebbe essere generato dopo la “linkificazione”?
Sì, probabilmente è questo il problema, entrambi sono componenti JavaScript quindi hai una race condition e il risultato dipenderà da quale dei due viene eseguito per primo.
Ho aggiunto una classe nell’allowlist HTML quindi ho aggirato il problema.
Tuttavia, la possibilità di avere un pulsante con attributi esclusi potrebbe consentire maggiore flessibilità per impedire la linkificazione delle parole, utilizzando l’attributo HTML data-(qualsiasi cosa) integrato poiché è consentito per impostazione predefinita in Discourse.
Esempio:
<span> text </span> → <span> text </span>
Una pull request verrebbe accettata se riuscissi ad aggiungerla al componente del tema?
Questo impedisce purtroppo il collegamento di parole che includono esplicitamente uno di questi caratteri (specialmente ., che è utile per collegare abbreviazioni come ID.1 o id2.5).
Questo è forse meglio risolverlo nel core, ma nel frattempo ecco una PR che risolve i problemi di cui sopra:
https://github.com/discourse/discourse-linkify-words/pull/21
Regola regex di esempio (corrisponderà a id1.1 a id10.100 (incluse le variazioni 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

