Snapblocks

:information_source: Riepilogo Consenti agli utenti di utilizzare snapblocks nei loro post.
:hammer_and_wrench: Link al repository GitHub - snap-blocks/snapblocks-discourse: snapblocks discourse plugin · GitHub
:open_book: Guida all’installazione Come installare i plugin in Discourse

Funzionalità

Snapblocks è un fork di scratchblocks che permette agli utenti di convertire il testo in immagini di script Snap!. Questo plugin per Discourse consente agli utenti di utilizzare snapblocks nei propri post.

Puoi creare snapblocks in un post scrivendo il codice snapblocks all’interno dei tag bbcode [snapblocks][/snapblocks]. Ad esempio:

[snapblocks]
move (10) steps
[/snapblocks]

In alternativa, puoi utilizzare [scratchblocks][/scratchblocks] come alias, sebbene possa essere disabilitato.

Puoi anche usare [sb][/sb] per aggiungere codice snapblocks in linea.

Usa il blocco [sb]move (10) steps[/sb] per avanzare.

Opzioni

Sono disponibili alcune impostazioni per modificare il rendering degli snapblocks.

  • Stile dei blocchi
  • Scala dei blocchi
  • Colorazione a strisce
  • A capo dei blocchi
  • Mostra spazi
  • Cappelli di Babbo Natale

Molte opzioni possono essere utilizzate anche negli snippet di snapblocks.

[snapblocks blockStyle="snap-flat" wrap="true" wrapSize=100 zebra="true" showSpaces="false" santa="true"]
when flag clicked
if <[] = []> {
  forever {
    run ({} @addInput) with inputs [Hello world] @delInput @verticalEllipsis @addInput
  }
}
[/snapblocks]

Puoi anche impostare lo stile dei blocchi utilizzando il parametro predefinito.

[snapblocks="snap-flat"]
move (10) steps
[/snapblocks]

Configurazione

Nome Descrizione
Stile dei blocchi Lo stile predefinito dei blocchi. Può essere snap, snap-flat, scratch2, scratch3 o scratch3-hc.
Scala dei blocchi La scala predefinita dell’immagine del blocco. Deve essere un numero decimale.
Colorazione a strisce Se più blocchi hanno lo stesso colore, alterna un colore più chiaro.
A capo dei blocchi Vai a capo con le parti del blocco su una nuova riga se il blocco diventa troppo largo.
Mostra spazi Mostra gli spazi come un punto negli input.
Alias Scratchblock Abilita l’alias [scratchblocks].

CHANGELOG

  • 1.5.0
    • Aggiornato snapblocks alla versione 1.10.0
    • Risolto l’errore durante il caricamento della libreria snapblocks (generava un errore a causa di un “nome file non valido”)
  • 1.4.1
    • Risolto il problema con la citazione di snippet di codice multilinea
    • Rilevamento effettivo delle traduzioni dei blocchi
  • 1.4.0
    • Migliorata la citazione degli snapblocks
    • Il testo nei blocchi non può essere selezionato (anche se puoi comunque selezionarlo e citare l’intero script).
  • 1.3.0
    • Aggiunta l’opzione “Cappelli di Babbo Natale” nelle impostazioni
    • Aggiunta l’opzione santa agli snippet di snapblocks
    • Aggiornato snapblocks alla versione 1.8.0
  • 1.2.0
    • Consentito di attivare/disattivare l’alias [scratchblocks] (ho finalmente capito come farlo).
    • Aggiornato snapblocks alla versione 1.7.0
  • 1.1.1
    • Assicurati che gli script in eccesso siano scorrevoli.
    • Aggiunto il testo effettivo quando si utilizza il pulsante snapblocks nella barra degli strumenti.
  • 1.1.0
    • Aggiornato snapblocks alla versione 1.6.0
  • 1.0.0
    • Rilascio iniziale

TODO

  • Consentire uno stile predefinito separato per [scratchblocks]
14 Mi Piace

Ci sono incompatibilità con scratchblocks che suggerirebbero la necessità di un plugin separato per Scratch?

In caso contrario, ciò potrebbe essere annotato qui e nel README del plugin su GitHub.

1 Mi Piace

