1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module Main where
import Data.Function ((&))
import Data.Text (Text)
import Web.Scotty (ActionM, scotty, get, html)
import Text.Blaze.Html.Renderer.Text (renderHtml)
import Text.Hamlet (shamlet, hamlet)
import Text.Blaze.Html (Html)
import Text.Blaze (Markup)
import Data.Monoid (mconcat)
render :: Html -> ActionM ()
render = html . renderHtml
main :: IO ()
main = scotty 3000 $
get "/" $ render influencerCards
data Person = Person
{ _name :: Text
, _twitter :: Text
, _website :: Text
, _books :: [Book]
}
data Book = Book
{ _title :: Text
, _author :: Text
, _link :: Text
}
allPeople =
[ Person { _name = "Joe Rogan"
, _twitter = "joerogan"
, _website = "joerogan.com"
, _books = [ Book {_title = "Food of the Gods"
, _author = "fixme"
, _link = "fixme"
}
, Book { _title = "The War of Art"
, _author ="fixme"
, _link ="fixme"
}
]
}
]
displayPerson person = [shamlet|
<h4>#{_name person}
<ul>
$forall book <- (_books person)
<li>#{_title book}
|]
homepage = [shamlet|
<!doctype html>
<head>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<body>
$forall person <- allPeople
#{displayPerson person}
|]
influencerCards :: Markup
influencerCards = [shamlet|
<nav .navbar .navbar-light .bg-light>
<h3 .navbar-brand>IBB
<button .navbar-toggler type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
<span .navbar-toggler-icon>
<div .collapse .navbar-collapse id="navbarIbb">
<ul .navbar-nav .mr-auto .mt-2 .mt-lg-0>
<li .nav-item .active>
<p .nav-item>One
<div .container>
<div .row>
<div .card .ml-3 .mb-3 style=width:22rem;>
<img .card-img .img-fluid src="https://pbs.twimg.com/profile_images/552307347851210752/vrXDcTFC_400x400.jpeg">
<h4>Joe Rogan
<ul>
<li><a href="https://www.amazon.com/Food-Gods-Original-Knowledge-Evolution/dp/0553371304/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1510184452&sr=1-1&keywords=food+of+the+gods&linkCode=sl1&tag=jrebooks-20&linkId=2985689be53efde5cc377fe9c74de7a0" class="text-dark">Food of the Gods</a>
<li><a href="https://www.amazon.com/War-Art-Through-Creative-Battles/dp/1936891026/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1509600244&sr=1-1&keywords=the+war+of+art+steven+pressfield&dpID=41hM%252BLf2pLL&preST=_SY291_BO1,204,203,200_QL40_&dpSrc=srch&linkCode=sl1&tag=jrebooks-20&linkId=5fa2e21ba505d6b23d71e2f0d074e435" class="text-dark">The War of Art</a>
<div .card-footer>
<a .btn href="https://www.joerogan.com"> Personal Website
<div .card .ml-3 .mb-3 style=width:22rem;>
<img .card-img .img-fluid src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTxT84sF19lxdnSiblIXAp-Y4wAigpQn8sZ2GtAerIR_ApiiEJfFQ">
<h4>Beyoncé
<ul>
<li><a href="https://www.amazon.com/dp/B00E257Y7G/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1" class="text-dark">What Will It Take To Make A Women President?</a>
<div .card-footer>
<a .btn href="https://www.beyonce.com"> Personal Website
<div .card .ml-3 .mb-3 style=width:22rem;>
<img .card-img .img-fluid src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQeLzftR36p0hYI-EKNa5fm7CYDuN-vyz23_R48ocqa8X1nPr6C">
<h4>Barrack Obama
<ul>
<li><a href="https://www.amazon.com/American-Marriage-Novel-Oprahs-Selection-ebook/dp/B01NCUXEFR" class="text-dark">An American Marriage</a>
<li><a href="https://www.amazon.com/dp/B00A9ET4MC/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1" class="text-dark">Americanah</a>
<div .card-footer>
<a .btn href="https://barackobama.com"> Personal Website
<div .card .ml-3 .mb-3 style=width:22rem;>
<img .card-img .img-fluid src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQQbmnUykS6zqgzaf44tsq1RAsnHe6H7fapEoSqUwAoJGSFKbAPSw">
<h4>Warren Buffett
<ul>
<li><a href="https://www.amazon.com/dp/B000FC12C8/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1" class="text-dark">The Intelligent Investor</a>
<li><a href="https://www.amazon.com/Security-Analysis-Foreword-Buffett-Editions-ebook/dp/B0037JO5J8" class="text-dark">Security Analysis</a>
<div .card-footer>
<a .btn href="http://www.berkshirehathaway.com"> Personal Website
<div .card .ml-3 .mb-3 style=width:22rem;>
<img .card-img .img-fluid src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQfl_Dm2RUhknIxGEafGOlQC7Jj3Ky0nyQYk6GvG791sClzwFQb">
<h4>Micheal Jordan
<ul>
<li><a href="https://www.amazon.com/Statistical-Inference-George-Casella/dp/0534243126" class="text-dark">Statistical Inference</a>
<li><a href="https://www.amazon.com/Course-Sample-Chapman-Statistical-Science/dp/0412043718" class="text-dark">A Course in Large Sample Theory</a>
<div .card-footer>
<a .btn href="http://www.michaeljordansworld.com"> Fanmade Website
|]
|