Snapblocks

:information_source: Resumen Permitir que los usuarios utilicen snapblocks en sus publicaciones.
:hammer_and_wrench: Enlace al repositorio GitHub - snap-blocks/snapblocks-discourse: snapblocks discourse plugin · GitHub
:open_book: Guía de instalación Cómo instalar plugins en Discourse

Características

Snapblocks es un bifurcado de scratchblocks que permite a los usuarios convertir texto en imágenes de scripts de Snap!. Este plugin de Discourse permite a los usuarios utilizar snapblocks en sus publicaciones.

Puedes crear snapblocks en una publicación escribiendo código de snapblocks dentro de las etiquetas bbcode [snapblocks][/snapblocks]. Por ejemplo:

[snapblocks]
mover (10) pasos
[/snapblocks]

También puedes utilizar [scratchblocks][/scratchblocks] como alias, aunque esta función puede desactivarse.

Además, puedes usar [sb][/sb] para insertar código de snapblocks en línea.

Utiliza el bloque [sb]mover (10) pasos[/sb] para avanzar.

Opciones

Existen varias configuraciones disponibles para modificar la forma en que se renderizan los snapblocks.

  • Estilo de bloque
  • Escala de bloque
  • Coloración en cebra
  • Ajuste de bloque
  • Mostrar espacios
  • Gorros de Santa

Muchas opciones también pueden utilizarse en fragmentos de snapblocks.

[snapblocks blockStyle="snap-flat" wrap="true" wrapSize=100 zebra="true" showSpaces="false" santa="true"]
cuando se haga clic en la bandera
si <[] = []> {
  para siempre {
    ejecutar ({} @addInput) con entradas [Hola mundo] @delInput @verticalEllipsis @addInput
  }
}
[/snapblocks]

También puedes establecer el estilo de bloque utilizando el parámetro predeterminado.

[snapblocks="snap-flat"]
mover (10) pasos
[/snapblocks]

Configuración

Nombre Descripción
Estilo de bloque El estilo de bloque predeterminado. Puede ser snap, snap-flat, scratch2, scratch3 o scratch3-hc.
Escala de bloque La escala predeterminada de la imagen del bloque. Debe ser un número de punto flotante.
Coloración en cebra Si varios bloques tienen el mismo color, alternar con un tono más claro.
Ajuste de bloque Ajustar las partes del bloque a una nueva línea si el bloque es demasiado ancho.
Mostrar espacios Mostrar los espacios como un punto en las entradas.
Alias scratchblocks Habilitar el alias [scratchblocks].

REGISTRO DE CAMBIOS

  • 1.5.0
    • Actualización de snapblocks a la versión 1.10.0
    • Corrección de error al cargar la biblioteca de snapblocks (lanzaba un error debido a un «nombre de archivo incorrecto»)
  • 1.4.1
    • Corrección de la citación de fragmentos de código multilinea
    • Detección real de traducciones de bloques
  • 1.4.0
    • Mejora de la citación de snapblocks
    • El texto dentro de los bloques no puede seleccionarse (aunque aún puedes seleccionar sobre ellos y citar todo el script).
  • 1.3.0
    • Adición de la opción «Gorros de Santa» en la configuración
    • Adición de la opción santa en fragmentos de snapblocks
    • Actualización de snapblocks a la versión 1.8.0
  • 1.2.0
    • Permitir activar o desactivar el alias [scratchblocks] (finalmente encontré cómo hacerlo).
    • Actualización de snapblocks a la versión 1.7.0
  • 1.1.1
    • Asegurar que los scripts desbordados puedan desplazarse.
    • Añadir texto real al utilizar el botón de snapblocks en la barra de herramientas.
  • 1.1.0
    • Actualización de snapblocks a la versión 1.6.0
  • 1.0.0
    • Lanzamiento inicial

POR HACER

  • Permitir un estilo predeterminado separado para [scratchblocks]
14 Me gusta

¿Existen incompatibilidades con scratchblocks que sugieran la necesidad de un plugin separado para Scratch?

