У мене є питання про те, як відповідь буде надано. Я помітив, що багато HTML кодів, здається, працюють у попередньому перегляді відповіді, але не з'являються остаточна відповідь. Чому вони заблоковані?

У мене є питання про те, як відповідь буде надано. Я помітив, що багато HTML кодів, здається, працюють у попередньому перегляді відповіді, але не з'являються остаточна відповідь. Чому вони заблоковані?
Anonim

Коротка відповідь: ми використовуємо дві різні бібліотеки Markdown для перегляду попереднього перегляду та остаточної відповіді. Ці дві різні бібліотеки по-різному ставляться до HTML.

Наші відповіді формуються та форматуються за допомогою мови розмітки, яка називається "Markdown". Markdown перетворює попередньо визначену розмітку в HTML для посилань, зображень, заголовків, курсивів, акцентів і т.д.

Без надмірного технічного перегляду нашої відповіді у браузері створюється бібліотека Javascript. Ми робимо це з причин швидкості.

Коли ви оновлюєте сторінку, відповідь вже перетворена в HTML за допомогою нашої бібліотеки Markdown Python. Ми робимо це, тому що ми хочемо, щоб відповідь виглядала чудово, як тільки ви потрапите на сторінку. Якщо ми вирішили просто вивести сиру відповідь, а потім перетворити її за допомогою нашої бібліотеки Javascript, ви помітите, що спочатку "потворний" вихідний відповідь, а потім стрибок у красиво відформатовану версію. Це не так вже й погано, але проблема в тому, що Google і інші боти, які сканують наш сайт для пошуку, не запускають Javascript. Ці боти завжди бачать сиру, потворну відповідь, яка може зашкодити нашому пошуковому рейтингу.

Тепер, чому ці дві бібліотеки по-різному ставляться до кодів HTML? Бібліотека Python, відповідальна за остаточну відповідь, "виривається" з HTML, що означає, що вона приймає ці HTML коди і змінює їх на нешкідливий текст. Я кажу нешкідливо, тому що ви можете собі уявити, що дозволити користувачам вводити HTML на нашу сторінку може повністю знищити макет сторінки. Бібліотека Javascript, відповідальна за попередній перегляд, НЕ ухиляється від HTML, що технічно є помилкою.

У майбутньому нам доведеться видалити можливості бібліотеки Javascript для перегляду кодів HTML з міркувань безпеки. Ми також переходимо до використання однієї бібліотеки для візуалізації всього нашого тексту Markdown.