Abstract spans concept for new bootstrap
This commit is contained in:
parent
97a7220d63
commit
630a9b0763
8 changed files with 66 additions and 45 deletions
22
src/HL/V.hs
22
src/HL/V.hs
|
@ -1,7 +1,9 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
-- | View library.
|
||||
|
||||
module HL.V
|
||||
(module V)
|
||||
(module HL.V
|
||||
,module V)
|
||||
where
|
||||
|
||||
import HL.Foundation as V (Route(..),App)
|
||||
|
@ -11,5 +13,21 @@ import Control.Monad as V
|
|||
import Data.Text as V (Text)
|
||||
import Prelude as V hiding (span,head,min,max,id,div)
|
||||
import Senza as V
|
||||
import Senza.Bootstrap as V
|
||||
import Senza.Bootstrap as V (container,row)
|
||||
import Yesod.Senza as V
|
||||
|
||||
-- Latest Bootstrap requires extra work to get the old grid layout
|
||||
-- behaviour of spans. I'll probably move this into senza.
|
||||
|
||||
span1 xs = div ([class_ "span1 col-md-1"] ++ xs)
|
||||
span2 xs = div ([class_ "span2 col-md-2"] ++ xs)
|
||||
span3 xs = div ([class_ "span3 col-md-3"] ++ xs)
|
||||
span4 xs = div ([class_ "span4 col-md-4"] ++ xs)
|
||||
span5 xs = div ([class_ "span5 col-md-5"] ++ xs)
|
||||
span6 xs = div ([class_ "span6 col-md-6"] ++ xs)
|
||||
span7 xs = div ([class_ "span7 col-md-7"] ++ xs)
|
||||
span8 xs = div ([class_ "span8 col-md-8"] ++ xs)
|
||||
span9 xs = div ([class_ "span9 col-md-9"] ++ xs)
|
||||
span10 xs = div ([class_ "span10 col-md-10"] ++ xs)
|
||||
span11 xs = div ([class_ "span11 col-md-11"] ++ xs)
|
||||
span12 xs = div ([class_ "span12 col-md-12"] ++ xs)
|
||||
|
|
|
@ -18,6 +18,7 @@ communityV =
|
|||
container
|
||||
(row
|
||||
(span12
|
||||
[]
|
||||
(do h1 [] "Community"
|
||||
p []
|
||||
"The Haskell community is spread out online across several mediums \
|
||||
|
|
|
@ -19,6 +19,7 @@ documentationV =
|
|||
container
|
||||
(row
|
||||
(span12
|
||||
[]
|
||||
(do h1 [] "Documentation"
|
||||
online
|
||||
report url))))
|
||||
|
|
|
@ -27,14 +27,14 @@ header url =
|
|||
div [class_ "header"]
|
||||
(container
|
||||
(row
|
||||
(do div [class_ "span6 col-md-6"]
|
||||
(div [class_ "branding"]
|
||||
(do branding
|
||||
summation))
|
||||
div [class_ "span6 col-md-6"]
|
||||
(div [class_ "branding"]
|
||||
(do tag
|
||||
sample)))))
|
||||
(do span6 []
|
||||
(div [class_ "branding"]
|
||||
(do branding
|
||||
summation))
|
||||
span6 []
|
||||
(div [class_ "branding"]
|
||||
(do tag
|
||||
sample)))))
|
||||
where branding =
|
||||
span [class_ "name"
|
||||
,background url img_logo_png]
|
||||
|
@ -59,8 +59,8 @@ try =
|
|||
div [class_ "try"]
|
||||
(container
|
||||
(row
|
||||
(do div [class_ "span6 col-md-6"] repl
|
||||
div [class_ "span6 col-md-6"] rhs)))
|
||||
(do span6 [] repl
|
||||
span6 [] rhs)))
|
||||
where
|
||||
repl =
|
||||
do h2 [] "Try it"
|
||||
|
@ -91,42 +91,42 @@ community url =
|
|||
,background url img_community_png]
|
||||
(do container
|
||||
(do row
|
||||
(div [class_ "span8 col-md-8"]
|
||||
(do h1 []
|
||||
"An open source community effort for over 20 years"
|
||||
p [class_ "learn-more"]
|
||||
(a [href (url CommunityR)]
|
||||
"Learn more")))))
|
||||
(span8 []
|
||||
(do h1 []
|
||||
"An open source community effort for over 20 years"
|
||||
p [class_ "learn-more"]
|
||||
(a [href (url CommunityR)]
|
||||
"Learn more")))))
|
||||
|
||||
features :: Senza
|
||||
features =
|
||||
div [class_ "features"]
|
||||
(container
|
||||
(do h1 [] "Features"
|
||||
row (do div [class_ "span6 col-md-6"]
|
||||
(do h2 [] "Purely functional"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples"))
|
||||
div [class_ "span6 col-md-6"]
|
||||
(do h2 [] "Statically typed"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples")))
|
||||
row (do div [class_ "span6 col-md-6"]
|
||||
(do h2 [] "Concurrent"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples"))
|
||||
div [class_ "span6 col-md-6"]
|
||||
(do h2 [] "Type inference"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples")))
|
||||
row (do div [class_ "span6 col-md-6"]
|
||||
(do h2 [] "Lazy"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples"))
|
||||
div [class_ "span6 col-md-6"]
|
||||
(do h2 [] "Packages"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples")))))
|
||||
row (do span6 []
|
||||
(do h2 [] "Purely functional"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples"))
|
||||
span6 []
|
||||
(do h2 [] "Statically typed"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples")))
|
||||
row (do span6 []
|
||||
(do h2 [] "Concurrent"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples"))
|
||||
span6 []
|
||||
(do h2 [] "Type inference"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples")))
|
||||
row (do span6 []
|
||||
(do h2 [] "Lazy"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples"))
|
||||
span6 []
|
||||
(do h2 [] "Packages"
|
||||
p [] lorem
|
||||
p [] (a [] "View examples")))))
|
||||
where
|
||||
lorem =
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra nisl non elit consectetur sodales. Ut condimentum odio in augue scelerisque, eget ultricies arcu placerat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris a blandit purus, vitae tincidunt leo. "
|
||||
|
|
|
@ -13,4 +13,4 @@ markdownV routes t inner =
|
|||
template
|
||||
routes
|
||||
t
|
||||
(const (container (row (span12 inner))))
|
||||
(const (container (row (span12 [] inner))))
|
||||
|
|
|
@ -18,5 +18,6 @@ newsV inner =
|
|||
container
|
||||
(do row
|
||||
(span12
|
||||
[]
|
||||
(do h1 [] "News"))
|
||||
inner))
|
||||
|
|
|
@ -18,5 +18,4 @@ reportV year _ inner =
|
|||
(\_ ->
|
||||
container
|
||||
(row
|
||||
(span12
|
||||
inner)))
|
||||
(span12 [] inner)))
|
||||
|
|
|
@ -32,6 +32,7 @@ wikiV urlr result =
|
|||
container
|
||||
(row
|
||||
(span12
|
||||
[]
|
||||
(case result of
|
||||
Left err ->
|
||||
do h1 [] "Wiki page retrieval problem!"
|
||||
|
|
Loading…
Reference in a new issue