Si no las hay, se podría indicar aquí y en el README del plugin en GitHub.

1 me gusta

Diría que las únicas incompatibilidades son principalmente algunos ajustes menores de sintaxis, como los menús desplegables y el bloque define. En su mayor parte, el código de scratchblocks es mayormente compatible con snapblocks.

Aún así, creo que debería haber un plugin separado para scratchblocks, ya que sé que los foros que son para scratch/scratch mods podrían no querer usar snapblocks, ya que snapblocks está diseñado para funcionar mejor para snap (y he estado descuidando el pulido de los estilos de scratch), sin mencionar que no agregué la capacidad de cambiar el atajo de la barra de herramientas para usar scratchblocks en su lugar.

Si alguien quisiera intentar crear un plugin de scratchblocks usando este plugin como base (probablemente no me daré tiempo para hacer uno yo mismo), creo que vale la pena señalar que la función render que utilicé no está en la API de scratchblocks, por lo que requeriría un poco más de trabajo que simplemente incorporar scratchblocks.

1 me gusta

A primera vista, parece que no hay objeción en utilizar este plugin para experimentos iniciales (mi entorno es un entorno escolar) y solo entonces invertir tiempo en un plugin de Scratch si surge la necesidad.

1 me gusta

Solicitud de característica: El estilo de bloque podría definirse por separado para el alias [scratchblocks].
Esto permitiría el uso sin esfuerzo de diferentes estilos de elementos de Scratch y Snap!.

2 Me gusta

Esa es una buena idea. Voy a investigar para añadirla.

3 Me gusta

No veo ninguna lógica del lado del servidor; ¿no sería mejor construir esto como un componente de tema?

3 Me gusta

Se conecta al analizador de mensajes para asegurar que nada dentro de las etiquetas sea analizado e incluye muchas opciones para configurar el comportamiento. También quiero que el nuevo compositor de mensajes WYSIWYG sea compatible, pero he tenido problemas para hacerlo funcionar correctamente. Además, no quiero que los administradores del foro tengan que habilitarlo para cada tema, ya que eso puede causar problemas y confusión (ya he visto que eso sucede antes).

Entonces, ¿hay algo que no esté entendiendo sobre las capacidades de un componente de tema, y puede ser simplemente algo de habilitar una vez globalmente y olvidarse?

(¡ups, pulsé el botón de respuesta incorrecto @RGJ)

Instalar un plugin es mucho más engorroso que esto :thinking: y no funcionará en los planes alojados de Discourse.org.

Además, creo que la mayoría de los foros solo tienen un tema activo.

Los componentes de tema pueden tener configuraciones y pueden hacer todo lo que puede hacer la parte de JavaScript de un plugin. Con el estado actual del plugin, no perderías ninguna funcionalidad.

2 Me gusta

¿No simplemente clonas el repositorio en el directorio de plugins? Siento que eso no es muy engorroso. Sin embargo, es cierto que no funciona en los planes alojados por Discourse.

No el foro para el que se creó este plugin. Pero acabo de verificar y parece que la interfaz de usuario de la configuración de los componentes del tema ha sufrido una gran reforma desde la última vez que tuve que ocuparme de ellos, así que parece más fácil de gestionar de lo que recordaba.

Vale, entonces probaré a reescribirlo como un componente de tema, pero no creo que pueda dedicarme a ello durante un tiempo debido a otras obligaciones.

1 me gusta

No todos los administradores tienen acceso a la línea de comandos, y no todos los que lo tienen están muy familiarizados con ella.

Además, requiere una reconstrucción, lo cual no es instantáneo, puede tener efectos secundarios y potencialmente provocar problemas.

Actualizar un plugin también requiere una reconstrucción, mientras que actualizar un componente del tema es tan sencillo como hacer clic en un botón.

2 Me gusta

Podría intentarlo más tarde, ya que realmente no hay lógica de backend.

3 Me gusta

Eso sería útil, ya que supongo que quizás sepas más sobre Discourse que yo (este plugin fue mayormente ensamprado a lo loco leyendo otros plugins).

1 me gusta