{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} module Main where import Data.Text (Text) import Web.Scotty (ActionM, scotty, get, html) import Text.Blaze.Html.Renderer.Text (renderHtml) import Text.Blaze (Markup) import Text.Hamlet (shamlet) import Text.Blaze.Html (Html) render :: Html -> ActionM () render = html . renderHtml main :: IO () main = scotty 3000 $ get "/" $ render homepage data Person = Person { _name :: Text , _pic :: Text , _twitter :: Text , _website :: Text , _books :: [Book] } data Book = Book { _title :: Text , _author :: Text , _link :: Text } allPeople :: [Person] allPeople = [ Person { _name = "Joe Rogan" , _pic = "https://pbs.twimg.com/profile_images/552307347851210752/vrXDcTFC_400x400.jpeg" , _twitter = "joerogan" , _website = "http://joerogan.com" , _books = [ Book {_title = "Food of the Gods" , _author = "Terence McKenna" , _link = "https://www.amazon.com/Food-Gods-Original-Knowledge-Evolution/dp/0553371304" } , Book { _title = "The War of Art" , _author ="Steven Pressfield" , _link ="https://www.amazon.com/dp/B007A4SDCG/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1" } ] } , Person { _name = "Beyoncé" , _pic = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTxT84sF19lxdnSiblIXAp-Y4wAigpQn8sZ2GtAerIR_ApiiEJfFQ" , _twitter = "Beyonce" , _website = "http://beyonce.com" , _books = [ Book { _title = "What Will It Take To Make A Woman President?" , _author = "Marianne Schnall" , _link = "https://www.amazon.com/dp/B00E257Y7G/ref=dp-kindle-redirect?_encoding=UTF8&btkr="} ] } , Person { _name = "Barrack Obama" , _pic = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQeLzftR36p0hYI-EKNa5fm7CYDuN-vyz23_R48ocqa8X1nPr6C" , _twitter = "BarackObama" , _website = "http://barackobama.com" , _books = [ Book { _title = "An American Marriage" , _author = "Tayari Jones" , _link = "https://www.amazon.com/American-Marriage-Novel-Oprahs-Selection-ebook/dp/B01NCUXEFR"} , Book { _title = "Americanah" , _author = "Chimamanda Ngozi Adichie" , _link = "https://www.amazon.com/dp/B00A9ET4MC/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1"} ] } , Person { _name = "Warren Buffet" , _pic = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQQbmnUykS6zqgzaf44tsq1RAsnHe6H7fapEoSqUwAoJGSFKbAPSw" , _twitter = "WarrenBuffett" , _website = "http://berkshirehathaway.com" , _books = [ Book { _title = "The Intelligent Investor" , _author = "Benjamin Graham" , _link = "https://www.amazon.com/dp/B000FC12C8/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1"} , Book { _title = "Security Analysis" , _author = "Benjamin Graham" , _link = "https://www.amazon.com/Security-Analysis-Foreword-Buffett-Editions-ebook/dp/B0037JO5J8"} ] } , Person { _name = "Bill Gates" , _pic = "https://pbs.twimg.com/profile_images/988775660163252226/XpgonN0X_400x400.jpg" , _twitter = "BillGates" , _website = "https://www.gatesnotes.com" , _books = [ Book { _title = "Leonardo da Vinci" , _author = "Walter Isaacson" , _link = "https://www.amazon.com/Leonardo-Vinci-Walter-Isaacson/dp/1501139169/ref=sr_1_1_sspa?s=digital-text&ie=UTF8&qid=1549043782&sr=1-1-spons&keywords=leonardo+da+vinci+by+walter+isaacson&psc=1" } , Book { _title = "Educated" , _author = "Tara Wetsover" , _link = "https://www.amazon.com/Educated-Memoir-Tara-Westover-ebook/dp/B072BLVM83/ref=sr_1_1?ie=UTF8&qid=1549044230&sr=8-1&keywords=education+tara+westover" } ] } ] displayPerson :: Person -> Markup displayPerson person = [shamlet|