Formato dei commenti supportato
Puoi aggiungere contenuti diversi ai commenti, tra cui la sintassi Markdown estesa e i tag HTML.
Formati supportati
Supportiamo l'intero CommonMark (la sintassi Markdown standard) insieme alle seguenti estensioni:
- Tabelle in stile GFM
- Barrato in stile GFM
- Pedice e apice
- Emoji
- Evidenziazione dei blocchi di codice
- Formule
GFM
Github Flavored Markdown
Inoltre puoi incorporare liberamente qualsiasi contenuto HTML senza attivare il meccanismo di protezione.
Supporto limitato nell'anteprima
Per contenere le dimensioni del client, nel client ufficiale @waline/client inseriamo solo un piccolo parser Markdown: per questo molte sintassi non vengono mostrate correttamente nel pannello di anteprima (ma vengono resi correttamente nell'area dei commenti).
Tra le limitazioni troviamo:
La sintassi emoji standard (ad es. 🎉
:tada:) non viene renderizzata correttamenteI pedici e gli apici (ad es.
H~2~O,x^2^) non possono essere renderizzati correttamenteLa sintassi
, cioè le formule matematiche (ad es.$a = 1$), non viene renderizzata per impostazione predefinita.Con il client ufficiale puoi personalizzare il rendering
nell'anteprima impostando l'opzionetexRenderer; vedi Cookbook → Usare un renderer personalizzato.Con l'evidenziatore predefinito i blocchi di codice vengono evidenziati con colori casuali e delimitatori specifici.
Con il client ufficiale puoi personalizzare l'evidenziazione del codice in anteprima impostando l'opzione
highlighter; vedi Cookbook → Evidenziazione del codice personalizzata.
Approfondimenti
Come funziona
Per contenere le dimensioni del pacchetto, il client usa
markedper il rendering e, per impostazione predefinita, un evidenziatore di dimensioni inferiori a 1 KB, e non include un renderer : da qui derivano le limitazioni descritte sopra.Quando un utente invia un commento, il client incorpora l'immagine emoji personalizzata e invia al server il commento originale.
Il server riceve il testo originale, usa
markdown-itcon i plugin correlati per renderizzare correttamente il Markdown, usaprismjsper evidenziare i blocchi di codice in base al linguaggio ed esegue il rendering in base alle impostazioni dell'utente; infine applica la protezione XSS.Al termine dell'elaborazione il server memorizza il contenuto renderizzato correttamente e lo restituisce al client quando serve, per garantire la corretta visualizzazione dell'area dei commenti.
