Ik heb een vraag over hoe het antwoord wordt weergegeven. Ik heb gemerkt dat veel HTML-codes in de preview van het antwoord lijken te werken, maar niet het laatste antwoord lijken te bevatten. Waarom worden deze geblokkeerd?

Ik heb een vraag over hoe het antwoord wordt weergegeven. Ik heb gemerkt dat veel HTML-codes in de preview van het antwoord lijken te werken, maar niet het laatste antwoord lijken te bevatten. Waarom worden deze geblokkeerd?
Anonim

Het korte antwoord is dat we twee verschillende Markdown-bibliotheken gebruiken om de preview en het uiteindelijke antwoord te renderen. Deze twee verschillende bibliotheken behandelen HTML anders.

Onze antwoorden zijn gestileerd en opgemaakt met behulp van een markup-taal genaamd "Markdown." Markdown converteert voorgedefinieerde markup naar HTML voor links, afbeeldingen, headers, cursivering, accenten, etc.

Zonder te technisch te worden, wordt ons antwoordvoorbeeld in de browser gemaakt met behulp van een Javascript-bibliotheek. We doen dit om snelheidsredenen.

Wanneer u de pagina vernieuwt, is het antwoord al geconverteerd naar HTML met behulp van onze Python Markdown-bibliotheek. We doen dit omdat we willen dat het antwoord er goed uitziet zodra u op de pagina komt. Als we besloten om gewoon het onbewerkte antwoord uit te voeren en het vervolgens te converteren met onze Javascript-bibliotheek, zou je eerst het "lelijke" onbewerkte antwoord opmerken en dan een sprong in de mooi geformatteerde versie. Dat is niet zo erg, maar het probleem is dat Google en andere bots die onze site crawlen om te zoeken geen Javascript gebruiken. Die bots zouden altijd het ruwe, lelijke antwoord zien dat onze zoekrangschikking zou kunnen schaden.

Waarom gaan deze twee bibliotheken HTML-codes anders behandelen? De Python-bibliotheek die verantwoordelijk is voor het uiteindelijke antwoord, ontsnapt aan HTML, wat betekent dat het die HTML-codes nodig heeft en deze verandert in onschadelijke tekst. Ik zeg onschuldig omdat je je kunt voorstellen dat gebruikers HTML kunnen invoeren op onze pagina, de lay-out van de pagina volledig kan vernietigen. De JavaScript-bibliotheek die verantwoordelijk is voor het voorbeeld, ontsnapt NIET aan HTML, wat technisch gezien een fout is.

In de toekomst moeten we de mogelijkheid van de Javascript-bibliotheek om HTML-codes te bekijken om veiligheidsredenen verwijderen. We gaan ook over op het gebruik van één bibliotheek om al onze Markdown-tekst weer te geven.