Saya mempunyai soalan tentang bagaimana jawapannya diberikan. Saya perhatikan bahawa banyak kod HTML kelihatan berfungsi dalam pratonton jawapan tetapi tidak muncul jawapan terakhir. Mengapa ini disekat?

Saya mempunyai soalan tentang bagaimana jawapannya diberikan. Saya perhatikan bahawa banyak kod HTML kelihatan berfungsi dalam pratonton jawapan tetapi tidak muncul jawapan terakhir. Mengapa ini disekat?
Anonim

Jawapan ringkasnya ialah kami menggunakan dua perpustakaan Markdown yang berbeza untuk memberikan pratonton dan jawapan akhir. Kedua-dua perpustakaan yang berbeza merawat HTML secara berbeza.

Jawapan kami ditata dan diformatkan menggunakan bahasa markup yang dipanggil "Markdown." Markdown menukarkan markup yang dipratentukan ke HTML untuk pautan, imej, tajuk, huruf miring, penekanan, dll.

Tanpa mendapat terlalu teknikal, pratonton jawapan kami dibuat dalam pelayar menggunakan perpustakaan Javascript. Kami melakukan ini kerana alasan kelajuan.

Apabila anda menyegarkan halaman, jawapannya telah ditukar kepada HTML menggunakan perpustakaan Python Markdown kami. Kami melakukan ini kerana kami mahu jawapannya kelihatan hebat sebaik sahaja anda sampai ke halaman. Jika kami memutuskan untuk hanya mengeluarkan jawapan mentah dan kemudian menukarnya menggunakan perpustakaan Javascript kami, anda akan melihat terlebih dahulu jawapan mentah "hodoh" dan kemudian melompat ke dalam versi yang diformat dengan baik. Itu tidak begitu buruk, tetapi masalahnya adalah bahawa Google dan bot lain yang merangkak tapak kami untuk carian tidak menjalankan Javascript. Bot-bot tersebut akan selalu melihat jawapan yang mentah dan jelek yang boleh menjejaskan kedudukan carian kami.

Sekarang, kenapa kedua perpustakaan ini memperlakukan kod HTML secara berbeza? Perpustakaan Python yang bertanggungjawab untuk jawapan terakhir "melarikan diri" HTML, bermakna ia mengambil kod HTML dan mengubahnya menjadi teks yang tidak berbahaya. Saya katakan tidak berbahaya kerana anda boleh membayangkan yang membolehkan pengguna memasukkan HTML ke dalam laman kami sepenuhnya boleh memusnahkan susun atur halaman. Pustaka Javascript yang bertanggungjawab untuk pratonton TIDAK melarikan diri dari HTML, yang merupakan pepijat teknikal.

Pada masa akan datang, kami perlu mengalih keluar keupayaan perpustakaan Javascript untuk mempratonton kod HTML untuk tujuan keselamatan. Kami juga akan bergerak menggunakan pustaka tunggal untuk menjadikan semua teks Markdown kami.