Imam vprašanje o tem, kako je odgovor posredovan. Opazil sem, da se mnoge kode HTML pojavljajo v predogledu odgovora, vendar se ne pojavijo kot končni odgovor. Zakaj so blokirani?

Imam vprašanje o tem, kako je odgovor posredovan. Opazil sem, da se mnoge kode HTML pojavljajo v predogledu odgovora, vendar se ne pojavijo kot končni odgovor. Zakaj so blokirani?
Anonim

Kratek odgovor je, da za predogled in končni odgovor uporabimo dve različni knjižnici Markdown. Ti dve različni knjižnici različno obravnavata HTML.

Naši odgovori so oblikovani in oblikovani z označevalnim jezikom "Markdown". Markdown pretvori vnaprej določene oznake v HTML za povezave, slike, glave, ležeče pisave, poudarke itd.

Ne da bi postali preveč tehnični, je naš predogled odgovora ustvarjen v brskalniku s pomočjo knjižnice Javascript. To počnemo zaradi hitrostnih razlogov.

Ko osvežite stran, je odgovor že pretvorjen v HTML s pomočjo naše Python knjižnice. To počnemo zato, ker želimo, da odgovor izgleda odlično, takoj ko pridete na stran. Če smo se odločili, da preprosto pošljemo surovi odgovor in ga nato pretvorimo s pomočjo naše Javascript knjižnice, boste najprej opazili "grd" surovi odgovor in nato skok v lepo oblikovano različico. To ni tako slabo, vendar je problem v tem, da Google in drugi roboti, ki iščejo našo spletno stran za iskanje, ne izvajajo Javascript. Ti roboti bi vedno videli surovi, grdi odgovor, ki bi lahko škodil našemu iskalniku.

Zdaj, zakaj te dve knjižnici različno obravnavata kode HTML? Knjižnica Python, odgovorna za končni odgovor, "pobegne" v HTML, kar pomeni, da vzame te kode HTML in jih spremeni v neškodljivo besedilo. Pravim, da je neškodljivo, saj si lahko predstavljate, da lahko uporabniki vnesejo HTML v našo stran in popolnoma uničijo postavitev strani. Knjižnica Javascript, ki je odgovorna za predogled, NE pobere HTML-ja, kar je tehnično napaka.

V prihodnosti bomo morali iz varnostnih razlogov odstraniti zmožnost knjižnice Javascript za predogled HTML kode. Preusmerili se bomo tudi na uporabo ene same knjižnice, da prikažemo vse naše besedilo Markdown.