Direi che le uniche incompatibilità sono principalmente solo alcune piccole modifiche alla sintassi, come i menu a discesa e il blocco define. Per la maggior parte, il codice scratchblocks è per lo più compatibile con snapblocks.

Penso comunque che dovrebbe esserci un plugin separato per scratchblocks, poiché so che i forum dedicati a scratch/mod di scratch potrebbero non voler usare snapblocks, dato che snapblocks è ottimizzato per funzionare al meglio per snap (e ho trascurato la rifinitura degli stili di scratch), per non parlare del fatto che non ho aggiunto la possibilità di cambiare la scorciatoia della barra degli strumenti per utilizzare invece scratchblocks.

Se qualcuno volesse provare a creare un plugin scratchblocks utilizzando questo plugin come base (probabilmente non riuscirò a crearne uno da solo), penso valga la pena notare che la funzione di rendering che ho utilizzato non è nell’API di scratchblocks, quindi richiederebbe un po’ più di lavoro rispetto a inserire semplicemente scratchblocks.

1 Mi Piace

A prima vista, sembra che non ci siano obiezioni all’utilizzo di questo plugin per esperimenti iniziali (il mio ambiente è scolastico) e solo in seguito si dovrebbe investire tempo in un plugin Scratch qualora sorgesse la necessità.

1 Mi Piace

Richiesta di funzionalità: lo stile del blocco potrebbe essere definito separatamente per l’alias [scratchblocks].
Ciò consentirebbe un utilizzo senza sforzo di diversi elementi stilizzati di Scratch e Snap!.

2 Mi Piace

È un’ottima idea. Ci darò un’occhiata.

3 Mi Piace

Non vedo alcuna logica lato server; potrebbe essere meglio realizzato come componente del tema?

3 Mi Piace

Si collega al parser dei messaggi per garantire che nulla all’interno dei tag venga analizzato e include molte opzioni per configurare il comportamento. Vorrei anche aggiungere il supporto per il nuovo compositore di messaggi WYSIWYG, ma ho avuto difficoltà a farlo funzionare correttamente. Inoltre, non vorrei che gli amministratori del forum dovessero attivarlo per ogni tema, poiché ciò può causare problemi e confusione (ho già visto accadere in passato).

Quindi, c’è qualcosa che non ho capito riguardo alle capacità di un componente del tema? Può essere qualcosa da abilitare una volta a livello globale e dimenticare?

(ops, ho premuto il pulsante di risposta sbagliato @RGJ )

Installare un plugin è molto più laborioso di così :thinking: e non funzionerebbe sui piani ospitati da Discourse.org.

Inoltre, penso che la maggior parte dei forum abbia solo un tema attivo.

I componenti dei temi possono avere impostazioni e possono fare tutto ciò che fa la parte JavaScript di un plugin. Con lo stato attuale del plugin, non perderesti alcuna funzionalità.

2 Mi Piace

Non basta clonare il repository nella directory dei plugin? Sento che non sia affatto così laborioso. Tuttavia, il fatto che non funzioni sui piani ospitati da Discourse è corretto.

Non il forum per cui è stato creato questo plugin. Ma ho appena controllato e sembra che l’interfaccia utente delle impostazioni del componente tema abbia subito una revisione massiccia dall’ultima volta che ho dovuto occuparmene, quindi sembra più semplice da gestire di quanto ricordassi.

Capisco, allora proverò a riscriverlo come componente tema, ma non penso di poter dedicarci del tempo per un po’ a causa di altri impegni.

1 Mi Piace

Non tutti gli amministratori hanno accesso alla riga di comando e non tutti quelli che ce l’hanno ne sono molto familiari.

Inoltre, richiede una ricompilazione, che non è istantanea, può avere effetti collaterali e potenzialmente portare a problemi.

L’aggiornamento di un plugin richiede anch’esso una ricompilazione, mentre l’aggiornamento di un componente del tema è un semplice clic.

2 Mi Piace

Potrei provarci più tardi, dato che in realtà non c’è alcuna logica di backend.

3 Mi Piace

Sarebbe utile, dato che presumo tu sappia più di me su Discourse (questo plugin è stato per lo più assemblato in fretta leggendo altri plugin).

1 Mi Piace