Copia componente tema Codeblocks

:warning: Questo componente del tema è ora deprecato a favore di Copia il contenuto del blocco di codice negli appunti, una funzionalità principale di Discourse.

:sun_with_face: Anteprima su Theme Creator
:computer: Repository Git: https://github.com/discourse/discourse-copy-codeblocks
:bulb: Come si installa un tema o un componente del tema?

Questo componente del tema aggiunge un pulsante di copia ai blocchi di codice all’interno dei post di Discourse — perfetto per le comunità che condividono esempi di codice o articoli della knowledge base che richiedono la copia del testo.

Su desktop, il pulsante di copia appare al passaggio del mouse sul blocco.

Su mobile, il pulsante di copia è sempre visibile ma sposta il codice nel blocco verso il basso per evitare di oscurare la prima riga di codice se troppo lunga.

Tieni presente che questo funziona solo per i blocchi di codice generati da \ \\, e non per i blocchi di codice in linea.

Questo è un blocco di codice.
Copia questo testo.

Questo è un blocco di codice in linea. La copia non funziona qui.

Un grande ringraziamento a @j.jaffeux, che ha svolto la maggior parte dello sviluppo iniziale di questa funzionalità.

24 Mi Piace

Qual è la differenza tra questo e https://meta.discourse.org/t/copy-option-for-code-blocks-in-discourse/60961?u=falco?

7 Mi Piace

Diverse cose:

  • non include una libreria completa per gli appunti
  • non dipende da jQuery
  • non perde gli ascoltatori di eventi
  • non si basa su eventi multipli
  • utilizza standard di codifica aggiornati
  • non presenta il bug delle virgolette

Non sono sicuro che funzioni correttamente anche su dispositivi mobili.

15 Mi Piace

Fantastico!!

Mi chiedevo se siamo aperti a sostituire il testo localizzato “copia”/“copiato” con delle icone? Magari l’icona copia per “copia” e l’icona spunta per “copiato”?

3 Mi Piace

Sono disponibile a aggiungere un’impostazione al componente. Il motivo per cui ho optato per il testo localizzato è che rende chiaro ciò che sta accadendo; inoltre, il testo può avere un’altezza inferiore rimanendo comunque leggibile. L’estetica mi è sembrata più adatta al caso d’uso.

7 Mi Piace

Sembra che dovremmo rimuovere o deprecare l’uno o l’altro e consolidare gli sforzi? :thinking:

7 Mi Piace

Minore, il ritardo della copia è troppo breve sul mio iPhone; il testo dovrebbe rimanere ‘copiato’ per circa 3 secondi prima di tornare indietro.

Comunque, l’aspetto è buono :+1:

8 Mi Piace

Modificato qui:

https://github.com/discourse/discourse-copy-codeblocks/commit/d1af36a4a5197dab4ca1dd62a05930088882de45

Sono stati inoltre risolti alcuni bug relativi a versioni più vecchie di Discourse che non dispongono di @ember/runloop e Promise dalla libreria rsvp. (Grazie a @jomaxro per le segnalazioni in merito)

7 Mi Piace

Mi dispiace, ma un :heart: non basta stavolta.

Fantastico! È incredibile. Questo, combinato con Placeholder Forms, è davvero figo.

Cosa ho appena fatto con esso

sfdisk -d /dev/=gooddev= | sfdisk /dev/=newdev=
mdadm --manage /dev/md1 --add /dev/=newdev=
mdadm --detail /dev/md1

Guarda come funziona!

while true; do mdadm --detail /dev/md1|grep "Rebuild Status" ; sleep 10;done

Ottieni il tempo di accensione per tutti i dischi

for x in a b c d ; do smartctl -a /dev/sd$x|grep Power_On; done
12 Mi Piace

Mi piace molto! :heart_eyes: Ma il pulsante di copia può essere visibile solo al tocco su mobile? Sono un po’ infastidito dalla costante perdita di spazio sullo schermo su mobile, una riga in più per ogni blocco di codice:

