Chúng tôi muốn cơ bản nhất (theo nghĩa của "cơ bản") chức năng của các trang web stack Trao đổi, hỏi và trả lời, để làm việc mà không Javascript. Hầu hết các nội dung nâng cao như bỏ phiếu, gắn cờ, giao diện người dùng, văn bản trợ giúp, yêu thích, hộp thư đến toàn cầu và không yêu cầu JavaScript, điều đó không sao. Nhưng một điều mà các trang web không thể sống mà không có – Q & A – không nên có yêu cầu đó, để giữ ma sát càng thấp càng tốt.
Tất nhiên, khi bạn không có JavaScript làm yêu cầu, bạn không thể yêu cầu khách hàng hiển thị Đánh dấu.
Ngay cả khi bạn tái khử trùng trên phía máy chủ, cho phép khách hàng thực hiện hiển thị rõ ràng sẽ xóa sự tin tưởng mà bạn có thể có trong phiên bản được hiển thị thực sự được tạo từ Markdown. Hãy tưởng tượng như sau:
tôi, một spammer ác, gửi câu trả lời sau đây:
As you can sea on [this awesome site][1],
... (long text on thread-safe usage of the turtle in LOGO) ...
Hope that helps!
[1]: http://almost-real-rolex-watches.biz
Nhưng tôi gửi một phiên bản render trong đó liên kết thực sự đi đến một trang web có liên quan về những phức tạp của rùa đồng thời. Vì máy chủ mong đợi cả nguồn Markdown và HTML được hiển thị từ tôi, nên nó tin tưởng rằng một cái đã được tạo từ cái kia.
Cùng đi kèm Sean Sceat, người dùng Stack Overflow nổi tiếng với danh tiếng 120k chỉ trong thẻ biểu trưng. Ông thấy rằng liên kết thực sự đi đến một trang có liên quan, thích câu trả lời, upvotes nó, đăng một "câu trả lời tuyệt vời; các trang web bạn liên kết đến có tấn nội dung hữu ích!" bình luận, và trong khi anh ấy ở đó, anh ấy sửa lỗi đánh máy "biển" -> "xem" (mà người gửi spam đã cố tình thực hiện).
Nhưng Markdown nằm trong trình chỉnh sửa sau khi nhấp vào "chỉnh sửa" đã không chứa liên kết có liên quan nữa; nó chứa liên kết Rolex. Và do đó, – không được biết đến với Sean – anh ta không chỉ sửa lỗi đánh máy, mà còn thay đổi liên kết để truy cập trang web của người gửi spam.
Bây giờ bạn có một bài đăng có chỉnh sửa cuối cùng đến từ một người dùng đáng tin cậy, xác nhận câu trả lời, nhưng với một liên kết mà chúng tôi không muốn mọi người nhấp vào.
Và lịch sử sửa đổi (xem điểm 2.), thậm chí sẽ không hiển thị rằng liên kết đã được thay đổi.
Sự cố 2 và 3 chỉ xảy ra nếu máy chủ xử lý phiên bản được hiển thị và tôi không thấy lý do tại sao điều này có thể xảy ra nếu khách hàng thực hiện tất cả hiển thị. Chỉ cần để máy chủ xử lý phiên bản Markdown độc quyền. Tất nhiên, lý do 1 là đủ hấp dẫn một mình. Nhưng tôi không hiểu 2 hoặc 3. –
@KonradRudolph Bạn có nghĩa là trang sẽ chỉ nhận được nguồn Markdown và khách hàng sẽ hiển thị HTML khi ai đó xem trang? Điều đó có nghĩa là Google (và mọi người khác không chạy JavaScript) không bao giờ thấy nội dung. Ngoài ra, câu hỏi là về việc gửi nội dung trả về cho máy chủ. – balpha
Vâng, Google cũng sẽ thấy trang có nội dung Markdown được nhúng. Nhưng vâng, tôi không nghĩ vậy. –