feat: refactoring and tidying up

This commit is contained in:
Nick 2024-12-18 20:11:04 -06:00
parent 62be86f2f9
commit 2295c85fca
112 changed files with 862 additions and 1698 deletions

View file

@ -1,6 +1,7 @@
module Pages.Blog exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (extractFirstWords)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -24,10 +25,17 @@ import Config.Helpers.Converters
)
import Config.Helpers.Format
exposing
( paragraphFontSize
( headerFontSizeSmall
, paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Header exposing (..)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Markdown
exposing
( renderDeviceMarkdown
, renderDeviceMarkdownNoToc
)
import Config.Helpers.Response
exposing
( pageList
@ -263,7 +271,7 @@ articleMaker article =
, right = 0
}
]
[ text article.articleDescription ]
[ renderDeviceMarkdownNoToc (extractFirstWords article.articleBody) ]
]
]
)
@ -273,16 +281,16 @@ articleMaker article =
infoRow : String -> String -> Element msg
infoRow label value =
row [ width fill ]
[ el [ width <| px 85 ] <|
paragraph
[ el [ width <| px 88 ] <|
el
[ F.color colourTheme.textLightOrange
, paragraphSpacing
, paragraphFontSize
, F.bold
, F.size 18
, headerFontSizeSmall
, E.width fill
]
[ text label ]
<|
text label
, el [ width fill ] <|
paragraph
[ F.color colourTheme.textLightGrey
@ -296,8 +304,18 @@ infoRow label value =
articleRows : BlogArticle -> List (Element msg)
articleRows article =
[ infoRow "Author:" article.articleAuthor
, infoRow "Published:" article.articlePublished
let
referenceCount =
List.length article.articleReferences
in
[ infoRow "Published:" article.articlePublished
, infoRow "Author:" article.articleAuthor
, infoRow "Duration:" (String.fromInt (wordCount article.articleBody // 225) ++ " minutes")
, infoRow "Words:" (String.fromInt (wordCount article.articleBody))
]
++ (if referenceCount > 2 then
[ infoRow "Sources:" (String.fromInt referenceCount) ]
else
[]
)

View file

@ -1,6 +1,7 @@
module Pages.Blog.Bigfatsurprise exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,16 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.BigFatSurprise exposing (articleBigFatSurprise)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +62,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +126,3 @@ articleList device =
)
[ articleBigFatSurprise ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleBigFatSurprise.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleBigFatSurprise.articleImage
, renderDeviceMarkdown articleBigFatSurprise.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Everettvegans exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,16 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.EverettVegans exposing (articleEverettVegans)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +62,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +126,3 @@ articleList device =
)
[ articleEverettVegans ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleEverettVegans.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleEverettVegans.articleImage
, renderDeviceMarkdown articleEverettVegans.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Huntergatherers exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,16 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.HunterGatherers exposing (articleHunterGatherers)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +62,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +126,3 @@ articleList device =
)
[ articleHunterGatherers ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleHunterGatherers.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleHunterGatherers.articleImage
, renderDeviceMarkdown articleHunterGatherers.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Meatapologetics exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.MeatApologetics exposing (articleMeatApologetics)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +127,3 @@ articleList device =
)
[ articleMeatApologetics ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleMeatApologetics.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleMeatApologetics.articleImage
, renderDeviceMarkdown articleMeatApologetics.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Nagragoodrich exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.NagraGoodrich exposing (articleNagraGoodrich)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,43 +127,3 @@ articleList device =
)
[ articleNagraGoodrich ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleNagraGoodrich.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleNagraGoodrich.articleImage
, renderDeviceMarkdown articleNagraGoodrich.articleBody
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Plantbasedmeta exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.PlantBasedMeta exposing (articlePlantBasedMeta)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,43 +127,3 @@ articleList device =
)
[ articlePlantBasedMeta ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articlePlantBasedMeta.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articlePlantBasedMeta.articleImage
, renderDeviceMarkdown articlePlantBasedMeta.articleBody
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Quacksmashing exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.QuackSmashing exposing (articleQuackSmashing)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +127,3 @@ articleList device =
)
[ articleQuackSmashing ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleQuackSmashing.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleQuackSmashing.articleImage
, renderDeviceMarkdown articleQuackSmashing.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Sapiendiet exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.SapienDiet exposing (articleSapienDiet)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +127,3 @@ articleList device =
)
[ articleSapienDiet ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleSapienDiet.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleSapienDiet.articleImage
, renderDeviceMarkdown articleSapienDiet.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Seedoils exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.SeedOils exposing (articleSeedOils)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +127,3 @@ articleList device =
)
[ articleSeedOils ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleSeedOils.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleSeedOils.articleImage
, renderDeviceMarkdown articleSeedOils.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Shenanigans exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.Shenangians exposing (articleShenanigans)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,43 +127,3 @@ articleList device =
)
[ articleShenanigans ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleShenanigans.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleShenanigans.articleImage
, renderDeviceMarkdown articleShenanigans.articleBody
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -1,6 +1,7 @@
module Pages.Blog.Sweetdeception exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (articleMaker)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -17,45 +18,17 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.References exposing (makeReference)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
exposing
( barMaker
, barPadding
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Blog.Records.SweetDeception exposing (articleSweetDeception)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleSlow
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html
import Html.Attributes as H exposing (style)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
@ -90,7 +63,9 @@ type alias Model =
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
, Effect.map
(\_ -> NoOp)
(Effect.sendCmd resetViewport)
)
@ -152,44 +127,3 @@ articleList device =
)
[ articleSweetDeception ]
]
articleMaker : BlogArticle -> Element msg
articleMaker article =
column
topLevelBox
[ cardMaker
[ cardTitleMaker (String.toUpper articleSweetDeception.articleName)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ articleImage articleSweetDeception.articleImage
, renderDeviceMarkdown articleSweetDeception.articleBody
, articleReferences article
]
]
]
]
]
]
articleReferences : BlogArticle -> Element msg
articleReferences article =
column
[ width fill
, height fill
, paddingEach
{ top = 10
, right = 0
, bottom = 0
, left = 0
}
]
[ column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
article.articleReferences
(List.range 1 (List.length article.articleReferences))
]

