Am o întrebare despre modul în care răspunsul este redat. Am observat că multe coduri HTML par să funcționeze în previzualizarea răspunsului, dar nu apar răspunsul final. De ce sunt acestea blocate?

Am o întrebare despre modul în care răspunsul este redat. Am observat că multe coduri HTML par să funcționeze în previzualizarea răspunsului, dar nu apar răspunsul final. De ce sunt acestea blocate?
Anonim

Răspunsul scurt este că folosim două biblioteci Markdown diferite pentru a face revederea și răspunsul final. Aceste două biblioteci diferite tratează HTML în mod diferit.

Răspunsurile noastre sunt șablonate și formatate folosind un limbaj de markup numit "Markdown". Markdown convertește marcajul predefinit în HTML pentru linkuri, imagini, anteturi, italice, accente, etc.

Fără a fi prea tehnic, previzualizarea răspunsului nostru este creată în browser utilizând o bibliotecă Javascript. Facem asta din motive de viteză.

Când actualizați pagina, răspunsul este deja convertit în HTML utilizând biblioteca noastră Python Markdown. Facem acest lucru pentru că vrem ca răspunsul să arate minunat imediat ce ajungi la pagină. Dacă am decis să ieșim pur și simplu răspunsul brut și apoi să îl convertim folosind biblioteca noastră Javascript, ați observa mai întâi răspunsul "urât" brut și apoi un salt în versiunea frumos formatată. Nu este așa de rău, dar problema este că Google și alți bots care accesează cu crawlere site-ul nostru pentru căutare nu rulează Javascript. Acești roboți ar vedea întotdeauna răspunsul brut și urât care ar putea afecta clasamentul nostru de căutare.

Acum, de ce aceste două biblioteci tratează în mod diferit codurile HTML? Biblioteca Python responsabilă pentru răspunsul final "scapă" de la HTML, ceea ce înseamnă că iau acele coduri HTML și le transformă într-un text inofensiv. Eu spun inofensiv pentru că vă puteți imagina permite utilizatorilor să introducă HTML în pagina noastră poate distruge complet aspectul paginii. Biblioteca Javascript responsabilă de previzualizare nu scapă HTML, care este un punct de vedere tehnic.

În viitor, va trebui să eliminăm abilitatea bibliotecii Javascript de a previzualiza codurile HTML din motive de securitate. De asemenea, vom trece la utilizarea unei singure biblioteci pentru a reda tot textul Markdown.