Tinc una pregunta sobre com es fa la resposta. M'he adonat que molts codis HTML semblen funcionar en la vista prèvia de la resposta, però no apareixen la resposta final. Per què estan bloquejats?

Tinc una pregunta sobre com es fa la resposta. M'he adonat que molts codis HTML semblen funcionar en la vista prèvia de la resposta, però no apareixen la resposta final. Per què estan bloquejats?
Anonim

La resposta curta és que fem servir dues biblioteques de Markdown diferents per representar la vista prèvia i la resposta final. Aquestes dues biblioteques diferents tracten l’HTML de manera diferent.

Les nostres respostes estan dissenyades i formatades amb un llenguatge de marques anomenat "Markdown". Markdown converteix les etiquetes predefinides en HTML per a enllaços, imatges, capçaleres, cursives, enfocaments, etc.

Sense ser massa tècnic, la vista prèvia de la resposta es crea al navegador mitjançant una biblioteca Javascript. Ho fem per motius de velocitat.

Quan actualitzeu la pàgina, la resposta ja es converteix a HTML mitjançant la nostra biblioteca de Python Markdown. Ho fem perquè volem que la resposta quedi genial quan arribeu a la pàgina. Si vam decidir simplement enviar la resposta en brut i després convertir-la a través de la nostra biblioteca Javascript, notareu primer la resposta crua "lletja" i després un salt a la versió ben formatada. Això no és tan dolent, però el problema és que Google i altres robots que rastregen el nostre lloc per a la cerca no executen Javascript. Aquests robots sempre veuran la resposta bruta i lletja que podria danyar el nostre rànquing de cerca.

Ara, per què aquestes dues biblioteques tracten els codis HTML de manera diferent? La biblioteca Python responsable de la resposta final "escapa" d’HTML, el que significa que necessita aquests codis HTML i els canvia a un text inofensiu. Digo inofensiu perquè es pot imaginar que permetre als usuaris introduir HTML a la nostra pàgina pot destruir completament el disseny de la pàgina. La biblioteca de Javascript responsable de la visualització prèvia no escapa a HTML, que tècnicament és un error.

En el futur, haurem d’eliminar l’habilitat de la biblioteca Javascript per previsualitzar codis HTML per motius de seguretat. També passem a utilitzar una sola biblioteca per representar tot el nostre text de reducció.