Però poi mi rendo conto che

  • i blocchi di codice non sono così comuni
  • dato che è un’opzione attivabile dall’utente, la abiliterebbe solo sui siti dove copiare i blocchi di codice è effettivamente un’attività comune

… detto questo.. le probabilità che un qualsiasi blocco di codice venga copiato su mobile sono trascurabili, quindi sento che il rapporto tra interfaccia e utilizzo non è equilibrato qui, e preferirei un’azione al tocco per mobile?

Non urgente.

3 Mi Piace

Sì, richiesta assolutamente ragionevole :+1: Condivido anch’io questa preoccupazione, troveremo una soluzione.

1 Mi Piace

Anche questo sarebbe preferibile su mobile, penso. L’allineamento non è perfetto, ma il concetto è chiaro:

(Anche se sovrappone del testo, ecc., non sono sicuro che renda tutto più difficile o più facile rispetto alla visualizzazione al tocco? :thinking:)

All’inizio lo avevamo già, ma si sovrapponeva al testo senza essere visibile. Mi piace l’idea di renderlo visibile al tocco. Ci darò un’occhiata.

1 Mi Piace

Su mobile è un compromesso molto migliore, decisamente. Su laptop/desktop/tablet, lo spazio aggiuntivo occupato è assolutamente accettabile.

1 Mi Piace

Ciao,

Mi piacerebbe molto utilizzare questa funzionalità, ma non appena l’ho attivata per il mio tema Grey Amber, il sito è diventato lento e talvolta non risponde, finché non la disattivo.

Qualcuno ha riscontrato questo comportamento, o potrebbe essere che l’attivazione di questa funzionalità sovraccarichi così tanto il VPS?

Il sito è composto per il 99,9% da righe di codice singole e speravo di poterle convertire in blocchi di codice, quindi non dovrebbe tentare di recuperare nulla per convertire il codice esistente. O forse sì?

Devo concedergli del tempo per stabilizzarsi? Continuo a vedere il sito bloccarsi temporaneamente e, quando a volte una pagina riesce a caricarsi, appare un messaggio di errore con l’invito a riprovare tipico di Discourse.

Grazie in anticipo.

2 Mi Piace

Wow, sembra davvero un bug serio!

1 Mi Piace

Bug minore: il testo “copia” può apparire in una citazione. (Molto meno grave del post precedente.)

Il button.copy-cmd deve essere escluso dalla citazione. Applicare user-select: none nel CSS risolve Ctrl-C ma non la funzionalità di citazione.

3 Mi Piace

Hai un link al tuo sito? Sembra molto strano che un tema possa causare questo. Quanti blocchi di codice hai su una pagina?

Quindi ho apportato diverse modifiche qui. Dato che i nostri problemi erano:

  • spazio sullo schermo su mobile
  • bug di copia testo sulla citazione
  • e abbiamo avuto richieste di avere un’icona invece del testo

La soluzione ovvia che risolve tutto… era usare un’icona.

Su mobile ora è accettabile averla a destra, dato che occupa meno spazio e possiamo semplicemente aggiungere un po’ di padding per il testo:

Solo un piccolo fastidio: nelle prime linee molto lunghe sarà nascosta dietro il pulsante, ma penso sia accettabile dato che puoi scorrere:

E su Desktop funzionerà come prima, senza il bug della citazione:

Per quanto riguarda il possibile bug di prestazioni, ho provato una pagina con dozzine di blocchi di codice e non ho riscontrato alcun problema, quindi avrò bisogno di una riproduzione prima di poter fare qualcosa @lcestou per favore

Prova il nuovo blocco di codice qui:

rsync -a file.txt file_backup.txt
rsync -a /var/www/public_html/ /var/www/public_html_backup/
7 Mi Piace

Questa funzionalità è ora integrata nel core di Discourse :tada:

Di conseguenza, questo componente del tema è ora OBSOLETO. Funzionerà ancora per le versioni più vecchie di Discourse, ma non riceverà più aggiornamenti.

Ho aggiornato il primo messaggio per riflettere queste informazioni.

5 Mi Piace