Minulla on kysymys siitä, miten vastaus on tehty. Olen huomannut, että monet HTML-koodit näyttävät toimivan vastauksen esikatselussa, mutta eivät näy lopullisena vastauksena. Miksi nämä estetään?

Minulla on kysymys siitä, miten vastaus on tehty. Olen huomannut, että monet HTML-koodit näyttävät toimivan vastauksen esikatselussa, mutta eivät näy lopullisena vastauksena. Miksi nämä estetään?
Anonim

Lyhyt vastaus on, että käytämme kahta eri Markdown-kirjastoa esikatselun ja lopullisen vastauksen tekemiseen. Nämä kaksi eri kirjastoa käsittelevät HTML: ää eri tavalla.

Vastauksemme on muotoiltu ja muotoiltu käyttäen merkintäkieliä "Markdown". Markdown muuntaa ennalta määritetyn merkinnän HTML: ksi linkkien, kuvien, otsikoiden, kursiivin, korostusten jne.

Vastauksemme esikatselu luodaan selaimessa Javascript-kirjastoa käyttämällä liian teknisesti. Teemme niin nopeuden vuoksi.

Kun päivität sivun, vastaus muunnetaan HTML-muotoon Python Markdown -kirjastomme avulla. Teemme tämän, koska haluamme vastauksen näyttävän hyvältä heti, kun pääset sivulle. Jos päätimme yksinkertaisesti tuottaa raakaa vastausta ja muuntaa sen sitten Javascript-kirjastomme avulla, huomaat ensin "ruma" raakaa vastausta ja sitten hyppäämällä kauniisti muotoiltuun versioon. Se ei ole niin huono, mutta ongelma on se, että Google ja muut sivustot, jotka indeksoivat sivustoamme etsivät, eivät aja Javascriptia. Nämä botit näkisivät aina raakan, ruman vastauksen, joka saattaisi vahingoittaa haun sijoitusta.

Miksi nämä kaksi kirjastoa käsittelevät HTML-koodeja eri tavalla? Lopullisesta vastauksesta vastuussa oleva Python-kirjasto pakenee HTML: stä, mikä tarkoittaa, että se ottaa nämä HTML-koodit ja muuttaa ne harmittomaksi tekstiksi. Sanon harmittomaksi, koska voitte kuvitella, että käyttäjät voivat syöttää HTML-sivusi sivulle, joka voi täysin tuhota sivun ulkoasun. Esikatselusta vastaava Javascript-kirjasto EI pääse HTML-koodiin, joka on teknisesti vika.

Tulevaisuudessa meidän on poistettava Javascript-kirjaston kyky esikatsella HTML-koodeja turvallisuussyistä. Siirrymme myös yhden kirjaston käyttämiseen, jotta kaikki Markdown-tekstisi saadaan.