Então, notei que algumas listas de verificação existentes na minha instância ainda exibiam a sintaxe antiga com asterisco. Decidi executar a tarefa rake acima, mas elas não foram atualizadas.
Se não me engano, a maioria das outras listas de verificação que eu tinha foi migrada silenciosamente para a nova sintaxe enquanto eu atualizava o Discourse nas últimas semanas. Mas parece que há algumas estranhas que a tarefa rake deixou de lado. Alguém tem alguma pista do porquê disso?
Estou disposto a fornecer mais informações se isso ajudar a depurar.
Atualização: parece que um desses posts tinha a sintaxe [\*] (a gerada automaticamente ao marcar a caixa de seleção na interface). Então, talvez esse seja o caso não coberto pela tarefa rake?
As páginas que estou vendo têm todas as caixas de seleção no início da linha. A questão é se a tarefa altera tanto [*] quanto [\*] ou apenas a sintaxe anterior?
Esta linha deve verificar se a caixa de seleção está nos três primeiros caracteres da linha. Acabei de verificar a expressão regular e parece que ela corresponde corretamente.
As listas de verificação não começam sempre com um marcador de item (* ou -) primeiro [1, 2], então a expressão regular deve corresponder a: - [\*]
O que significa que isso é ignorado porque não está mais nos três primeiros caracteres.
Mais tarde, encontrei outros casos em que tenho caixas de seleção aninhadas também. Então, assumir que elas estão no início da linha também ignorará muitos casos de uso válidos.
PS: Percebi que o OP aqui não usa a sintaxe de lista de verificação do GFM (mas apenas a partir de 4 de agosto, com a mudança na wiki feita por @sam), mas eu venho usando isso desde sempre. A especificação CommonMark que o Discourse parece referenciar para documentação em markdown parece não suportar listas de verificação ainda. O Discourse está inventando sua própria variante da sintaxe de lista de verificação? Eu preferiria me ater à sintaxe GFM amplamente popular em vez de diversificá-la ainda mais.
Desculpe, isso parece confuso porque as coisas mudaram bastante recentemente. Estou me referindo à captura de tela mostrada na página do plugin, que não exibe a sintaxe de lista de verificação com marcadores (e que a tarefa rake migrate não parece suportar):
Aqui está a captura de tela do diff que fez a alteração:
É difícil ver, mas o lado esquerdo tem caixas de seleção com marcadores, enquanto o lado direito atual remove os marcadores, sugerindo uma sintaxe de caixa de seleção padrão diferente para novos usuários.
Adicionado posteriormente:
Em outras palavras, todos os seguintes são agora suportados pelo plugin de lista de verificação:
[] primeiro
-[] segundo
- [] terceiro
renderizados como:
primeiro
- segundo
terceiro
enquanto a especificação tasklist do GFM permite apenas a terceira variante (pois uma tasklist é uma lista):
Um marcador de item de lista de tarefas consiste em um número opcional de espaços, um colchete esquerdo ([), um caractere de espaço em branco ou a letra x em minúsculo ou maiúsculo, e então um colchete direito (]).
Se alguém quiser aderir à especificação da extensão tasklist do GFM, então os dois primeiros não deveriam ser permitidos nem promovidos na documentação do plugin.
Dar suporte ao caso do GFM não significa não dar suporte aos outros casos. Se você extrapolasse essa lógica, isso exigiria muitas mudanças negativas na forma como o Discourse lida com todos os tipos de formatação Markdown.
Existem muitos aplicativos que geram caixas de seleção Markdown; é bastante conveniente poder colar listas em posts do Discourse. Qual seria o valor em quebrar a compatibilidade?
Um dos grandes problemas do Markdown é a falta de um padrão comum (o CommonMark está corrigindo isso), o que resulta em diversas implementações incompatíveis. Já que existe uma extensão de listas de tarefas extremamente popular na forma do GFM, por que há necessidade de criar outra? Tinha a impressão de que os desenvolvedores do Discourse estavam comprometidos com o CommonMark e com a padronização do Markdown.
Meu problema não é com o suporte a sintaxes alternativas; acredito na Lei de Postel (embora ache que a questão acima deveria ter sido considerada quando as últimas mudanças de sintaxe foram feitas, ou seja, de [*] para [x]). Meu problema é promover uma sintaxe incompatível com o GFM na documentação do plugin e não oferecer uma migração fácil da sintaxe de listas de tarefas semelhante ao GFM para o novo formato, o que quebrou muitas das minhas páginas na minha instância do Discourse, conforme detalhado no meu tópico original.
Nós realmente fizemos a alteração para simplificar a sintaxe. Você pode usar [] em qualquer lugar de uma postagem para criar uma caixa de seleção. Não prevemos mudar isso novamente em breve. Você é mais do que bem-vindo a criar um fork do plugin para implementar o que desejar, embora.