Snapblocks

:information_source: Zusammenfassung Ermöglicht Benutzern die Verwendung von snapblocks in ihren Beiträgen.
:hammer_and_wrench: Repository-Link GitHub - snap-blocks/snapblocks-discourse: snapblocks discourse plugin · GitHub
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

Funktionen

Snapblocks ist ein Fork von scratchblocks, der es Benutzern ermöglicht, Text in Bilder von Snap!-Skripten umzuwandeln. Dieses Discourse-Plugin erlaubt Benutzern die Verwendung von snapblocks in ihren Beiträgen.

Sie können snapblocks in einem Beitrag erstellen, indem Sie snapblocks-Code innerhalb der BBCode-Tags [snapblocks][/snapblocks] eingeben. Zum Beispiel:

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

Alternativ können Sie [scratchblocks][/scratchblocks] als Alias verwenden, obwohl dies deaktiviert werden kann.

Sie können auch [sb][/sb] verwenden, um snapblocks-Code inline einzufügen.

Verwenden Sie den [sb]move (10) steps[/sb]-Block, um vorwärts zu bewegen.

Optionen

Es gibt einige Einstellungen, um das Rendern von snapblocks anzupassen.

  • Block-Stil
  • Block-Skalierung
  • Zebra-Färbung
  • Block-Umbruch
  • Leerzeichen anzeigen
  • Weihnachtsmützen

Viele Optionen können auch in snapblocks-Snippets verwendet werden.

[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]

Sie können den Block-Stil auch über den Standardparameter festlegen.

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

Konfiguration

Name Beschreibung
Block-Stil Der Standard-Block-Stil. Kann snap, snap-flat, scratch2, scratch3 oder scratch3-hc sein.
Block-Skalierung Die Standard-Bildskalierung für Blöcke. Muss eine Gleitkommazahl sein.
Zebra-Färbung Wenn mehrere Blöcke die gleiche Farbe haben, wird abwechselnd eine hellere Farbe verwendet.
Block-Umbruch Blockteile werden in eine neue Zeile umgebrochen, wenn der Block zu breit wird.
Leerzeichen anzeigen Leerzeichen werden als Punkt in Eingaben angezeigt.
Scratchblock-Alias Aktiviert den Alias [scratchblocks].

CHANGELOG

  • 1.5.0
    • Aktualisierung von snapblocks auf v1.10.0
    • Fehler beim Laden der snapblocks-Bibliothek behoben (es wurde ein Fehler aufgrund eines „schlechten Dateinamens“ ausgelöst)
  • 1.4.1
    • Fehler bei der Zitierung von mehrzeiligen Code-Snippets behoben
    • Blockübersetzungen werden nun tatsächlich erkannt
  • 1.4.0
    • Zitierung von snapblocks verbessert
    • Text in Blöcken kann nicht ausgewählt werden (Sie können jedoch darüber hinweg auswählen und das gesamte Skript zitieren).
  • 1.3.0
    • Option „Weihnachtsmützen“ zu den Einstellungen hinzugefügt
    • Option santa zu snapblocks-Snippets hinzugefügt
    • Aktualisierung von snapblocks auf 1.8.0
  • 1.2.0
    • Umschalten des Alias [scratchblocks] ermöglicht (Ich habe endlich herausgefunden, wie es geht).
    • Aktualisierung von snapblocks auf 1.7.0
  • 1.1.1
    • Sicherstellen, dass überlaufende Skripte scrollbar sind.
    • Tatsächlicher Text hinzugefügt, wenn der snapblocks-Button in der Symbolleiste verwendet wird.
  • 1.1.0
    • Aktualisierung von snapblocks auf 1.6.0
  • 1.0.0
    • Erstveröffentlichung

TODO

  • Erlauben eines separaten Standardstils für [scratchblocks]
14 „Gefällt mir“

Gibt es Inkompatibilitäten mit scratchblocks, die die Notwendigkeit eines separaten Plugins für Scratch nahelegen würden?

Wenn nicht, könnte dies hier und in der README-Datei des Plugins auf GitHub vermerkt werden.

1 „Gefällt mir“

Ich würde sagen, dass die einzigen Inkompatibilitäten hauptsächlich geringfügige Syntaxanpassungen sind, wie Dropdown-Menüs und der Define-Block. Größtenteils ist Scratchblocks-Code mit Snapblocks kompatibel.

Ich denke immer noch, dass es ein separates Plugin für Scratchblocks geben sollte, da ich Foren kenne, die für Scratch/Scratch-Mods sind und Snapblocks möglicherweise nicht verwenden möchten, da Snapblocks am besten für Snap geeignet ist (und mir die Politur der Scratch-Stile gefehlt hat), ganz zu schweigen davon, dass ich die Möglichkeit, die Toolbar-Verknüpfung zu ändern, um stattdessen Scratchblocks zu verwenden, nicht hinzugefügt habe.

