Snapblocks

:information_source: Сводка Разрешить пользователям использовать snapblocks в своих сообщениях.
:hammer_and_wrench: Ссылка на репозиторий https://github.com/snap-blocks/snapblocks-discourse/
:open_book: Руководство по установке Как установить плагины в Discourse

Возможности

Snapblocks — это форк scratchblocks, который позволяет пользователям преобразовывать текст в изображения скриптов Snap!. Этот плагин для Discourse позволяет пользователям использовать snapblocks в своих сообщениях.

Вы можете создавать snapblocks в сообщении, вводя код snapblocks внутри тегов bbcode [snapblocks][/snapblocks]. Например:

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

Также можно использовать [scratchblocks][/scratchblocks] как псевдоним, хотя его можно отключить.

Вы также можете использовать [sb][/sb] для добавления кода snapblocks в строке.

Используйте блок [sb]move (10) steps[/sb], чтобы двигаться вперёд.

Параметры

Доступно несколько настроек для изменения способа отображения snapblocks.

  • Стиль блоков
  • Масштаб блоков
  • Зебра-окрашивание
  • Перенос блоков
  • Показывать пробелы
  • Шапки Санты

Многие параметры также можно использовать в сниппетах 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]

Вы также можете задать стиль блоков с помощью параметра по умолчанию.

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

Конфигурация

Имя Описание
Стиль блоков Стиль блоков по умолчанию. Может быть snap, snap-flat, scratch2, scratch3 или scratch3-hc.
Масштаб блоков Масштаб изображения блоков по умолчанию. Должен быть числом с плавающей точкой.
Зебра-окрашивание Если несколько блоков одного цвета, чередовать более светлый цвет.
Перенос блоков Переносить части блоков на новую строку, если блок становится слишком широким.
Показывать пробелы Отображать пробелы в виде точки в полях ввода.
Псевдоним Scratchblock Включить псевдоним [scratchblocks].

ИСТОРИЯ ИЗМЕНЕНИЙ

  • 1.4.1
    • Исправлено цитирование многострочных сниппетов кода
    • Реализовано определение переводов блоков
  • 1.4.0
    • Улучшено цитирование snapblocks
    • Текст внутри блоков нельзя выделить (хотя можно выделить область над ними и процитировать весь скрипт).
  • 1.3.0
    • Добавлена настройка «Шапки Санты» в параметры
    • Добавлен параметр santa в сниппеты snapblocks
    • Обновлены snapblocks до версии 1.8.0
  • 1.2.0
    • Добавлена возможность включения/выключения псевдонима [scratchblocks] (наконец-то понял, как это сделать).
    • Обновлены snapblocks до версии 1.7.0
  • 1.1.1
    • Обеспечена прокрутка для скриптов, выходящих за границы.
    • Добавлен реальный текст при использовании кнопки snapblocks на панели инструментов.
  • 1.1.0
    • Обновлены snapblocks до версии 1.6.0
  • 1.0.0
    • Первый релиз

ПЛАНЫ

  • Разрешить отдельный стиль по умолчанию для [scratchblocks]
12 лайков

Есть ли какие-либо несовместимости с scratchblocks, которые указывали бы на необходимость отдельного плагина для Scratch?

Если нет, об этом можно упомянуть здесь и в README плагина на GitHub.

1 лайк

Я бы сказал, что единственные несовместимости — это в основном незначительные правки синтаксиса, такие как выпадающие меню и блок define. В целом код scratchblocks в основном совместим с snapblocks.

Тем не менее, я по-прежнему считаю, что должен существовать отдельный плагин для scratchblocks, так как знаю форумы, посвященные Scratch или модификациям для Scratch, которые могут не захотеть использовать snapblocks, поскольку snapblocks оптимизирован для работы с Snap (к тому же мне не хватает полировки стилей для Scratch). Кроме того, я не добавил возможность переключения сочетания клавиш панели инструментов для использования scratchblocks.

Если кто-то захочет создать плагин для scratchblocks, используя этот плагин в качестве основы (сам я, скорее всего, не смогу этим заняться), стоит отметить, что функция рендеринга, которую я использовал, отсутствует в API scratchblocks, поэтому потребуется больше работы, чем просто подключение библиотеки scratchblocks.

1 лайк

На первый взгляд, не возникает возражений против использования этого плагина для первоначальных экспериментов (моя среда — школьная), и только в случае необходимости стоит уделить время созданию плагина для Scratch.

1 лайк

Запрос на добавление функции: стиль блоков можно было бы определить отдельно для псевдонима [scratchblocks]. Это позволило бы легко использовать стилизованные элементы Scratch и Snap!.

2 лайка

На самом деле это хорошая идея. Я изучу возможность её добавления.

3 лайка