2011-07-15 18 views

cevap

16

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> 
+0

Bunu denemek, bana bu ghc derleme hatasını verir: http://pastie.org/2220259 @ {} - # {} I değiştirirsem get: http://pastie.org/2220261 – singpolyma

+0

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

+0

, 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

3

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.

+0

Yani, bunu derlemek için aldım, ancak şaşırtıcı bir şekilde Test sayfası <body> Test sayfası – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/8611/">singpolyma</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">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 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/8611/">singpolyma</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">İlgili konular</div> <ul class="relative_list"> <li> 1. <a href="http://tr.voidcc.com/question/p-gsxfariu-m.html" target="_blank" title="Hamlet şablonunda $ forall ile sorun"> Hamlet şablonunda $ forall ile sorun </a> </li> <li> 2. <a href="http://tr.voidcc.com/question/p-snxflvyk-g.html" target="_blank" title="Laravel olmadan Eloquent ORM kullanımı"> Laravel olmadan Eloquent ORM kullanımı </a> </li> <li> 3. <a href="http://tr.voidcc.com/question/p-phlitqno-s.html" target="_blank" title="Yesod (hamlet) şablonlarındaki yorum sözdizimi nedir?"> Yesod (hamlet) şablonlarındaki yorum sözdizimi nedir? </a> </li> <li> 4. <a href="http://tr.voidcc.com/question/p-ylmfposr-c.html" target="_blank" title="Bağımsız değişken listesi olmadan şablon adının geçersiz kullanımı"> Bağımsız değişken listesi olmadan şablon adının geçersiz kullanımı </a> </li> <li> 5. <a href="http://tr.voidcc.com/question/p-esrijztw-x.html" target="_blank" title="Android - Mobil şebeke kullanımı olmadan kendime sahte sms göndermeye çalışıyorum"> Android - Mobil şebeke kullanımı olmadan kendime sahte sms göndermeye çalışıyorum </a> </li> <li> 6. <a href="http://tr.voidcc.com/question/p-scofxenq-bb.html" target="_blank" title="python, tarih aralıkları olmadan zaman serileri çizmek için arsa kullanımı"> python, tarih aralıkları olmadan zaman serileri çizmek için arsa kullanımı </a> </li> <li> 7. <a href="http://tr.voidcc.com/question/p-kkyyekfp-g.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> <li> 8. <a href="http://tr.voidcc.com/question/p-ywiytkoj-w.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> <li> 9. <a href="http://tr.voidcc.com/question/p-ncgmguer-k.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> <li> 10. <a href="http://tr.voidcc.com/question/p-cjrmwdsz-y.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> <li> 11. <a href="http://tr.voidcc.com/question/p-cpipjipq-u.html" target="_blank" title="kesinlikle kazan-plaka olmadan Strings basit Scala vaka sınıfları Oluşturma"> kesinlikle kazan-plaka olmadan Strings basit Scala vaka sınıfları Oluşturma </a> </li> <li> 12. <a href="http://tr.voidcc.com/question/p-qzheyywu-q.html" target="_blank" title="kAudioSessionProperty_OverrideCategoryMixWithOthers kullanımı"> kAudioSessionProperty_OverrideCategoryMixWithOthers kullanımı </a> </li> <li> 13. <a href="http://tr.voidcc.com/question/p-vgmcahrp-v.html" target="_blank" title="WebRTC: getStats kullanımı()"> WebRTC: getStats kullanımı() </a> </li> <li> 14. <a href="http://tr.voidcc.com/question/p-ownbbinr-g.html" target="_blank" title="ARC olmadan Apple'ın Kullanılabilirliği"> ARC olmadan Apple'ın Kullanılabilirliği </a> </li> <li> 15. <a href="http://tr.voidcc.com/question/p-tokfkctu-o.html" target="_blank" title="ASP.net'de CPU Kullanımı nasıl yapılır"> ASP.net'de CPU Kullanımı nasıl yapılır </a> </li> <li> 16. <a href="http://tr.voidcc.com/question/p-vzqsjiks-h.html" target="_blank" title="DOS'ta boşluk bırakmadan yankı kullanımı"> DOS'ta boşluk bırakmadan yankı kullanımı </a> </li> <li> 17. <a href="http://tr.voidcc.com/question/p-whxlqozt-k.html" target="_blank" title="Kolay, kullanımı kolay LRU önbellek kullanımı java"> Kolay, kullanımı kolay LRU önbellek kullanımı java </a> </li> <li> 18. <a href="http://tr.voidcc.com/question/p-eoqowuob-n.html" target="_blank" title="UTL_FILE sunucu tarafı kullanımı/istemci tarafında kullanımı"> UTL_FILE sunucu tarafı kullanımı/istemci tarafında kullanımı </a> </li> <li> 19. <a href="http://tr.voidcc.com/question/p-edlirrbo-g.html" target="_blank" title="soket getirme web sayfası kullanımı python kullanımı"> soket getirme web sayfası kullanımı python kullanımı </a> </li> <li> 20. <a href="http://tr.voidcc.com/question/p-omwpesal-g.html" target="_blank" title="TabWidget.setDividerDrawable() Kullanımı?"> TabWidget.setDividerDrawable() Kullanımı? </a> </li> <li> 21. <a href="http://tr.voidcc.com/question/p-zwnyujzr-k.html" target="_blank" title="nlog.xml kullanımı"> nlog.xml kullanımı </a> </li> <li> 22. <a href="http://tr.voidcc.com/question/p-hhtlmafx-p.html" target="_blank" title="Bellek kullanımı"> Bellek kullanımı </a> </li> <li> 23. <a href="http://tr.voidcc.com/question/p-qappsimb-w.html" target="_blank" title="NSDictionary kullanımı"> NSDictionary kullanımı </a> </li> <li> 24. <a href="http://tr.voidcc.com/question/p-ykufwddc-g.html" target="_blank" title="MySQL kullanımı()"> MySQL kullanımı() </a> </li> <li> 25. <a href="http://tr.voidcc.com/question/p-tjrnmkaa-t.html" target="_blank" title="cmake kullanımı"> cmake kullanımı </a> </li> <li> 26. <a href="http://tr.voidcc.com/question/p-wwvqqvlb-k.html" target="_blank" title="Assert.Inconclusive kullanımı"> Assert.Inconclusive kullanımı </a> </li> <li> 27. <a href="http://tr.voidcc.com/question/p-phclxhob-t.html" target="_blank" title="Kullanımı 'GMSPlacesClient'"> Kullanımı 'GMSPlacesClient' </a> </li> <li> 28. <a href="http://tr.voidcc.com/question/p-hqnyckem-v.html" target="_blank" title="HdmiControlService kullanımı"> HdmiControlService kullanımı </a> </li> <li> 29. <a href="http://tr.voidcc.com/question/p-zyiuyqbe-y.html" target="_blank" title="Muğlak kullanımı"> Muğlak kullanımı </a> </li> <li> 30. <a href="http://tr.voidcc.com/question/p-gxegbkho-o.html" target="_blank" title="SendBroadcast() kullanımı"> SendBroadcast() kullanımı </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422829"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Son soru </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://tr.voidcc.com/question/p-rlxwldqm-z.html" target="_blank" title="AudioHardware.cpp: 1200: AudioObjectRemovePropertyListener: AudioObjectRemovePropertyListener: Ben AVPlayer başlatmak için çalışıyorum hızlı bir proje üzerinde çalışmak Belirtilen kimliğe 0"> AudioHardware.cpp: 1200: AudioObjectRemovePropertyListener: AudioObjectRemovePropertyListener: Ben AVPlayer başlatmak için çalışıyorum hızlı bir proje üzerinde çalışmak Belirtilen kimliğe 0 </a> </li> <li class="side_article_list_item"> 2. <a href="http://tr.voidcc.com/question/p-zjsqsowy-ba.html" target="_blank" title="Nasıl kaldırılır "TypeError: c is null", Wordpress Page Edit Area"> Nasıl kaldırılır "TypeError: c is null", Wordpress Page Edit Area </a> </li> <li class="side_article_list_item"> 3. <a href="http://tr.voidcc.com/question/p-sylcrzmz-w.html" target="_blank" title="Yerel dateTime'yı nano saniye olmadan java 8 ile karşılaştırın 8"> Yerel dateTime'yı nano saniye olmadan java 8 ile karşılaştırın 8 </a> </li> <li class="side_article_list_item"> 4. <a href="http://tr.voidcc.com/question/p-wpiplnsz-x.html" target="_blank" title="Bir Julia dizisinin tüm öğelerinin eşit olup olmadığını kontrol edin"> Bir Julia dizisinin tüm öğelerinin eşit olup olmadığını kontrol edin </a> </li> <li class="side_article_list_item"> 5. <a href="http://tr.voidcc.com/question/p-xasxqnum-x.html" target="_blank" title="VS hata ayıklama sorunu, bunu aşağıda açıklamama yardımcı olabilecek kim?"> VS hata ayıklama sorunu, bunu aşağıda açıklamama yardımcı olabilecek kim? </a> </li> <li class="side_article_list_item"> 6. <a href="http://tr.voidcc.com/question/p-bbpriwon-v.html" target="_blank" title="Yinelenen FTP dosyalarını listeleme hızlandırma"> Yinelenen FTP dosyalarını listeleme hızlandırma </a> </li> <li class="side_article_list_item"> 7. <a href="http://tr.voidcc.com/question/p-ogafgeaj-x.html" target="_blank" title="İki Satır aynı satırda"> İki Satır aynı satırda </a> </li> <li class="side_article_list_item"> 8. <a href="http://tr.voidcc.com/question/p-affiviys-bb.html" target="_blank" title="Android video kaydedici: yüzey alınamadı"> Android video kaydedici: yüzey alınamadı </a> </li> <li class="side_article_list_item"> 9. <a href="http://tr.voidcc.com/question/p-qaxilaxa-ba.html" target="_blank" title="Keras özel RMSLE metrik"> Keras özel RMSLE metrik </a> </li> <li class="side_article_list_item"> 10. <a href="http://tr.voidcc.com/question/p-ftbduqbm-y.html" target="_blank" title="C++ 'dan bir yapıyla C++ çağrısı C#"> C++ 'dan bir yapıyla C++ çağrısı C# </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> İlgili konular</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://tr.voidcc.com/question/p-gsxfariu-m.html" target="_blank" title="Hamlet şablonunda $ forall ile sorun"> Hamlet şablonunda $ forall ile sorun </a> </li> <li class="side_article_list_item"> 2. <a href="http://tr.voidcc.com/question/p-snxflvyk-g.html" target="_blank" title="Laravel olmadan Eloquent ORM kullanımı"> Laravel olmadan Eloquent ORM kullanımı </a> </li> <li class="side_article_list_item"> 3. <a href="http://tr.voidcc.com/question/p-phlitqno-s.html" target="_blank" title="Yesod (hamlet) şablonlarındaki yorum sözdizimi nedir?"> Yesod (hamlet) şablonlarındaki yorum sözdizimi nedir? </a> </li> <li class="side_article_list_item"> 4. <a href="http://tr.voidcc.com/question/p-ylmfposr-c.html" target="_blank" title="Bağımsız değişken listesi olmadan şablon adının geçersiz kullanımı"> Bağımsız değişken listesi olmadan şablon adının geçersiz kullanımı </a> </li> <li class="side_article_list_item"> 5. <a href="http://tr.voidcc.com/question/p-esrijztw-x.html" target="_blank" title="Android - Mobil şebeke kullanımı olmadan kendime sahte sms göndermeye çalışıyorum"> Android - Mobil şebeke kullanımı olmadan kendime sahte sms göndermeye çalışıyorum </a> </li> <li class="side_article_list_item"> 6. <a href="http://tr.voidcc.com/question/p-scofxenq-bb.html" target="_blank" title="python, tarih aralıkları olmadan zaman serileri çizmek için arsa kullanımı"> python, tarih aralıkları olmadan zaman serileri çizmek için arsa kullanımı </a> </li> <li class="side_article_list_item"> 7. <a href="http://tr.voidcc.com/question/p-kkyyekfp-g.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> <li class="side_article_list_item"> 8. <a href="http://tr.voidcc.com/question/p-ywiytkoj-w.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> <li class="side_article_list_item"> 9. <a href="http://tr.voidcc.com/question/p-ncgmguer-k.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> <li class="side_article_list_item"> 10. <a href="http://tr.voidcc.com/question/p-cjrmwdsz-y.html" target="_blank" title="Kullanımı"> Kullanımı </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://tr.voidcc.com/contact">Bize ulaşın</a></li> <li>© 2020 TR.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>