Wenn jemand versuchen möchte, ein Scratchblocks-Plugin zu erstellen, das dieses Plugin als Basis verwendet (ich werde wahrscheinlich keines selbst erstellen), denke ich, dass es erwähnenswert ist, dass die von mir verwendete Render-Funktion nicht in der Scratchblocks-API enthalten ist, sodass es etwas mehr Arbeit erfordern würde, als nur Scratchblocks einzufügen.

1 „Gefällt mir“

Auf den ersten Blick scheint es keine Einwände gegen die Nutzung dieses Plugins für erste Experimente (in meinem Fall eine Schulumgebung) zu geben, und erst wenn die Notwendigkeit entsteht, Zeit in ein Scratch-Plugin zu investieren.

1 „Gefällt mir“

Feature-Anfrage: Der Block-Stil könnte separat für den Alias [scratchblocks] definiert werden. Dies würde die mühelose Verwendung verschiedener gestylter Scratch- und Snap!-Elemente ermöglichen.

2 „Gefällt mir“

Das ist eigentlich eine gute Idee. Ich werde prüfen, ob ich das hinzufügen kann.

3 „Gefällt mir“

Ich sehe keine serverseitige Logik; dies ließe sich besser als Theme-Komponente umsetzen.

3 „Gefällt mir“

Es greift in den Nachrichtenparser ein, um sicherzustellen, dass nichts innerhalb der Tags geparst wird, und bietet zahlreiche Optionen zur Konfiguration des Verhaltens. Ich möchte auch die Unterstützung für den neuen WYSIWYG-Nachrichteneditor hinzufügen, habe aber Schwierigkeiten, dies ordnungsgemäß zum Laufen zu bringen. Außerdem möchte ich vor allem nicht, dass die Forenadministratoren dies für jedes Theme aktivieren müssen, da dies Probleme und Verwirrung verursachen kann (ich habe das bereits zuvor gesehen).

Gibt es also etwas, das ich bei den Möglichkeiten einer Theme-Komponente nicht verstehe, und kann es einfach eine einmalige globale Aktivierung sein, die man dann vergessen kann?

(ups, habe versehentlich den falschen Antwort-Button gedrückt @RGJ)

Die Installation eines Plugins ist viel umständlicher als dies :thinking: und funktioniert nicht bei den von Discourse.org gehosteten Plänen.

Außerdem haben meiner Meinung nach die meisten Foren nur ein aktives Theme.

Theme-Komponenten können Einstellungen haben und können alles das tun, was die JavaScript-Seite eines Plugins kann. Im aktuellen Zustand des Plugins würden Sie keine Funktionalität verlieren.

2 „Gefällt mir“

Klont man das Repository nicht einfach in das Plugin-Verzeichnis? Ich finde, das ist nicht sehr umständlich. Dass es jedoch bei den von Discourse gehosteten Plänen nicht funktioniert, ist korrekt.

Nicht das Forum, für das dieses Plugin erstellt wurde. Aber ich habe gerade nachgeschaut, und es scheint, als hätte die Benutzeroberfläche für die Einstellungen von Theme-Komponenten eine massive Überarbeitung erfahren, seit ich mich das letzte Mal damit befassen musste. Daher wirkt sie übersichtlicher, als ich mich erinnere.

Ich verstehe, dann werde ich versuchen, es als Theme-Komponente neu zu schreiben. Ich glaube aber nicht, dass ich das in absehbarer Zeit schaffen werde, da ich andere Verpflichtungen habe.

1 „Gefällt mir“

Nicht alle Administratoren haben Zugriff auf die Kommandozeile, und selbst wenn sie ihn haben, sind sie nicht unbedingt damit vertraut.

Außerdem ist ein Neuaufbau erforderlich, der nicht sofort erfolgt, Nebenwirkungen haben und potenziell zu Problemen führen kann.

Das Aktualisieren eines Plugins erfordert ebenfalls einen Neuaufbau, während das Aktualisieren einer Theme-Komponente nur einen Klick erfordert.

2 „Gefällt mir“

Ich werde das vielleicht später selbst versuchen, da es wirklich keine Backend-Logik gibt.

3 „Gefällt mir“

Das wäre hilfreich, da ich annehme, dass du mehr über Discourse weißt als ich (dieses Plugin wurde größtenteils durch das Lesen anderer Plugins zusammengebastelt).

1 „Gefällt mir“