Haskell Happstack, могу ли я использовать строку с HTML-тегами в качестве ответа?
module Main where
import Happstack.Lite
import Text.Html
main :: IO ()
main = serve Nothing $ msum [
nullDir >> ok homePage
, notFound page404
]
homePage :: Response
homePage = toResponse $ do
p (toHtml "hello") +++
strong (toHtml "BOLD")
page404 :: Response
page404 = toResponse "<strong>How do I parse the tag STRONG?</strong>"
Привет, я новичок в happystack. Мне интересно, есть ли способ, которым я могу просто отобразить строку с тегами HTML в качестве ответа вместо использования библиотеки шаблонов HTML?
В приведенном выше коде <strong>
тег на странице 404 экранирован, поэтому я получил<strong>How do I pase the tag BOLD?</strong>
msgstr "как ответ, в то время как один homePage отображается как"Как мне разобрать тег BOLD".
Должен ли я сначала проанализировать строку? Но разве это не будет слишком медленно, если строка html большая?
Заранее спасибо.
1 ответ
ToMessage String
instance устанавливает тип ответа text/plain, а не text/html.
Вы можете написать свой собственный экземпляр для новичка String
по сути, это копия исходного экземпляра, но с типом ответа, установленным в text/html, или с использованием различных средств в библиотеке для изменения типа ответа.
Кроме того, вы, вероятно, должны заметить, что отправка HTTP-ответа 200 на ошибку 404 сбивает с толку.