Snapblocks

:information_source: Résumé Permettre aux utilisateurs d’utiliser snapblocks dans leurs publications.
:hammer_and_wrench: Lien vers le dépôt GitHub - snap-blocks/snapblocks-discourse: snapblocks discourse plugin · GitHub
:open_book: Guide d’installation Comment installer des plugins dans Discourse

Fonctionnalités

Snapblocks est un fork de scratchblocks qui permet aux utilisateurs de convertir du texte en images de scripts Snap!. Ce plugin Discourse permet aux utilisateurs d’utiliser snapblocks dans leurs publications.

Vous pouvez créer des snapblocks dans une publication en tapant du code snapblocks à l’intérieur des balises bbcode [snapblocks][/snapblocks]. Par exemple :

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

Vous pouvez également utiliser [scratchblocks][/scratchblocks] comme alias, bien que cela puisse être désactivé.

Vous pouvez aussi utiliser [sb][/sb] pour ajouter du code snapblocks en ligne.

Utilisez le bloc [sb]move (10) steps[/sb] pour avancer.

Options

Plusieurs paramètres sont disponibles pour modifier la façon dont les snapblocks sont rendus.

  • Style des blocs
  • Échelle des blocs
  • Coloration zébrée
  • Retour à la ligne des blocs
  • Afficher les espaces
  • Bonnets de Noël

De nombreuses options peuvent également être utilisées dans les extraits 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]

Vous pouvez également définir le style des blocs en utilisant le paramètre par défaut.

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

Configuration

Nom Description
Style des blocs Le style de bloc par défaut. Peut être snap, snap-flat, scratch2, scratch3 ou scratch3-hc.
Échelle des blocs L’échelle d’image des blocs par défaut. Doit être un nombre à virgule flottante.
Coloration zébrée Si plusieurs blocs ont la même couleur, alterner avec une couleur plus claire.
Retour à la ligne des blocs Retourner les parties des blocs sur une nouvelle ligne si le bloc devient trop large.
Afficher les espaces Afficher les espaces sous forme de point dans les champs de saisie.
Alias Scratchblock Activer l’alias [scratchblocks].

JOURNAL DES MODIFICATIONS

  • 1.5.0
    • Mise à jour de snapblocks vers la version 1.10.0
    • Correction d’une erreur lors du chargement de la bibliothèque snapblocks (elle levait une erreur en raison d’un « nom de fichier invalide »)
  • 1.4.1
    • Correction du citage des extraits de code sur plusieurs lignes
    • Détection réelle des traductions de blocs
  • 1.4.0
    • Amélioration du citage des snapblocks
    • Le texte dans les blocs ne peut plus être sélectionné (bien que vous puissiez toujours sélectionner au-dessus et citer l’ensemble du script).
  • 1.3.0
    • Ajout de l’option « Bonnets de Noël » dans les paramètres
    • Ajout de l’option santa dans les extraits snapblocks
    • Mise à jour de snapblocks vers la version 1.8.0
  • 1.2.0
    • Permettre d’activer ou désactiver l’alias [scratchblocks] (j’ai enfin trouvé comment le faire).
    • Mise à jour de snapblocks vers la version 1.7.0
  • 1.1.1
    • S’assurer que les scripts débordants peuvent être défilés.
    • Ajout de texte réel lors de l’utilisation du bouton snapblocks dans la barre d’outils.
  • 1.1.0
    • Mise à jour de snapblocks vers la version 1.6.0
  • 1.0.0
    • Première version

À FAIRE

  • Permettre un style par défaut distinct pour [scratchblocks]
13 « J'aime »

Existe-t-il des incompatibilités avec scratchblocks qui suggéreraient la nécessité d’un plugin distinct pour Scratch ?

Sinon, cela pourrait être noté ici et dans le README du plugin sur GitHub.

1 « J'aime »

Je dirais que les seules incompatibilités sont principalement des ajustements de syntaxe mineurs, comme les menus déroulants et le bloc define. Pour la plupart, le code scratchblocks est largement compatible avec snapblocks.

