Ho notato alcune checklist esistenti sulla mia istanza che mostravano la vecchia sintassi con l’asterisco. Ho deciso di eseguire il task rake sopra indicato, ma non vengono aggiornate.
Se ricordo bene, la maggior parte delle altre checklist è stata migrata silenziosamente alla nuova sintassi mentre aggiornavo Discourse nelle ultime settimane. Ma sembra che ci siano alcune casi particolari che il task rake lascia indietro. Qualcuno ha qualche indizio sul perché possa essere così?
Sono disponibile a fornire ulteriori informazioni se possono aiutare a risolvere il problema.
Aggiornamento: sembra che uno di tali post avesse la sintassi [\*] (quella generata automaticamente al momento della spunta della casella dall’interfaccia utente). Quindi forse è questo il caso non coperto dal task rake?
Le pagine che sto visualizzando hanno tutte le caselle di controllo all’inizio della riga. La domanda è se l’attività modifica sia [*] che [\*] o solo la prima sintassi?
Questa riga dovrebbe verificare se la casella di controllo è tra i primi tre caratteri della riga. Ho appena controllato l’espressione regolare e sembra che corrisponda correttamente.
Le liste di controllo non iniziano sempre con un segnaposto a pallino (* o -) per primo [1, 2], quindi l’espressione regolare dovrebbe corrispondere: - [\*]
il che significa che questo viene saltato perché non è più nei primi tre caratteri.
Più tardi ho scoperto altri casi in cui ho caselle di controllo nidificate. Quindi, assumere che siano all’inizio della riga salterà anche molti casi d’uso validi.
PS: Mi sono reso conto che l’OP qui non utilizza la sintassi delle liste di controllo GFM (ma solo dal 4 agosto con la modifica al wiki da parte di @sam), ma la uso da sempre. La specifica CommonMark a cui Discourse sembra fare riferimento per la documentazione markdown non sembra ancora supportare le liste di controllo. Discourse sta inventando la propria variante della sintassi delle liste di controllo? Preferirei attenermi alla sintassi GFM ampiamente diffusa piuttosto che diversificarla ulteriormente.
Scusa, sembra confuso perché le cose sono cambiate abbastanza recentemente. Mi riferisco allo screenshot mostrato nella pagina del plugin che non mostra la sintassi della lista di controllo con punti elenco (e che il task rake migrate non sembra supportare):
Ecco lo screenshot del diff che ha apportato la modifica:
È difficile da vedere, ma a sinistra ci sono le caselle di controllo con punti elenco, mentre a destra, quella attuale, elimina i punti, suggerendo una sintassi predefinita diversa per le caselle di controllo per i nuovi utenti.
Aggiunto in seguito:
In altre parole, ora sono tutti supportati dal plugin checklist:
[] first
-[] second
- [] third
renderizzati come
first
- second
third
mentre la specifica tasklist di GFM consente solo la terza variante (poiché una tasklist è una lista):
Un marcatore di elemento di lista di attività consiste in un numero opzionale di spazi, una parentesi quadra sinistra ([), un carattere di spazio bianco oppure la lettera x in minuscolo o maiuscolo, e infine una parentesi quadra destra (]).
Se si desidera conformarsi alla specifica dell’estensione tasklist di GFM, allora le prime due varianti non dovrebbero essere consentite né promosse nella documentazione del plugin.
Supportare il caso GFM non significa non supportare gli altri casi. Se si estrapola quella logica, si renderebbero necessarie molte modifiche negative al modo in cui Discourse gestisce tutti i tipi di formattazione Markdown.
Esistono molte applicazioni che generano caselle di controllo Markdown; è molto comodo poter incollare elenchi nei post di Discourse. Che valore ha rompere la compatibilità?
Uno dei principali problemi del Markdown è la mancanza di uno standard comune (CommonMark sta risolvendo questo problema) e, di conseguenza, una varietà di implementazioni incompatibili. Dato che esiste già un’estensione per le liste di controllo estremamente popolare sotto forma di GFM, perché c’è la necessità di inventarne un’altra? Avevo l’impressione che gli sviluppatori di Discourse fossero impegnati in CommonMark e nella standardizzazione del Markdown.
Il mio problema non riguarda il supporto per una sintassi alternativa; credo nella Legge di Postel (anche se penso che il problema sopra citato avrebbe dovuto essere preso in considerazione quando sono state apportate le ultime modifiche alla sintassi, ovvero da [*] a [x]). Il problema è promuovere una sintassi incompatibile con GFM nella documentazione del plugin e non supportare una migrazione semplice dalla sintassi delle liste di attività simile a GFM al nuovo formato, cosa che ha rotto molte delle mie pagine nella mia istanza di Discourse, come indicato nel mio OP.
Abbiamo appena apportato la modifica per semplificare la sintassi. Puoi usare [] ovunque in un post per creare una casella di controllo. Non prevediamo di modificarlo di nuovo a breve. Tuttavia, sei libero di creare un fork del plugin per implementare ciò che desideri.