Вопрос

Сайты Stockexchange используют синтаксис Marked для написания вопросов и ответов.Это построено с использованием PageAwn на стороне клиента и markdownsharp и ДжеффHTML Sizitizer на стороне сервера.Я думаю построить что-то очень похожее.

Я понимаю, почему мне нужно дезинфицировать HTML на стороне сервера.Но какова цель Markdownsharp?Почему я просто не сделаю перевод с Markdown до HTML с PageAntown на стороне клиента и отправить это на сервер?

Это было полезно?

Решение

Самые важные причины:

  1. Мы хотим, чтобы самые основные (в смысле «фундаментальных») функциональных объектов комплекса обмена стеками, спрашивая и ответы на работу без JavaScript . Самые продвинутые вещи, такими как голосование, промежуток, ui, ui, помогите тексты, избивающие, глобальные почтовые ящики и athnot требуют JavaScript, и это нормально. Но единственное, что сайты не могут жить без - Q & A - не должны иметь это требование, чтобы сохранить трение как можно ниже.

    Конечно, когда у вас нет JavaScript в качестве требования, вы не можете требовать, чтобы клиент представлял разметку.

  2. Мы храним только оказанную HTML-версию самой последней версии поста. Для прошлых ревизий мы храним только источник с удовольствием. Хранение обеих версий для каждого редактирования, которые сделаны, будут иметь огромную трату пространства, поскольку старые версии практически не требуются. Но иногда они нужны, например, в истории ревизии. Поэтому для этого мы должны в любом случае представлять на сервере.

  3. Даже если вы перезаряжаете на стороне сервера, позволяя клиенту сделать рендеринг, очевидно, удаляет доверие, которое вы можете иметь в представленной версии, действительно сделанную из разметки. Представьте себе следующее:

    I, злой спамер, опубликуйте следующий ответ:

    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
    
    .

    Но я отправляю рендурируемую версию, в которой ссылка на самом деле идет на соответствующую сайту на тонкостях параллелизма черепахи. Поскольку сервер ожидает как источник разметки, так и оказанные HTML от меня, это доверяет, что тот был сделан из другого.

    вдоль приходит SEAN SAKET, известный пользователь переполнения стека с репутацией 120K в теге логотипа в одиночку. Он видит, что ссылка действительно идет на соответствующую страницу, любит ответ, активирует его, публикует «отличный ответ; сайт, который вы ссылаетесь, имеет тонны полезного контента!» Комментарий, и пока он у него на нем, он исправляет опечатку «моря» -> «см.» (который спамер сделан сознательно).

    , но уценка, которая была в редакторе после нажатия «Редактирование», сделала не больше не содержит соответствующую ссылку; Он содержал ссылку Rolex. И, таким образом, - неизвестное к Шену - он не только исправил опечатки, но также изменил ссылку, чтобы перейти на сайт спамата.

    Теперь у вас есть пост со последним редактированием, приходящим от доверенного пользователя, одобряя ответ, но со ссылкой, которую мы бы не нажимали на людей.

    и история ревизии (см. точку 2.), даже не будет , что ссылка была изменена.

  4. Следует отметить, что оригинальная версия редактора WMD JavaScript фактически имела функциональность, которую вы описываете; Вы можете настроить его, чтобы отправить представленный HTML на сервер. Мы наконец удалили эту функциональность, когда мы опубликовали нашу рефакторизую версию под названием «PageSawn», поскольку мы никогда не использовали его, поддерживали его, и я, честно говоря, не знаю, что на самом деле работают больше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top