Aiutami a capire: il processo post-cottura

Ciao,
Sarei molto lieto se qualcuno potesse aiutarmi a capire come funziona il processo di post-cottura. In particolare, sono interessato a questa parte:

perché l’elaborazione avviene dopo che il post è già stato “cotto”?
Forse potremmo esaminare il processo necessario per aggiungere una funzionalità come le onebox o le “citazioni di utenti specifici”, se non esistessero già. Così sono arrivato a Prettytext discourse/app/assets/javascripts/pretty-text at f9608c0af5f7b1109117a5aba979acb00c28cf9a · discourse/discourse · GitHub
che gestisce la conversione da e verso Markdown e il rendering della casella di anteprima. Ho anche trovato la funzione rebake nel modello del post nel backend:

che chiama il metodo cook di PostAnalyzer:

questa funzione esegue la conversione Markdown in JavaScript nel backend

il mio pensiero era che fosse fatto in questo modo per ridurre la duplicazione del codice, ma poi ho scoperto il

CookedPostProcessor

che ho collegato all’inizio. Sembra che alcune elaborazioni avvengano solo in JavaScript, mentre altre avvengono sia in JavaScript che in Ruby all’interno di CookedPostProcessor. Quindi, per riassumere: 1. È necessario disporre di regole di conversione da e verso Markdown (sembra che siano solo in JavaScript) 2. È necessario avere del codice per creare l’HTML (parte in JavaScript e parte anche in Ruby). Sono interessato a sapere perché il punto (2.) viene eseguito parzialmente in JavaScript e parzialmente in Ruby. Potresti farmi un esempio? Sarei anche molto felice se potessi correggere eventuali false ipotesi che ho fatto in questo post.
Grazie mille! :smiley:
Spirobel

Per iniziare, controlla la scheda Network della console JS per vedere cosa viene catturato nel frontend e inviato al server quando viene creato un post. Ciò significa che tutti i dati inviati all’API di Rails vengono ulteriormente elaborati da Rails. Successivamente, nella tabella posts, vedrai le colonne raw e cooked, che indicano rispettivamente la forma non elaborata e elaborata del post.

Ok, grazie per la tua risposta. Penso che mi limiterò a esplorare questo pezzo per pezzo. Credo che forse l’approccio di “ragionarci sopra partendo dai principi fondamentali” che ho adottato non funzioni, perché è nato per motivi storici.