Je pense toujours qu’il devrait y avoir un plugin séparé pour scratchblocks, car je sais que les forums dédiés à Scratch/aux mods Scratch pourraient ne pas vouloir utiliser snapblocks, puisque snapblocks est conçu pour fonctionner au mieux avec Snap (et j’ai manqué de polissage dans les styles Scratch), sans oublier que je n’ai pas ajouté la possibilité de changer le raccourci de la barre d’outils pour utiliser scratchblocks à la place.

Si quelqu’un souhaite essayer de créer un plugin scratchblocks en utilisant ce plugin comme base (je ne vais probablement pas en créer un moi-même), je pense qu’il est intéressant de noter que la fonction de rendu que j’ai utilisée ne se trouve pas dans l’API scratchblocks, il faudrait donc un peu plus de travail que de simplement y intégrer scratchblocks.

1 « J'aime »

Il semble, à première vue, qu’il n’y ait aucune objection à utiliser ce plugin pour des expériences initiales (mon environnement étant un cadre scolaire) et à n’investir du temps dans un plugin Scratch que si la nécessité se présente.

1 « J'aime »

Demande de fonctionnalité : Le style de bloc pourrait être défini séparément pour l’alias [scratchblocks].
Cela permettrait une utilisation sans effort de différents éléments stylisés de Scratch et Snap !.

2 « J'aime »

C’est en fait une bonne idée. Je vais voir pour l’ajouter.

3 « J'aime »

Je ne vois aucune logique côté serveur ; cela pourrait mieux être construit en tant que composant de thème.

3 « J'aime »

Cela s’interconnecte au analyseur de messages pour s’assurer que rien à l’intérieur des balises n’est analysé, et inclut de nombreuses options pour configurer le comportement. Je souhaite également prendre en charge le nouveau compositeur de messages WYSIWYG, mais j’ai rencontré des difficultés pour le faire fonctionner correctement. De plus, je ne veux surtout pas que les administrateurs du forum doivent l’activer pour chaque thème, car cela peut causer des problèmes et de la confusion (j’ai déjà vu cela se produire auparavant).

Donc, est-ce qu’il y a quelque chose que je ne comprends pas concernant les capacités d’un composant de thème, et peut-il simplement être activé une fois globalement et oublié ?

(Oups, j’ai appuyé sur le mauvais bouton de réponse @RGJ)

L’installation d’un plugin est beaucoup plus fastidieuse que cela :thinking: et cela ne fonctionnera pas sur les plans hébergés de Discourse.org.

De plus, je pense que la plupart des forums n’ont qu’un seul thème actif.

Les composants de thème peuvent avoir des paramètres et ils peuvent tout faire ce que la partie JavaScript d’un plugin peut faire. Avec l’état actuel du plugin, vous ne perdriez aucune fonctionnalité.

2 « J'aime »

Ne clone-t-on pas simplement le dépôt dans le répertoire des plugins ? Je trouve que ce n’est pas très fastidieux. Cependant, le fait que cela ne fonctionne pas pour les plans hébergés par Discourse est exact.

Pas le forum pour lequel ce plugin a été créé. Mais je viens de vérifier, et il semble que l’interface utilisateur des paramètres des composants de thème ait subi une refonte majeure depuis la dernière fois que j’ai dû m’en occuper, donc cela semble plus facile à gérer que je ne m’en souvenais.

Je vois, alors je vais essayer de le réécrire en tant que composant de thème, mais je ne pense pas pouvoir m’y atteler avant un certain temps en raison d’autres obligations.

1 « J'aime »

Tous les administrateurs n’ont pas accès à la ligne de commande, et parmi ceux qui en ont, tous ne sont pas très familiers avec elle.

De plus, cela nécessite une reconstruction, qui n’est pas instantanée, peut avoir des effets secondaires et potentiellement entraîner des problèmes.

La mise à jour d’un plugin nécessite également une reconstruction, tandis que la mise à jour d’un composant de thème ne demande qu’un clic de bouton.

2 « J'aime »

Je pourrais m’y atteler plus tard, car il n’y a vraiment aucune logique backend.

3 « J'aime »

Cela serait utile, car je suppose que vous en savez peut-être plus que moi sur Discourse (ce plugin a été principalement bricolé en lisant d’autres plugins).