View file

@ -18,26 +18,21 @@ import Config.Helpers.CardFormat
, topLevelBox
)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.StrengthBar
import Config.Helpers.ServiceFormat
exposing
( barMaker
, barPadding
( chunkMaker
, titleMaker
)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Contact.Types exposing (..)
import Config.Pages.Interviews.Types exposing (..)
import Config.Pages.Products.Types exposing (..)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing
@ -185,48 +180,16 @@ instructionBody =
, right = 0
}
]
[ paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft
, width fill
]
)
[ chunkMaker
[ text "The following terms may seem unreasonable to some, but after years on a large platform, I've learned the importance of filtering the criticisms I receive. Most feedback I receive is just vague gesturing and lacks substance, making some sort of quality filter essential. Thank you for your patience and understanding." ]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft
, width fill
]
)
, chunkMaker
[ text "Please keep in mind that any failure to comply with the following terms and conditions will forfeit your access to my time and attention. I ask that you respect my time and read these terms carefully. You are the one requesting an audience with me, and my time is mine to donate as I see fit. If you wish to submit your criticisms, you must do so on my terms, following the rules and conditions that streamline the process for me." ]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ F.center
, width fill
, paddingEach
{ top = 10
, bottom = 10
, left = 0
, right = 0
}
]
)
[ el
[ F.color colourTheme.textLightOrange
, F.size 18
]
<|
text "Terms and Conditions"
, column
[ centerX
, width fill
]
[ divider
, titleMaker (String.toUpper "Terms and Conditions")
]
, column [ spacing 10 ] <|
List.indexedMap
@ -255,38 +218,11 @@ instructionBody =
]
)
termsAndConditions
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ F.center
, width fill
, paddingEach
{ top = 10
, bottom = 10
, left = 0
, right = 0
}
]
)
[ el
[ F.color colourTheme.textLightOrange
, F.size 18
]
<|
text "Additional Clarifications"
, column [ centerX, width fill ]
[ divider
, titleMaker (String.toUpper "Additional Clarifications")
]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft
, width fill
]
)
, chunkMaker
[ text " "
, text "You are only allowed to post one criticism at a time in the "
, newTabLink []
@ -295,35 +231,11 @@ instructionBody =
}
, text " channel. You may post an additional criticism only after the previous one has been addressed and resolved to my satisfaction. This policy aims to reduce spamming, rambling, and Gish galloping, and to encourage linear discourse."
]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft
, width fill
]
)
, chunkMaker
[ text " ", text "You may or may not be asked to voice chat about your criticism. While your willingness to engage in voice chat is a necessary condition for submitting your criticism, it does not guarantee that a voice chat will be requested. If your initial criticism is clear and I agree with it, then no voice chat will be required." ]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft
, width fill
]
)
, chunkMaker
[ text " ", text "You may or may not be asked to have your criticism formalized. While your willingness to have your criticism formalized is a necessary condition for submitting your criticism, it does not guarantee that a formalization will be requested. If your initial criticism is clear and I agree with it, then no formalization will be required." ]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft
, width fill
]
)
, chunkMaker
[ text " "
, text "If I find it necessary to access a text-based channel (for simple clarifying questions, for example), then either I or a moderator will open a new thread in the "
, newTabLink []
@ -332,15 +244,7 @@ instructionBody =
}
, text " channel. There we can then engage in a text-based discussion and/or ping other users if needed."
]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft
, width fill
]
)
, chunkMaker
[ text " ", text "I will only request that your criticism be formalized if I do not understand it and we have exhausted all other reasonable means of clarification. If formalization is requested, you will not need to do it yourself, as I recognize that not everyone understands formal logic. If formalization is requested and I am unavailable to assist you, you may ping the @Logic role, and another user may help you." ]
]

View file

