¿Debería Checklist admitir la sintaxis de casillas de verificación de GFM?

Así que noté que algunas listas de verificación existentes en mi instancia mostraban la sintaxis antigua con asteriscos. Decidí ejecutar la tarea rake anterior, pero no se actualizan.

Por lo que recuerdo, la mayoría de las otras listas de verificación que tengo se migraron silenciosamente a la nueva sintaxis mientras actualizaba Discourse en las últimas semanas. Pero parece que hay algunas extrañas que la tarea rake está dejando atrás. ¿Alguien tiene alguna pista sobre por qué podría ser?

Estoy encantado de proporcionar más información si ayuda a depurar las cosas.

Actualización: parece que uno de esos mensajes tenía la sintaxis [\*] (la que se genera automáticamente al marcar la casilla desde la interfaz de usuario). ¿Será ese el caso que la tarea rake no está cubriendo?

4 Me gusta

@k4rtik, si mal no recuerdo, la tarea de rake solo modifica las casillas de verificación que están al principio de una línea.

Las páginas que estoy viendo tienen todas las casillas de verificación al principio de la línea. La pregunta es si la tarea cambia tanto [*] como [\*] o solo la primera sintaxis.

Esta línea debería verificar si la casilla de verificación está en los primeros tres caracteres de la línea. Acabo de revisar la expresión regular y parece coincidir correctamente.

3 Me gusta

¿No siempre comienzan las listas de tareas con un marcador de viñeta (* o -) primero [1, 2], de modo que la expresión regular debería coincidir con:
- [\*]
lo que significa que esto se omite porque ya no está en los primeros tres caracteres.

Más tarde encontré otros casos en los que también tengo casillas de verificación anidadas. Por lo tanto, asumir que están al principio de la línea también omitirá muchos casos de uso válidos.

PD: Me di cuenta de que el autor original aquí no utiliza la sintaxis de listas de tareas de GFM (pero solo desde el 4 de agosto con el cambio a la wiki por parte de @sam), pero yo he estado utilizándola desde hace mucho tiempo. La especificación CommonMark a la que parece hacer referencia Discourse para la documentación de markdown parece no admitir listas de tareas todavía. ¿Está Discourse creando su propia variante de la sintaxis de listas de tareas? Preferiría adherirme a la sintaxis GFM, ampliamente popular, en lugar de diversificarla aún más.

¿Podrías proporcionar un enlace a la especificación de sintaxis de la lista de verificación de GFM, por favor?

Lo enlacé más arriba, pero aquí está de nuevo:

A mí me parece correcto aquí, pegando los dos ejemplos del enlace anterior:

- [ ] foo
- [x] bar

produce

  • foo
  • bar

y

- [x] foo
  - [ ] bar
  - [x] baz
- [ ] bim

produce

  • foo
    • bar
    • baz
  • bim

Así que no estoy seguro de qué es el problema. ¿Puedes ser más específico?

Lo siento, esto parece confuso porque las cosas han cambiado bastante recientemente. Me refiero a la captura de pantalla mostrada en la página del plugin que no muestra la sintaxis de lista de verificación con viñetas (y que la tarea rake migrate parece no soportar):

Aquí está la captura de pantalla del diff que realizó el cambio:

Es difícil de ver, pero el lado izquierdo tiene casillas de verificación con viñetas, mientras que el lado derecho actual elimina las viñetas, lo que sugiere una sintaxis de casilla de verificación predeterminada diferente para los nuevos usuarios.


Agregado más tarde:

En otras palabras, ahora todas estas son compatibles usando el plugin de lista de verificación:

[] first
-[] second
- [] third

renderizadas como

first
- second

  • third

mientras que la especificación de tasklist de GFM solo permite la tercera variante (ya que una tasklist es una lista):

Un elemento de lista de tareas es un elemento de lista donde el primer bloque en él es un párrafo que comienza con un marcador de elemento de lista de tareas y al menos un carácter de espacio en blanco antes de cualquier otro contenido.

Un marcador de elemento de lista de tareas consiste en un número opcional de espacios, un corchete izquierdo ( [ ), un carácter de espacio en blanco o la letra x en minúsculas o mayúsculas, y luego un corchete derecho ( ] ).

Si uno desea cumplir con la especificación de la extensión de lista de tareas de GFM, entonces las dos primeras no deberían estar permitidas ni promocionarse en la documentación del plugin.

1 me gusta

Admitir el caso de GFM no significa no admitir los demás casos. Si extrapolaras esa lógica, requeriría muchos cambios negativos en la forma en que Discourse maneja todo tipo de formateo en Markdown.

Existen muchas aplicaciones que generan casillas de verificación en Markdown; es muy conveniente poder pegar listas en los posts de Discourse. ¿Qué valor tiene romper la compatibilidad?

1 me gusta

Uno de los grandes problemas con Markdown es la falta de un estándar común (CommonMark está solucionando eso), lo que da lugar a una variedad de implementaciones incompatibles. Cuando ya existe una extensión de listas de tareas enormemente popular en forma de GFM, ¿por qué es necesario inventar otra? Tenía la impresión de que los desarrolladores de Discourse estaban comprometidos con CommonMark y la estandarización de Markdown.

Mi problema no es con el soporte de sintaxis alternativas; creo en la Ley de Postel (aunque creo que el problema mencionado debería haberse tenido en cuenta cuando se realizaron los últimos cambios de sintaxis, es decir, de [*] a [x]). Mi problema radica en promover una sintaxis incompatible (con GFM) en la documentación del plugin y no facilitar la migración de la sintaxis de listas de tareas similar a GFM al formato más nuevo, lo cual rompió muchas de mis páginas en mi instancia de Discourse, como se indica en mi publicación original.

3 Me gusta

Acabamos de realizar el cambio para simplificar la sintaxis. Puedes usar [] en cualquier parte de una publicación para crear una casilla de verificación. No prevemos cambiarlo nuevamente en un futuro cercano. Por supuesto, eres bienvenido a crear un fork del plugin para implementar lo que desees.

2 Me gusta