¿Alguien me puede indicar un ejemplo de cómo usar Hamlet sin Yesod? http://www.yesodweb.com/book/templates es una gran parte de la documentación, pero no puedo hacer que mi sesión ghci represente ni siquiera una plantilla simple de aldea sin colapsar.Uso de Hamlet en Haskell sin Yesod
Respuesta
Aquí hay un ejemplo que muestra la mayoría de las cosas básicas, incluida la representación de URL tipadas.
{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}
import Data.Text
import Text.Blaze.Html.Renderer.String (renderHtml)
import Text.Hamlet hiding (renderHtml)
data Url = Haskell | Yesod
renderUrl Haskell _ = pack "http://haskell.org"
renderUrl Yesod _ = pack "http://www.yesodweb.com"
title = pack "This is in scope of the template below"
template :: HtmlUrl Url
template = [hamlet|
<html>
<head>
#{title}
<body>
<p>
<a [email protected]{Haskell}>Haskell
<a [email protected]{Yesod}>Yesod
|]
main = do
let html = template renderUrl
putStrLn $ renderHtml html
Salida:
<html><head>This is in scope of the template below</head>
<body><p><a href="http://haskell.org">Haskell</a>
<a href="http://www.yesodweb.com">Yesod</a>
</p>
</body>
</html>
Al intentar esto como está, me da este error de compilación ghc: http://pastie.org/2220259 si cambio el @ {} al # {} I get: http://pastie.org/2220261 – singpolyma
Funciona bien ejecutarlo con 'runghc' usando' ghc 7.0.2' y 'hamlet 0.8.2'. ¿Cómo estás corriendo esto? El primer error se ve muy extraño. ¿Cómo terminaron los pragmas del lenguaje en el HTML? El segundo parece que solo tienes que eliminar algunas de las llamadas 'pack'. – hammar
que estaba tratando de ejecutar ghc --make, trying runghc Tengo http://pastie.org/2220468 ghc 7.0.3 aldea 0.6.1.2 - oh, mi versión es bastante más antigua que la tuya. tal vez la sintaxis ha sido cambiada :( – singpolyma
Bueno, handwaving la prestación URL y hacer las cosas de la manera más estúpida que funciona, podemos utilizar esto:
hamVal = [$hamlet|
<html>
<head><title>Test page
<body>Testing
|]
test :: ByteString
test = renderHamlet (\_ _ -> "") hamVal
que funciona como se esperaba. Me imagino que quieres hacer algo un poco más útil, pero el ejemplo trivial funciona bien así que es difícil decir más sin saber dónde estás teniendo problemas.
Por lo tanto, tengo esto para compilar, pero sorprendentemente emite
Ah, lo he descubierto. Aparentemente la aldea solía ser más como haml, y mi versión es esa vieja sintaxis – singpolyma
- 1. Enlace a un archivo estático de Hamlet
- 2. Hamlet acceso automático a las variables en el alcance
- 3. ¿Qué tipo de sintaxis Haskell se usa en [$ parseRoutes |/Home GET |]?
- 4. ¿Cómo usar UTCTime en yesod sin errores ocultos en el módulo?
- 5. Excepciones en Yesod
- 6. cabal instalar Yesod falla?
- 7. Uso de SSL en Haskell
- 8. Autenticación múltiple en Yesod?
- 9. Websockets en Yesod?
- 10. Sin puntos en Haskell
- 11. Uso excesivo deIntegral en Haskell
- 12. Uso de Cabal (Haskell)
- 13. problemas para instalar yesod
- 14. GHC cabal install hamlet falla con un error oscuro
- 15. Yesod Editable Table
- 16. Enchufes sin procesar en Haskell
- 17. Uso de tipos de datos en Haskell
- 18. ¿Supero (supercompilador de Haskell) uso?
- 19. Uso correcto de ReadP en Haskell
- 20. Yesod eliminar cascada
- 21. soluciones de gráficos para Yesod
- 22. Visualización de imágenes generadas dinámicamente en Yesod
- 23. Ejemplo de MongoDB para Yesod/Persistente
- 24. Formularios de Yesod con flujo de página
- 25. N-queens en Haskell sin lista transversal
- 26. Sintaxis ¿Qué significa $$ en Haskell?
- 27. Aplicación Yesod independiente del nombre de host
- 28. Profundo puede apilarse con yesod
- 29. ¿Cómo uso una función de biblioteca Haskell?
- 30. Haskell IO Monad y uso de memoria
Podría ayudar si usted mostró lo que estaba haciendo en GHCi, y cómo se bloquea. –