@ -29,24 +29,23 @@ import Config.Helpers.CardFormat
import Config.Helpers.Converters exposing (formatName)
import Config.Helpers.Format
exposing
( paragraphFontSize
( headerFontSizeSmall
, paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.ServiceFormat exposing (chunkMaker)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Debate.Arguments.List exposing (argumentListNumber)
import Config.Pages.Debate.Cuckery.List exposing (cuckListNumber)
import Config.Pages.Debate.Gibberish.List exposing (gibberishListNumber)
import Config.Pages.Debate.Arguments.List exposing (argumentList)
import Config.Pages.Debate.Cuckery.List exposing (cuckList)
import Config.Pages.Debate.Gibberish.List exposing (gibberishList)
import Config.Pages.Debate.Types exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Style.Colour as T exposing (colourTheme)
import Config.Style.Glow
exposing
@ -219,7 +218,7 @@ mobileDebateMaker debate =
[ mobileCardMaker mobileImageBoxSize mobileImageSize (debateImage debate) debate.debateLink
, column
[ width fill ]
[]
[ descriptionMaker debate ]
]
]
]
@ -247,13 +246,12 @@ descriptionMaker debate =
, centerX
, spacing 3
]
[ row []
[ row [ spacing 5 ]
[ paragraph
[ F.color colourTheme.textLightOrange
, paragraphSpacing
, paragraphFontSize
, F.bold
, F.size 18
, headerFontSizeSmall
, E.width fill
]
[ if debate.debateTitle == "Arguments" then
@ -267,27 +265,18 @@ descriptionMaker debate =
else
text ""
, text (String.fromInt debate.debateCount)
|> el
[ F.color colourTheme.textLightGrey
, F.regular
, F.size 16
]
]
, text (String.fromInt debate.debateCount)
|> el
[ F.color colourTheme.textLightGrey
, F.regular
, F.size 16
]
]
, row [ width fill ]
[ paragraph
[ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, spacing 3
, F.regular
, F.alignLeft
, F.size 16
]
, el [ width fill ] <|
chunkMaker
[ text debate.debateDescription
]
]
]
@ -299,7 +288,7 @@ debateArguments =
in
{ debateTitle = name
, debateLink = Path.toString Path.Debate_Arguments
, debateCount = argumentListNumber
, debateCount = List.length argumentList
, debateImage = formatName name
, isNewTabLink = False
, debateDescription = "This page features arguments that I hold to be sound, though with varying degrees of confidence. I'm open to hearing all challenges, as I am ready to engage with any substantive critiques and defend any argument listed. I have additionally included a confidence meter with each argument to give readers a clearer understanding of how strongly I hold to the argument."
@ -314,7 +303,7 @@ debateCuckList =
in
{ debateTitle = name
, debateLink = Path.toString Path.Debate_Cucklist
, debateCount = cuckListNumber
, debateCount = List.length cuckList
, debateImage = formatName name
, isNewTabLink = False
, debateDescription = "This page features a list of complete fucking morons who wrote cheques with their mouths that their asses ultimately couldn't cash. Each person included in this list has dodged debating me in some way, shape, or form. Whether it's simply ignoring invitations, or outright refusing to engage, or agreeing to debate and then subsequently withdrawing. All such instances are catalogued here."
@ -329,7 +318,7 @@ debateGibberish =
in
{ debateTitle = name
, debateLink = Path.toString Path.Debate_Gibberish
, debateCount = gibberishListNumber
, debateCount = List.length gibberishList
, debateImage = formatName name
, isNewTabLink = False
, debateDescription = "This page is specifically for terms and ostensible concepts that I don't have a good reason to believe are understandable from at least one viewpoint. If the clarification of a philosophical term is unsatisfying or unsuccessful, and my interlocutor has exhausted all means of rendering the concept to me, the term ends up here until someone explains to me what the fuck it even means."

View file

@ -21,11 +21,8 @@ import Config.Helpers.Format
( paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
@ -41,9 +38,9 @@ import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Debate.Arguments.List
exposing
( argumentList
, argumentListNumber
)
import Config.Pages.Debate.Arguments.Types exposing (..)
import Config.Helpers.Converters exposing (toTitleCase)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Glow
exposing
@ -693,7 +690,7 @@ formalizationMaker argument padding =
[ F.color colourTheme.textLightOrange
, F.bold
, spacing 3
, F.size 17
, paragraphFontSize
]
[ text
(if entryIndex < List.length argumentEntry.premises then

View file

@ -22,6 +22,8 @@ import Config.Helpers.Format
( paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
@ -34,11 +36,6 @@ import Config.Pages.Debate.Cuckery.List
, cuckListNumber
)
import Config.Pages.Debate.Cuckery.Types exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions
exposing

View file

@ -21,6 +21,8 @@ import Config.Helpers.Format
( paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
@ -34,7 +36,8 @@ import Config.Helpers.StrengthBar
import Config.Helpers.ToolTip exposing (tooltip)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Debate.Arguments.Types exposing (..)
import Config.Pages.Debate.Gibberish.List exposing (gibberishListNumber)
import Config.Helpers.Converters exposing (toTitleCase)
import Config.Pages.Debate.Gibberish.List exposing (gibberishList)
import Config.Pages.Debate.Gibberish.Records.Epistemology exposing (epistemologyGibberish)
import Config.Pages.Debate.Gibberish.Records.Metaphysics exposing (metaphysicsGibberish)
import Config.Pages.Debate.Gibberish.Records.Normativity exposing (normativityGibberish)
@ -43,12 +46,6 @@ import Config.Pages.Debate.Gibberish.Records.PhilOfLanguage exposing (philOfLang
import Config.Pages.Debate.Gibberish.Records.PhilOfMind exposing (philOfMindGibberish)
import Config.Pages.Debate.Gibberish.Records.Theology exposing (theologyGibberish)
import Config.Pages.Debate.Gibberish.Types exposing (..)
import Config.Helpers.Header exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Style.Colour exposing (colourTheme)
import Effect exposing (Effect)
import Element as E exposing (..)

View file

@ -18,9 +18,12 @@ import Config.Helpers.CardFormat
)
import Config.Helpers.Format
exposing
( paragraphFontSize
( headerFontSizeSmall
, paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
@ -42,12 +45,6 @@ import Config.Pages.Donate.Records.PayPal exposing (donatePayPal)
import Config.Pages.Donate.Records.Stripe exposing (donateStripe)
import Config.Pages.Donate.Records.YouTube exposing (donateYouTube)
import Config.Pages.Donate.Types exposing (..)
import Config.Helpers.Header exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Style.Colour as T exposing (..)
import Effect exposing (Effect)
import Element as E exposing (..)
@ -152,13 +149,13 @@ donateList device =
[ donateHeader ]
, (case ( device.class, device.orientation ) of
( Phone, Portrait ) ->
List.map donateMakerMobile
List.map (\donate -> donateMakerMobile donate device)
( Tablet, Portrait ) ->
List.map donateMakerMobile
List.map (\donate -> donateMakerMobile donate device)
_ ->
List.map donateMaker
List.map (\donate -> donateMaker donate device)
)
[ donateLiberaPay
, donateStripe
@ -182,20 +179,20 @@ donateHeader =
}
donateMaker : Donate -> Element msg
donateMaker donate =
donateMaker : Donate -> Device -> Element msg
donateMaker donate device =
row
topLevelBox
[ desktopCardMaker desktopImageBoxSize desktopImageSize (donateImage donate) (donateLink donate)
[ desktopCardMaker desktopImageBoxSize desktopImageSize (donateImage donate) donate.donateLink
, cardMaker
[ cardTitleMaker (donateTitle donate)
[ cardTitleMaker donate.donateName
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ feeMaker donate
, preferenceMaker donate
, tableMaker donate
, tableMaker donate device
, proTitleMaker donate
, proMaker donate
, conTitleMaker donate
@ -207,13 +204,13 @@ donateMaker donate =
]
donateMakerMobile : Donate -> Element msg
donateMakerMobile donate =
donateMakerMobile : Donate -> Device -> Element msg
donateMakerMobile donate device =
row
topLevelBox
[ column [] []
, cardMaker
[ cardTitleMaker (donateTitle donate)
[ cardTitleMaker donate.donateName
, cardFormatter
[ cardContentSpacing
[ column
@ -222,14 +219,14 @@ donateMakerMobile donate =
[ mobileCardMaker mobileImageBoxSize
mobileImageSize
(donateImage donate)
(donateLink donate)
donate.donateLink
, column
[ width fill ]
[ feeMaker donate
, preferenceMaker donate
]
]
, tableMakerMobile donate
, tableMaker donate device
, proTitleMaker donate
, proMaker donate
, conTitleMaker donate
@ -253,16 +250,6 @@ donateImage donate =
}
donateTitle : Donate -> String
donateTitle donate =
donate.donateName
donateLink : Donate -> String
donateLink donate =
donate.donateLink
donateWidth =
width <| px 45
@ -270,64 +257,64 @@ donateWidth =
feeMaker : Donate -> Element msg
feeMaker donate =
row
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ F.size 18
, E.width fill
]
)
[ F.color colourTheme.textLightOrange
, paragraphSpacing
, F.bold
, headerFontSizeSmall
, E.width fill
, spacing 5
]
[ column
[ alignTop
, donateWidth
]
[ text "Fees:"
]
, column
, el
[ E.width fill
, alignLeft
]
[ paragraph [ F.regular ]
[ el [ F.color colourTheme.textLightOrange ] <|
text donate.donateFees
<|
el
[ F.regular
, paragraphFontSize
, F.color colourTheme.textLightGrey
]
]
<|
text donate.donateFees
]
proTitleMaker : Donate -> Element msg
proTitleMaker donate =
row
[ F.color colourTheme.textLightGrey
[ F.color colourTheme.textLightOrange
, paragraphSpacing
, paragraphFontSize
, headerFontSizeSmall
, F.bold
]
[ column
[ el
[ alignTop
, width <| px 80
]
[ text "Pros:"
]
<|
text "Pros:"
]
conTitleMaker : Donate -> Element msg
conTitleMaker donate =
row
[ F.color colourTheme.textLightGrey
[ F.color colourTheme.textLightOrange
, paragraphSpacing
, paragraphFontSize
, headerFontSizeSmall
, F.bold
]
[ column
[ el
[ alignTop
, width <| px 80
]
[ text "Cons:"
]
<|
text "Cons:"
]
@ -352,16 +339,14 @@ proMaker donate =
makePro : Pros -> Element msg
makePro pro =
column
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
, alignLeft
]
++ [ spacing 8
, width fill
]
)
[ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
, alignLeft
, spacing 8
, width fill
]
[ paragraph [ F.regular ]
[ text (" " ++ pro.pro) ]
]
@ -388,18 +373,17 @@ conMaker donate =
makeCon : Cons -> Element msg
makeCon con =
column
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
, alignLeft
]
++ [ spacing 8
, width fill
]
)
[ paragraph [ F.regular ]
[ text (" " ++ con.con) ]
[ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
, alignLeft
, spacing 8
, width fill
]
[ paragraph [ F.regular ] <|
[ text (" " ++ con.con)
]
]
@ -414,16 +398,13 @@ preferenceMaker donate =
, E.alignLeft
]
[ paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ F.size 18
, alignLeft
, E.width fill
]
)
[ F.color colourTheme.textLightGrey
, paragraphSpacing
, F.bold
, headerFontSizeSmall
, alignLeft
, E.width fill
]
[ el
[ tooltip
"This represents how strongly I prefer a given platform relative to other platforms."
@ -435,6 +416,7 @@ preferenceMaker donate =
, bottom = 0
, left = 0
}
, F.color colourTheme.textLightOrange
]
<|
text "Preference:"
@ -486,24 +468,18 @@ getPreferenceTooltip num =
"Preference is out of bounds."
tableMaker : Donate -> Element msg
tableMaker donate =
tableMaker : Donate -> Device -> Element msg
tableMaker donate device =
column
[ centerX
, E.width fill
]
[ wrappedRow
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ E.alignLeft
, E.width fill
, htmlAttribute <| H.style "position" "relative"
]
)
[ E.table
[ el
[ E.alignLeft
, E.width fill
]
<|
E.table
[ spacing 0
, D.rounded 10
, D.width 2
@ -513,70 +489,55 @@ tableMaker donate =
{ data = donate.donateFeatures
, columns =
List.map createColumn
[ { label = "Zero Fees"
, getter = .free
}
, { label = "Subscriptions"
, getter = .subscriptions
}
, { label = "User Friendly"
, getter = .userFriendly
}
, { label = "Anonymous"
, getter = .anonymous
}
, { label = "Rewards"
, getter = .rewardTiers
}
]
(case ( device.class, device.orientation ) of
( Phone, Portrait ) ->
mobileLabels
( Tablet, Portrait ) ->
mobileLabels
_ ->
desktopLabels
)
}
]
]
tableMakerMobile : Donate -> Element msg
tableMakerMobile donate =
column
[ centerX
, E.width fill
]
[ wrappedRow
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ E.alignLeft
, E.width fill
, htmlAttribute <| H.style "position" "relative"
]
)
[ E.table
[ spacing 0
, D.rounded 10
, D.width 2
, D.color colourTheme.textDarkGrey
, clip
]
{ data = donate.donateFeatures
, columns =
List.map createColumn
[ { label = "Free"
, getter = .free
}
, { label = "Subs"
, getter = .subscriptions
}
, { label = "Easy"
, getter = .userFriendly
}
, { label = "Safe"
, getter = .anonymous
}
]
}
]
]
desktopLabels : List { label : String, getter : { a | free : b, subscriptions : b, userFriendly : b, anonymous : b, rewardTiers : b } -> b }
desktopLabels =
[ { label = "Zero Fees"
, getter = .free
}
, { label = "Subscriptions"
, getter = .subscriptions
}
, { label = "User Friendly"
, getter = .userFriendly
}
, { label = "Anonymous"
, getter = .anonymous
}
, { label = "Rewards"
, getter = .rewardTiers
}
]
mobileLabels : List { label : String, getter : { a | free : b, subscriptions : b, userFriendly : b, anonymous : b } -> b }
mobileLabels =
[ { label = "Free"
, getter = .free
}
, { label = "Subs"
, getter = .subscriptions
}
, { label = "Easy"
, getter = .userFriendly
}
, { label = "Safe"
, getter = .anonymous
}
]
createColumn : { label : String, getter : Features -> Maybe Bool } -> Column Features msg

View file

@ -6,11 +6,8 @@ import Config.Helpers.Format
( paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageListCenter
@ -175,7 +172,7 @@ homePage image =
]
++ [ centerX ]
)
[ text "upRootNutrition is an open source project, created by Nick Hiebert, designed to elevate the quality of nutrition science communication in online discourse. By applying more rigorous systems of reasoning, such as formal logic, upRootNutrition aims to cut through the misinformation and sophistry that are endemic on social media." ]
[ text "upRootNutrition is an open source project, created by Nick Hiebert, designed to elevate the quality of nutrition science communication in online discourse. By applying more rigorous systems of reasoning, such as formal logic and semantic analysis, upRootNutrition aims to cut through the misinformation and sophistry that are endemic on social media." ]
]
]

View file

@ -22,6 +22,8 @@ import Config.Helpers.Format
( paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Headers.Header exposing (..)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
@ -34,12 +36,6 @@ import Config.Helpers.StrengthBar
)
import Config.Helpers.ToolTip exposing (tooltip)
import Config.Helpers.Viewport exposing (resetViewport)
import Config.Helpers.Header exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Pages.Interviews.Records.DrShawnBakerPodcast exposing (drShawnBakerPodcast)
import Config.Pages.Interviews.Records.FitAndFurious exposing (fitAndFurious)
import Config.Pages.Interviews.Records.FoolproofMastery exposing (foolproofMastery)
@ -195,15 +191,14 @@ interviewMaker : Interview -> Element msg
interviewMaker interview =
row
topLevelBox
[ desktopCardMaker desktopImageBoxSize desktopImageSize (interviewImage interview) (interviewSocial interview)
[ desktopCardMaker desktopImageBoxSize desktopImageSize (interviewImage interview) interview.interviewSocial
, cardMaker
[ cardTitleMaker (interviewTitle interview)
[ cardTitleMaker interview.interviewName
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ socialMaker interview
, appearanceTitle interview
[ appearanceTitle interview
, appearanceMaker interview
]
]
@ -218,13 +213,13 @@ interviewMakerMobile interview =
topLevelBox
[ column [] []
, cardMaker
[ cardTitleMaker (interviewTitle interview)
[ cardTitleMaker interview.interviewName
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ row [ spacing 10 ]
[ mobileCardMaker mobileImageBoxSize mobileImageSize (interviewImage interview) (interviewSocial interview)
[ mobileCardMaker mobileImageBoxSize mobileImageSize (interviewImage interview) interview.interviewSocial
, socialMaker interview
]
, appearanceTitle interview
@ -243,16 +238,6 @@ interviewImage interview =
}
interviewTitle : Interview -> String
interviewTitle interview =
interview.interviewName
interviewSocial : Interview -> String
interviewSocial interview =
interview.interviewSocial
socialMaker : Interview -> Element msg
socialMaker interview =
paragraph
@ -498,7 +483,7 @@ subjectMaker appearanceEntry =
subjectList : Appearance -> Element msg
subjectList appearanceEntry =
paragraph
column
[ spacing 8
, width fill
, paddingEach
@ -516,7 +501,7 @@ subjectList appearanceEntry =
makeSubject : Subjects -> Element msg
makeSubject subjects =
paragraph
el
[ E.width fill
, alignLeft
, paddingEach
@ -526,6 +511,10 @@ makeSubject subjects =
, left = 8
}
]
[ paragraph [ F.regular ]
[ text (" " ++ subjects.subject) ]
]
<|
el
[ F.regular
, paragraphFontSize
]
<|
text (" " ++ subjects.subject)

View file

@ -16,17 +16,14 @@ import Config.Helpers.CardFormat
, mobileImageSize
, topLevelBox
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, pageListCenter
, topLevelContainer
)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Effect exposing (Effect)
import Element as E exposing (..)
import Layouts
@ -138,6 +135,8 @@ notFoundList device =
none
]
-- import Config.Data.Identity exposing (pageNames)
-- import Config.Helpers.CardFormat
-- exposing
@ -183,8 +182,6 @@ notFoundList device =
-- import Route.Path
-- import Shared
-- import View exposing (View)
-- page : Shared.Model -> Route () -> Page Model Msg
-- page shared route =
-- Page.new
@ -194,77 +191,44 @@ notFoundList device =
-- , view = view shared
-- }
-- |> Page.withLayout toLayout
-- toLayout : Model -> Layouts.Layout Msg
-- toLayout model =
-- Layouts.Navbar {}
-- -- INIT
-- type alias Model =
-- { markdown : String }
-- init : () -> ( Model, Effect Msg )
-- init () =
-- ( { markdown = """
-- markdown goes here!
-- """ }
-- , Effect.none
-- )
-- -- UPDATE
-- type Msg
-- = NoOp
-- | UpdateMarkdown String
-- update : Msg -> Model -> ( Model, Effect Msg )
-- update msg model =
-- case msg of
-- NoOp ->
-- ( model, Effect.none )
-- UpdateMarkdown newMarkdown ->
-- ( { model | markdown = newMarkdown }, Effect.none )
-- -- SUBSCRIPTIONS
-- subscriptions : Model -> Sub Msg
-- subscriptions model =
-- Sub.none
-- -- VIEW
-- view : Shared.Model -> Model -> View Msg
-- view shared model =
-- { title = pageNames.pageNotFound
-- , attributes = []
-- , element = notFoundContainer shared.device model
-- }
-- notFoundContainer : Device -> Model -> Element Msg
-- notFoundContainer device model =
-- topLevelContainer (notFoundList device model)
-- notFoundList : Device -> Model -> Element Msg
-- notFoundList device model =
-- column pageListCenter
@ -277,12 +241,9 @@ notFoundList device =
-- , E.centerX
-- ]
-- renderedMarkdown
-- Err error ->
-- E.text error
-- ]
-- renderMarkdown : String -> Result String (List (Element Msg))
-- renderMarkdown markdown =
-- markdown

View file

@ -1,6 +1,8 @@
module Pages.Nutridex exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (makeReference)
import Config.Helpers.Articles.Types exposing (References)
import Config.Helpers.CardFormat
exposing
( cardContentSpacing
@ -19,11 +21,12 @@ import Config.Helpers.CardFormat
)
import Config.Helpers.Format
exposing
( paragraphFontSize
( divider
, paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Header exposing (..)
import Config.Helpers.References exposing (..)
import Config.Helpers.Headers.Header exposing (..)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
@ -146,50 +149,39 @@ nutriDexList device =
List.concat
[ (case ( device.class, device.orientation ) of
( Phone, Portrait ) ->
List.map nutriDexMakerMobile
List.map (\nutridex -> nutriDexMaker nutridex device)
( Tablet, Portrait ) ->
List.map nutriDexMakerMobile
List.map (\nutridex -> nutriDexMaker nutridex device)
_ ->
List.map nutriDexMaker
List.map (\nutridex -> nutriDexMaker nutridex device)
)
[ productNutriDex ]
]
nutriDexHeader : Header
nutriDexHeader =
let
name =
"NutriDex"
in
{ headerTitle = String.toUpper name
, headerBody = "fasdklfjasdlk;fjasdl;fjasdfl;kasjdfl;askdja;lsdkjas;ldfj"
}
nutriDexMaker : NutriDex -> Element msg
nutriDexMaker nutridex =
nutriDexMaker : NutriDex -> Device -> Element msg
nutriDexMaker nutridex device =
row
topLevelBox
[ cardMaker
[ cardTitleMaker (nutriDexTitle nutridex)
[ cardTitleMaker (String.toUpper nutridex.nutriDexTitle)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ featureList nutridex
, nutriDexBodyMaker
, nutriDexAdjustments
[ featureList nutridex device
, nutriDexBodyMaker device
, nutriDexAdjustments device
, column [ spacing 10 ]
[ nutriDexVitamins
, nutriDexFattyAcids
, nutriDexMinerals
, nutriDexAminoAcids
]
, nutriDexReferences nutridex
, nutriDexReferences nutridex device
]
]
]
@ -198,40 +190,6 @@ nutriDexMaker nutridex =
]
nutriDexMakerMobile : NutriDex -> Element msg
nutriDexMakerMobile nutridex =
row
topLevelBox
[ cardMaker
[ cardTitleMaker (nutriDexTitle nutridex)
, cardFormatter
[ cardContentSpacing
[ column
fieldSpacer
[ cardSubTitleMaker
[ featureListMobile nutridex
, nutriDexBodyMaker
, nutriDexAdjustments
, column [ spacing 10 ]
[ nutriDexVitamins
, nutriDexFattyAcids
, nutriDexMinerals
, nutriDexAminoAcids
]
, nutriDexReferences nutridex
]
]
]
]
]
]
nutriDexTitle : NutriDex -> String
nutriDexTitle nutridex =
String.toUpper nutridex.nutriDexTitle
makeFeature : Features -> Element msg
makeFeature features =
column
@ -271,8 +229,8 @@ price =
}
featureList : NutriDex -> Element msg
featureList nutridex =
featureList : NutriDex -> Device -> Element msg
featureList nutridex device =
column
[ spacing 8
, width fill
@ -284,17 +242,48 @@ featureList nutridex =
, right = 0
}
]
[ row
[ spacing 20
, width fill
, height fill
]
[ (case ( device.class, device.orientation ) of
( Phone, Portrait ) ->
column
[ spacing 20
, centerX
]
( Tablet, Portrait ) ->
column
[ spacing 20
, centerX
]
_ ->
row
[ spacing 20
, width fill
, height fill
]
)
[ column
[ spacing 20
]
(case ( device.class, device.orientation ) of
( Phone, Portrait ) ->
[ spacing 20, centerX ]
( Tablet, Portrait ) ->
[ spacing 20, centerX ]
_ ->
[ spacing 20 ]
)
[ row
[ centerX
, E.width <| px 250
, case ( device.class, device.orientation ) of
( Phone, Portrait ) ->
E.width <| px 150
( Tablet, Portrait ) ->
E.width <| px 150
_ ->
E.width <| px 250
]
[ html nutriDexLogo
]
@ -347,93 +336,10 @@ featureList nutridex =
]
featureListMobile : NutriDex -> Element msg
featureListMobile nutridex =
column
[ spacing 8
, width fill
, height fill
, paddingEach
{ top = 10
, bottom = 0
, left = 0
, right = 0
}
]
[ column
[ spacing 20
, centerX
]
[ row
[ centerX
, E.width <| px 150
]
[ html nutriDexLogo
]
, row
[ D.width 5
, D.rounded 25
, centerX
, D.color colourTheme.backgroundLightGrey
, B.color colourTheme.backgroundLightGrey
]
[ row
[ B.color colourTheme.textDarkOrange
, D.rounded 30
, F.size 25
, F.bold
, paddingEach
{ top = 10
, right = 25
, bottom = 10
, left = 25
}
]
[ price
]
]
, column
[ centerX ]
[ column
[ F.size 18
, F.bold
, F.color colourTheme.textLightOrange
]
[ newTabLink []
{ url = "https://drive.google.com/file/d/1sk7VgjuL2rEqQdnBRdZjr2_Ab9vwrbmo/view?usp=sharing"
, label =
paragraph
[ centerX
, centerY
]
[ text "Free Cost Efficiency Score!" ]
}
]
]
]
, column [ width fill, F.size 12, spacing 3 ] <|
List.map2 (\x y -> makeFeature x)
nutridex.nutriDexFeatures
(List.range 1 (List.length nutridex.nutriDexFeatures))
]
nutriDexTitleMaker : String -> Element msg
nutriDexTitleMaker title =
column
[ width fill
, height fill
, spacing 20
, paddingEach { top = 0, bottom = 0, left = 100, right = 100 }
]
[ row
[ width fill
, centerX
, D.widthEach { bottom = 1, top = 0, left = 0, right = 0 }
, D.color colourTheme.textLightOrange
, paddingEach { top = 40, bottom = 0, left = 0, right = 0 }
]
[]
column [ centerX, width fill ]
[ divider
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
@ -465,8 +371,8 @@ linkFormat =
]
nutriDexBodyMaker : Element msg
nutriDexBodyMaker =
nutriDexBodyMaker : Device -> Element msg
nutriDexBodyMaker device =
column
[ width fill
, height fill
@ -557,22 +463,21 @@ referenceFormat =
]
nutriDexAdjustments : Element msg
nutriDexAdjustments =
nutriDexAdjustments : Device -> Element msg
nutriDexAdjustments device =
column
[ width fill
, height fill
, spacing 20
]
[ nutriDexTitleMaker "Nutrient Density Score Adjustments"
, row []
[ paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
]
++ [ F.alignLeft, width fill ]
)
, el [] <|
paragraph
[ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.alignLeft
]
[ text " "
, text "No adjustments are made to vitamin B1, vitamin B2, vitamin B3, manganese, phosphorus, and potassium, due to their DRIs only representing total daily intake, or due to the nutrient having close to 100% bioavailability. "
, row [ F.regular, F.size 12 ]
@ -612,25 +517,22 @@ nutriDexAdjustments =
}
]
]
]
]
nutridexSubTitleMaker : String -> Element msg
nutridexSubTitleMaker title =
paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ F.alignLeft
, width fill
, F.size 18
, F.color colourTheme.textLightOrange
]
)
[ text title ]
el
[ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
, width fill
, F.size 18
, F.color colourTheme.textLightOrange
]
<|
text title
nutriDexVitamins : Element msg
@ -1062,7 +964,7 @@ nutriDexAminoAcids =
, left = 0
}
]
[ nutridexSubTitleMaker "Amino Acids"
[ nutridexSubTitleMaker (String.toUpper "Amino Acids")
]
, row []
[ paragraph
@ -1104,73 +1006,15 @@ nutriDexAminoAcids =
]
nutriDexReferenceTitleMaker : Element msg
nutriDexReferenceTitleMaker =
column
[ width fill
, height fill
, spacing 20
]
[ row
[ width fill
, centerX
, D.widthEach { bottom = 1, top = 0, left = 0, right = 0 }
, D.color colourTheme.textLightOrange
, paddingEach { top = 40, bottom = 0, left = 0, right = 0 }
]
[]
, paragraph
([ F.color colourTheme.textLightGrey
, paragraphSpacing
, paragraphFontSize
, F.bold
]
++ [ centerX
, F.size 25
, F.color colourTheme.textLightOrange
, paddingEach
{ top = 10
, right = 0
, bottom = 10
, left = 0
}
]
)
[ text "References" ]
]
nutriDexReferences : NutriDex -> Element msg
nutriDexReferences nutridex =
nutriDexReferences : NutriDex -> Device -> Element msg
nutriDexReferences nutridex device =
column
[ width fill
, height fill
]
[ nutriDexTitleMaker "Reference"
[ nutriDexTitleMaker "BIBLIOGRAPHY"
, column [ width fill, F.size 15, spacing 10 ] <|
List.map2 (\x y -> makeReference x y)
nutridex.nutriDexReference
(List.range 1 (List.length nutridex.nutriDexReference))
]
makeReference : References -> Int -> Element msg
makeReference references index =
paragraph
[ F.regular
, F.alignLeft
]
[ row []
[ newTabLink
[ F.bold
, F.color colourTheme.textLightOrange
, hoverFontDarkOrange
, transitionStyleFast
]
{ url = references.link, label = text (String.fromInt index ++ ". ") }
, text references.author
, text references.title
, text references.journal
, text references.year
]
]

View file

@ -19,10 +19,12 @@ import Config.Helpers.CardFormat
)
import Config.Helpers.Format
exposing
( paragraphFontSize
( headerFontSizeSmall
, paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Header exposing (..)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
@ -221,7 +223,7 @@ serviceWidth =
rateMaker : Service msg -> Element msg
rateMaker service =
row
([ F.color colourTheme.textLightGrey
([ F.color colourTheme.textLightOrange
, paragraphSpacing
, paragraphFontSize
, F.bold
@ -240,10 +242,13 @@ rateMaker service =
[ E.width fill
, alignLeft
]
[ paragraph [ F.regular ]
[ el [ F.color colourTheme.textLightOrange ] <|
E.text service.serviceRate
[ el
[ F.regular
, paragraphFontSize
, F.color colourTheme.textLightGrey
]
<|
E.text service.serviceRate
]
]
@ -251,9 +256,9 @@ rateMaker service =
descriptionMaker : Service msg -> Element msg
descriptionMaker service =
row
[ F.color colourTheme.textLightGrey
[ F.color colourTheme.textLightOrange
, paragraphSpacing
, paragraphFontSize
, headerFontSizeSmall
, F.bold
]
[ column

View file

@ -1,14 +1,10 @@
module Pages.Services.Analysis exposing (Model, Msg, page)
import Config.Helpers.ArticleFormat exposing (..)
import Config.Helpers.CardFormat exposing (..)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response exposing (pageList, topLevelContainer)
import Config.Helpers.ServiceFormat exposing (..)
import Config.Helpers.ToolTip exposing (..)
import Config.Pages.Services.Records.DebateAnalysis exposing (..)
import Config.Style.Colour exposing (colourTheme)

View file

@ -1,19 +1,16 @@
module Pages.Services.Coaching exposing (Model, Msg, page)
import Config.Helpers.ArticleFormat exposing (..)
import Config.Helpers.CardFormat exposing (..)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.ServiceFormat exposing (..)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Pages.Services.Records.DebateCoaching exposing (servicesDebateCoaching)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Transitions

View file

@ -1,19 +1,16 @@
module Pages.Services.Elm exposing (Model, Msg, page)
import Config.Helpers.ArticleFormat exposing (..)
import Config.Helpers.CardFormat exposing (..)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.ServiceFormat exposing (..)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Pages.Services.Records.ElmBuilds exposing (servicesElmBuilds)
import Config.Style.Colour exposing (..)
import Config.Style.Transitions

View file

@ -1,19 +1,16 @@
module Pages.Services.Nix exposing (Model, Msg, page)
import Config.Helpers.ArticleFormat exposing (..)
import Config.Helpers.CardFormat exposing (..)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.ServiceFormat exposing (..)
import Config.Helpers.ToolTip exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Pages.Services.Records.NixBuilds exposing (servicesNixBuilds)
import Config.Style.Colour exposing (..)
import Config.Style.Transitions

View file

@ -1,18 +1,15 @@
module Pages.Services.Nutrition exposing (Model, Msg, page)
import Config.Helpers.ArticleFormat exposing (..)
import Config.Helpers.CardFormat exposing (..)
import Config.Helpers.Format exposing (..)
import Config.Helpers.Header
exposing
( Header
, headerMaker
)
import Config.Helpers.Headers.Header exposing (headerMaker)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Response
exposing
( pageList
, topLevelContainer
)
import Config.Helpers.ServiceFormat exposing (..)
import Config.Helpers.ToolTip exposing (..)
import Config.Pages.Services.Records.NutritionScience exposing (servicesNutritionScience)
import Config.Style.Colour exposing (colourTheme)