feat: v1 close

This commit is contained in:
Nick 2024-12-22 04:36:03 -06:00
parent f9af0e1941
commit d55f729540
40 changed files with 561 additions and 496 deletions

View file

@ -2,10 +2,10 @@ module Config.Helpers.Articles.Article exposing (..)
import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Types exposing (References)
import Config.Helpers.Cardables.Helpers exposing (cardMaker)
import Config.Helpers.Cardables.Types as C
import Config.Helpers.Cards.Helpers exposing (cardMaker)
import Config.Helpers.Cards.Types as C
import Config.Helpers.Format exposing (..)
import Config.Helpers.Headers.Header exposing (..)
import Config.Helpers.Headers.Helpers exposing (..)
import Config.Helpers.Headers.Types exposing (Header)
import Config.Helpers.Markdown exposing (..)
import Config.Helpers.Response

View file

@ -1,10 +1,10 @@
module Config.Helpers.Cardables.Helpers exposing (..)
module Config.Helpers.Cards.Helpers exposing (..)
import Config.Data.Identity
exposing
( pageNames
)
import Config.Helpers.Cardables.Types as C exposing (..)
import Config.Helpers.Cards.Types as C exposing (..)
import Config.Helpers.Converters exposing (formatName)
import Config.Helpers.Format
exposing
@ -12,6 +12,7 @@ import Config.Helpers.Format
, paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Response exposing (contentContainer)
import Config.Pages.Debate.Arguments.Records.Template exposing (argument)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Glow
@ -38,6 +39,45 @@ import Shared
cardMaker : Device -> Cardable msg -> List (Element msg) -> Element msg
cardMaker device cardable contents =
let
hasLink : Bool
hasLink =
case cardable of
C.Contact _ ->
False
C.Cuck c ->
True
C.BlogArticle _ ->
False
C.BlogCard _ ->
True
C.Argument _ ->
True
C.Gibberish _ ->
True
C.Service _ ->
True
C.Debate _ ->
True
C.Donate _ ->
True
C.Interview _ ->
False
C.NutriDex _ ->
False
C.ServicePage _ ->
False
cardTitleMaker : String -> Element msg
cardTitleMaker title =
el
@ -109,36 +149,40 @@ cardMaker device cardable contents =
cardInner : String -> List (Element msg) -> Element msg
cardInner title elements =
column
[ width fill ]
[ width fill
]
[ cardTitleMaker title
, cardStuff <|
row
[ width fill ]
[ width fill
, height fill
]
elements
]
cardOuter : Element msg -> Element msg
cardOuter elements =
el
[ width (fill |> minimum 100)
, width (fill |> maximum 875)
, padding 10
, centerX
]
<|
contentContainer <|
el
[ E.width fill
, D.width 5
, D.color colourTheme.backgroundDarkGrey
, D.rounded 32
, glowDeepDarkGrey
, mouseOver
[ D.color colourTheme.textDarkOrange
, B.color colourTheme.textDarkOrange
, glowDeepDarkOrange
]
, transitionStyleSlow
]
([ E.width fill
, D.width 5
, D.color colourTheme.backgroundDarkGrey
, D.rounded 32
, glowDeepDarkGrey
]
++ (if hasLink then
[ mouseOver
[ D.color colourTheme.textDarkOrange
, B.color colourTheme.textDarkOrange
, glowDeepDarkOrange
]
, transitionStyleSlow
]
else
[]
)
)
elements
cardWithImageWithLink : Bool -> String -> String -> String -> List (Element msg) -> Element msg
@ -193,19 +237,21 @@ cardMaker device cardable contents =
in
case cardable of
C.Contact contact ->
el [] <| cardTitleMaker contact.contactName
cardWithNoImage
(String.toUpper contact.contactName)
contents
C.Cuck cuck ->
cardWithImageWithLink
cuck.isNewTabLink
cuck.cuckName
("/cucks/" ++ cuck.cuckImage ++ ".png")
("/cucks/" ++ cuck.cuckImage ++ "/" ++ cuck.cuckImage ++ ".png")
cuck.cuckSocial
contents
C.BlogArticle blogArticle ->
cardWithNoImage
blogArticle.articleName
(String.toUpper blogArticle.articleName)
contents
C.BlogCard blogArticle ->
@ -217,10 +263,9 @@ cardMaker device cardable contents =
contents
C.Argument argument ->
cardWithImageWithLink
cardWithNoImageWithLink
argument.isNewTabLink
argument.argumentTitle
("/arguments/" ++ argument.argumentImage ++ ".png")
argument.proofLink
contents
@ -264,7 +309,12 @@ cardMaker device cardable contents =
C.NutriDex nutriDex ->
cardWithNoImage
nutriDex.nutriDexTitle
(String.toUpper nutriDex.nutriDexTitle)
contents
C.ServicePage service ->
cardWithNoImage
(String.toUpper service.serviceName)
contents
@ -280,8 +330,7 @@ cardContentMaker content =
cardStuff : Element msg -> Element msg
cardStuff content =
el
[ E.height fill
, E.width fill
[ E.width fill
, centerX
, B.color colourTheme.backgroundDarkGrey
, padding 10
@ -303,5 +352,6 @@ cardStuff content =
}
, spacing 8
, width fill
, height fill
]
content

