Kimse Hamlet'i Yesod kullanmadan nasıl kullanabileceğine dair bir örnek verebilir mi? http://www.yesodweb.com/book/templates, büyük bir belgelendirmedir, ancak ghci oturumumu, çökmeden basit bir hamlet şablonunu bile oluşturmak için alamıyorum.Yesil olmadan Haskell'de Hamlet Kullanımı
cevap
Yazdığınız URL'lerin oluşturulması da dahil olmak üzere temel öğelerin çoğunu gösteren bir örnek.
{-# 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
Çıktı:
<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>
Bunu denemek, bana bu ghc derleme hatasını verir: http://pastie.org/2220259 @ {} - # {} I değiştirirsem get: http://pastie.org/2220261 – singpolyma
Burada "ghc 7.0.2" ve "hamlet 0.8.2" kullanarak runghc ile çalışan iyi çalışıyor. Bunu nasıl çalıştırıyorsun? İlk hata çok tuhaf görünüyor. Dil pragmaları HTML'de nasıl sonuçlandı? İkincisi, sadece 'paket' çağrılarının bazılarını kaldırmanız gerektiği gibi görünüyor. Ghc --make çalıştırmaya çalışıyordu – hammar
, runghc çalışıyorum http://pastie.org/2220468 ghc 7.0.3 mezra 0,6.1.2 - oh, benim sürümü oldukça sizinki daha büyük. belki de sözdizimi değiştirildi :( – singpolyma
Eh, URL oluşturma handwaving ve işleri en aptal bir biçimde yapmak, bu kullanabilirsiniz: beklendiği gibi çalıştığını
hamVal = [$hamlet|
<html>
<head><title>Test page
<body>Testing
|]
test :: ByteString
test = renderHamlet (\_ _ -> "") hamVal
. Biraz daha yararlı bir şey yapmak istediğinizi hayal ediyorum ama buradaki önemsiz örnek iyi çalışıyor, bu yüzden nerede sorun yaşadığınızı bilmeden daha fazlasını söylemek zor.
Ah dönüştürülmüş-uygun-html yerine test çıktı, onu keşfettim. Görünüşe göre hamlet, haml gibi daha eskidi ve benim sürümüm bu eski sözdizimi – singpolyma
- 1. Hamlet şablonunda $ forall ile sorun
- 2. Laravel olmadan Eloquent ORM kullanımı
- 3. Yesod (hamlet) şablonlarındaki yorum sözdizimi nedir?
- 4. Bağımsız değişken listesi olmadan şablon adının geçersiz kullanımı
- 5. Android - Mobil şebeke kullanımı olmadan kendime sahte sms göndermeye çalışıyorum
- 6. python, tarih aralıkları olmadan zaman serileri çizmek için arsa kullanımı
- 7. Kullanımı
- 8. Kullanımı
- 9. Kullanımı
- 10. Kullanımı
- 11. kesinlikle kazan-plaka olmadan Strings basit Scala vaka sınıfları Oluşturma
- 12. kAudioSessionProperty_OverrideCategoryMixWithOthers kullanımı
- 13. WebRTC: getStats kullanımı()
- 14. ARC olmadan Apple'ın Kullanılabilirliği
- 15. ASP.net'de CPU Kullanımı nasıl yapılır
- 16. DOS'ta boşluk bırakmadan yankı kullanımı
- 17. Kolay, kullanımı kolay LRU önbellek kullanımı java
- 18. UTL_FILE sunucu tarafı kullanımı/istemci tarafında kullanımı
- 19. soket getirme web sayfası kullanımı python kullanımı
- 20. TabWidget.setDividerDrawable() Kullanımı?
- 21. nlog.xml kullanımı
- 22. Bellek kullanımı
- 23. NSDictionary kullanımı
- 24. MySQL kullanımı()
- 25. cmake kullanımı
- 26. Assert.Inconclusive kullanımı
- 27. Kullanımı 'GMSPlacesClient'
- 28. HdmiControlService kullanımı
- 29. Muğlak kullanımı
- 30. SendBroadcast() kullanımı
Eğer GHCi yapıyor ve nasıl çöküyor ne gösterdi ona iyi gelebilir. –