Snapblocks — это форк scratchblocks, который позволяет пользователям преобразовывать текст в изображения скриптов Snap!. Этот плагин для Discourse позволяет пользователям использовать snapblocks в своих сообщениях.
Вы можете создать snapblocks в сообщении, введя код snapblocks внутри тегов bbcode [snapblocks][/snapblocks]. Например:
Я бы сказал, что единственные несовместимости — это в основном незначительные правки синтаксиса, такие как выпадающие меню и блок define. В целом код scratchblocks в основном совместим с snapblocks.
Тем не менее, я по-прежнему считаю, что должен существовать отдельный плагин для scratchblocks, так как знаю форумы, посвященные Scratch или модификациям для Scratch, которые могут не захотеть использовать snapblocks, поскольку snapblocks оптимизирован для работы с Snap (к тому же мне не хватает полировки стилей для Scratch). Кроме того, я не добавил возможность переключения сочетания клавиш панели инструментов для использования scratchblocks.
Если кто-то захочет создать плагин для scratchblocks, используя этот плагин в качестве основы (сам я, скорее всего, не смогу этим заняться), стоит отметить, что функция рендеринга, которую я использовал, отсутствует в API scratchblocks, поэтому потребуется больше работы, чем просто подключение библиотеки scratchblocks.
На первый взгляд, не возникает возражений против использования этого плагина для первоначальных экспериментов (моя среда — школьная), и только в случае необходимости стоит уделить время созданию плагина для Scratch.
Запрос на добавление функции: стиль блоков можно было бы определить отдельно для псевдонима [scratchblocks]. Это позволило бы легко использовать стилизованные элементы Scratch и Snap!.
Это подключается к парсеру сообщений, чтобы убедиться, что содержимое внутри тегов не обрабатывается, и предоставляет множество опций для настройки поведения. Также я хочу добавить поддержку нового WYSIWYG-редактора сообщений, но у меня возникают трудности с его корректной работой. Кроме того, я не хочу, чтобы администраторам форума приходилось включать его для каждой темы, так как это может вызывать проблемы и путаницу (я уже сталкивался с этим раньше).
Так что, возможно, я что-то не понимаю в возможностях компонента темы? Может ли это быть просто настройка «включить один раз глобально и забыть»?
Установка плагина гораздо более хлопотна, чем это , и не будет работать на хостинговых планах Discourse.org.
Кроме того, я думаю, что на большинстве форумов есть только одна активная тема.
Компоненты тем могут иметь настройки и делать всё, что может делать JavaScript-часть плагина. При текущем состоянии плагина вы не потеряете никакой функциональности.
Разве вы просто не клонируете репозиторий в директорию плагинов? Мне кажется, это не так уж утомительно. Однако то, что это не работает на хостинге Discourse, — верное замечание.
Не на том форуме, для которого был создан этот плагин. Но я только что проверил, и, похоже, интерфейс настроек компонентов темы претерпел серьёзные изменения с тех пор, как мне в последний раз приходилось с ними работать, поэтому теперь управлять ими кажется проще, чем я помню.
Понятно, тогда я попробую переписать его как компонент темы, но, думаю, смогу заняться этим не скоро из-за других обязательств.
Это было бы полезно, так как я предполагаю, что вы, возможно, знаете о Discourse больше, чем я (этот плагин был в основном собран наспех путём изучения других плагинов).