View file

@ -1,4 +1,4 @@
module Config.Helpers.Cardables.Types exposing (..)
module Config.Helpers.Cards.Types exposing (..)
import Config.Pages.Blog.Types exposing (BlogArticle)
import Config.Pages.Contact.Types exposing (Contact)
@ -24,3 +24,4 @@ type Cardable msg
| Donate Donate
| Interview Interview
| NutriDex NutriDex
| ServicePage (Service msg)

View file

@ -47,7 +47,6 @@ divider =
el
[ width fill
, height fill
, spacing 20
, centerX
, width (fill |> maximum 600)
, D.widthEach
@ -58,7 +57,7 @@ divider =
}
, D.color colourTheme.textLightOrange
, paddingEach
{ top = 20
{ top = 10
, bottom = 0
, left = 0
, right = 0

View file

@ -1,37 +0,0 @@
module Config.Helpers.Headers.Header exposing (..)
import Config.Helpers.Cardables.Helpers exposing (cardMaker)
import Config.Helpers.Cardables.Types as C
import Config.Helpers.Headers.Types exposing (Header)
import Config.Pages.Contact.Types exposing (Contact)
import Element as E
exposing
( Device
, Element
, column
, row
, text
)
import Shared exposing (..)
-- headerMaker : Device -> Header -> Element msg
-- headerMaker device header =
-- cardMaker device header.headerTitle (contentList header) { description = "", src = "" } ""
contentList : Header -> List (Element msg)
contentList header =
[ text header.headerBody ]
servicesHeader : Header
servicesHeader =
let
name =
"Services"
in
{ headerTitle = String.toUpper name
, headerBody = "Bundle any of the services below to receive a $10 discount per hour. For example, two Debate Analysis sessions would cost $140 total, instead of $80/hr. All prices are in CAD."
}

View file

@ -0,0 +1,152 @@
module Config.Helpers.Headers.Helpers exposing (..)
import Config.Helpers.Converters exposing (formatName)
import Config.Helpers.Format
exposing
( divider
, headerFontSizeBig
, headerFontSizeMedium
, headerFontSizeSmall
, paragraphFontSize
, paragraphSpacing
)
import Config.Helpers.Headers.Types as C exposing (..)
import Config.Helpers.Response exposing (contentContainer)
import Config.Style.Colour exposing (colourTheme)
import Config.Style.Glow
exposing
( glowDeepDarkGrey
, glowDeepDarkOrange
)
import Config.Style.Icons.Icons exposing (construction)
import Config.Style.Transitions
exposing
( hoverCircleButtonDarkOrange
, transitionStyleMedium
, transitionStyleSlow
)
import Element as E exposing (..)
import Element.Background as B
import Element.Border as D
import Element.Font as F
import Html.Attributes as H
import Route.Path as Path exposing (..)
import Shared exposing (..)
headerMaker : Headerable -> Element msg
headerMaker headerable =
let
headerTitleMaker : String -> Element msg
headerTitleMaker title =
el
[ headerFontSizeBig
, F.bold
, width fill
, F.center
]
<|
paragraph [] [ text title ]
headerHelper : String -> String -> Element msg
headerHelper title body =
el
[ width (fill |> minimum 100)
, width (fill |> maximum 725)
, padding 10
, centerX
]
<|
column
[ width fill
]
[ headerTitleMaker title
, divider
, el
[ E.height fill
, E.width fill
, centerX
, spacing 8
, paddingEach
{ top = 10
, bottom = 0
, left = 0
, right = 0
}
]
<|
el
[ paddingEach
{ top = 0
, bottom = 0
, left = 15
, right = 15
}
, spacing 8
, width fill
]
<|
paragraph
[ width fill
, headerFontSizeSmall
, F.center
]
<|
[ text body ]
]
in
case headerable of
C.Arguments argument ->
headerHelper argument.headerTitle argument.headerBody
C.BlogPage blog ->
headerHelper blog.headerTitle blog.headerBody
C.CuckList cuck ->
headerHelper cuck.headerTitle cuck.headerBody
C.Debate debate ->
headerHelper debate.headerTitle debate.headerBody
C.Donate donate ->
headerHelper donate.headerTitle donate.headerBody
C.Gibberish gibberish ->
headerHelper gibberish.headerTitle gibberish.headerBody
C.Services service ->
headerHelper service.headerTitle service.headerBody
C.Interviews interview ->
headerHelper interview.headerTitle interview.headerBody
cardContentMaker : List (Element msg) -> Element msg
cardContentMaker content =
column
[ spacing 8
, width fill
]
content
cardStuff : Element msg -> Element msg
cardStuff content =
el
[ E.height fill
, E.width fill
, centerX
, spacing 8
]
<|
el
[ paddingEach
{ top = 0
, bottom = 0
, left = 15
, right = 15
}
, spacing 8
, width fill
]
content

View file

@ -0,0 +1,91 @@
module Config.Helpers.Headers.Records exposing (..)
import Config.Helpers.Headers.Types exposing (..)
argumentHeader : Header
argumentHeader =
let
name =
"Arguments"
in
{ headerTitle = String.toUpper name
, headerBody = "This page features arguments that I hold to be sound. I'm open to hearing all challenges, as I am ready to engage with and defend any argument listed."
}
blogHeader : Header
blogHeader =
let
name =
"Blog"
in
{ headerTitle = String.toUpper name
, headerBody = "This page features blog articles written by me, along with contributions from guest authors, covering topics primarily related to nutrition science, health science, and article."
}
cuckListHeader : Header
cuckListHeader =
let
name =
"Cucklist"
in
{ headerTitle = String.toUpper name
, headerBody = "This page features a list of morons who wrote cheques with their mouths that their asses couldn't cash. Each person included in this list has dodged debating me."
}
debateHeader : Header
debateHeader =
let
name =
"Debate"
in
{ headerTitle = String.toUpper name
, headerBody = "Here you will find links to various pages relevant to debate, such as formal arguments, a list of debate-dodging cucks, and an inventory of nonsensical terminology."
}
donateHeader : Header
donateHeader =
let
name =
"Donate"
in
{ headerTitle = String.toUpper name
, headerBody = "My site, research, and content all cost time and money to run. If you find my contributions valuable, please consider supporting my work on any of the platforms listed below!"
}
gibberishHeader : Header
gibberishHeader =
let
name =
"Gibberish"
in
{ headerTitle = String.toUpper name
, headerBody = "This page is specifically for terms and ostensible concepts that I think are either nonsensical or so practically useless that its intelligiblity is irrelevant."
}
servicesHeader : Header
servicesHeader =
let
name =
"Services"
in
{ headerTitle = String.toUpper name
, headerBody = "Bundle any of the services below to receive a $10 discount per hour. For example, two Debate Analysis sessions would cost $140 total, instead of $80/hr. All prices are in CAD."
}
interviewHeader : Header
interviewHeader =
let
name =
"Interviews"
in
{ headerTitle = String.toUpper name
, headerBody = "This page showcases various podcasts and shows I've been on. If youd like to have me as a guest on your podcast, feel free to reach outId love to share my perspectives with your audience!"
}

View file

@ -1,6 +1,17 @@
module Config.Helpers.Headers.Types exposing (..)
type Headerable
= Arguments Header
| BlogPage Header
| CuckList Header
| Debate Header
| Donate Header
| Gibberish Header
| Services Header
| Interviews Header
type alias Header =
{ headerTitle : String
, headerBody : String

View file

@ -38,3 +38,13 @@ pageListFormat =
, height fill
, scrollbarY
]
contentContainer : Element msg -> Element msg
contentContainer =
el
[ width (fill |> minimum 100)
, width (fill |> maximum 875)
, padding 10
, centerX
]

View file

@ -1,12 +1,8 @@
module Config.Pages.Contact.Types exposing (..)
type alias Contact =
{ contactName : String
, contactImage : String
, contactLink : String
, isNewTabLink : Bool
, contactLinkLabel : String
, contactEntry : List Method
}
@ -14,4 +10,8 @@ type alias Method =
{ contactInstructions : String
}
contactTitle : Contact
contactTitle =
{ contactName = "Contact"
}