Как вернуть неэкранированный ответ в веб-приложении Snap

Я хочу вернуть некоторый предварительно отформатированный html в приложении Snap. Однако, когда обработчик ниже обслуживается,

aPage :: Handler App App ()
aPage = do 
  writeText "<p>This is a page</p>"

Вывод заключен в теги ‹ pre >.

...<body><pre><p>This is a page</p></pre></body> ...

Есть ли простой способ добавить дословную строку в тело ответа?


person trevor cook    schedule 01.08.2017    source источник
comment
Snap делает именно то, что вы просили. Рассмотрите возможность правильной настройки типа контента и отправки полного HTML-документа. Если вы сделаете и то, и другое, ваш браузер с большей вероятностью будет делать то, что вы ожидаете. Как бы вы ни проверяли состояние браузера, он сообщает вам, как он отображает текстовые документы в виде узлов DOM.   -  person Carl    schedule 02.08.2017
comment
Спасибо. Я был далеко. Это сделало это.   -  person trevor cook    schedule 02.08.2017
comment
Угу. После повторного прочтения моего комментария он звучит намного короче, чем я имел в виду. Извините за это, и я рад, что вы во всем разобрались.   -  person Carl    schedule 02.08.2017
comment
Спасибо за это, я действительно должен был сделать глубокий вдох и прочитать несколько раз. В конце концов, это меня точно устроило. Так что еще раз спасибо.   -  person trevor cook    schedule 02.08.2017


Ответы (1)


Вы не знаете.

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

aPage :: Handler App App ()
aPage = do 
  writeText "<!DOCTYPE html><html><head></head><body><p>This is a page</p></body></html>"

После того, как я возился с Blaze-html и Lucid, двумя библиотеками для генерации html, я был уверен, что под капотом происходит какое-то форматирование, и подумал, что нужна какая-то функция toHtmlRaw. Совсем не тот ответ, которого я ожидал.

person trevor cook    schedule 02.08.2017