From 630a9b0763c0c5ee8be579dfc9d802dd0f4c012a Mon Sep 17 00:00:00 2001 From: Chris Done Date: Wed, 28 May 2014 12:35:00 +0200 Subject: [PATCH] Abstract spans concept for new bootstrap --- src/HL/V.hs | 22 ++++++++++- src/HL/V/Community.hs | 1 + src/HL/V/Documentation.hs | 1 + src/HL/V/Home.hs | 80 +++++++++++++++++++-------------------- src/HL/V/Markdown.hs | 2 +- src/HL/V/News.hs | 1 + src/HL/V/Report.hs | 3 +- src/HL/V/Wiki.hs | 1 + 8 files changed, 66 insertions(+), 45 deletions(-) diff --git a/src/HL/V.hs b/src/HL/V.hs index 8be72cd..c5d0e04 100644 --- a/src/HL/V.hs +++ b/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) diff --git a/src/HL/V/Community.hs b/src/HL/V/Community.hs index 6b49c15..d8582ec 100644 --- a/src/HL/V/Community.hs +++ b/src/HL/V/Community.hs @@ -18,6 +18,7 @@ communityV = container (row (span12 + [] (do h1 [] "Community" p [] "The Haskell community is spread out online across several mediums \ diff --git a/src/HL/V/Documentation.hs b/src/HL/V/Documentation.hs index 57dbc2c..24e4e45 100644 --- a/src/HL/V/Documentation.hs +++ b/src/HL/V/Documentation.hs @@ -19,6 +19,7 @@ documentationV = container (row (span12 + [] (do h1 [] "Documentation" online report url)))) diff --git a/src/HL/V/Home.hs b/src/HL/V/Home.hs index 86680de..610a84f 100644 --- a/src/HL/V/Home.hs +++ b/src/HL/V/Home.hs @@ -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. " diff --git a/src/HL/V/Markdown.hs b/src/HL/V/Markdown.hs index 680a084..0aeb758 100644 --- a/src/HL/V/Markdown.hs +++ b/src/HL/V/Markdown.hs @@ -13,4 +13,4 @@ markdownV routes t inner = template routes t - (const (container (row (span12 inner)))) + (const (container (row (span12 [] inner)))) diff --git a/src/HL/V/News.hs b/src/HL/V/News.hs index ac5ed57..f03a5a6 100644 --- a/src/HL/V/News.hs +++ b/src/HL/V/News.hs @@ -18,5 +18,6 @@ newsV inner = container (do row (span12 + [] (do h1 [] "News")) inner)) diff --git a/src/HL/V/Report.hs b/src/HL/V/Report.hs index e426b9a..2523e89 100644 --- a/src/HL/V/Report.hs +++ b/src/HL/V/Report.hs @@ -18,5 +18,4 @@ reportV year _ inner = (\_ -> container (row - (span12 - inner))) + (span12 [] inner))) diff --git a/src/HL/V/Wiki.hs b/src/HL/V/Wiki.hs index dbd0f0e..364a932 100644 --- a/src/HL/V/Wiki.hs +++ b/src/HL/V/Wiki.hs @@ -32,6 +32,7 @@ wikiV urlr result = container (row (span12 + [] (case result of Left err -> do h1 [] "Wiki page retrieval problem!"