mirror of
https://gitlab.com/upRootNutrition/website.git
synced 2025-06-16 04:25:11 -05:00
feat: added some stuff
This commit is contained in:
parent
f73dab4579
commit
36f9c89214
21 changed files with 573 additions and 155 deletions
80
frontend/src/Headers/Helpers.elm
Normal file
80
frontend/src/Headers/Helpers.elm
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
module Headers.Helpers exposing (..)
|
||||||
|
|
||||||
|
import Config.CardFormat exposing (..)
|
||||||
|
import Config.Colour exposing (..)
|
||||||
|
import Config.Format exposing (..)
|
||||||
|
import Config.StrengthBar exposing (..)
|
||||||
|
import Config.ToolTip exposing (..)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B exposing (..)
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Interviews.Types exposing (..)
|
||||||
|
import Layouts
|
||||||
|
import Page exposing (Page)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Shared
|
||||||
|
import View exposing (View)
|
||||||
|
|
||||||
|
|
||||||
|
headerMaker : Header -> Element msg
|
||||||
|
headerMaker header =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ column
|
||||||
|
[ E.width <| px 785
|
||||||
|
, D.width 5
|
||||||
|
, D.color colourTheme.backgroundDarkGrey
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 32
|
||||||
|
, topRight = 32
|
||||||
|
, bottomRight = 32
|
||||||
|
, bottomLeft = 32
|
||||||
|
}
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
(nonHighlightedTitleFormat
|
||||||
|
++ [ F.size 20
|
||||||
|
, B.color colourTheme.textDarkOrange
|
||||||
|
, paddingEach
|
||||||
|
{ top = 6
|
||||||
|
, bottom = 3
|
||||||
|
, left = 25
|
||||||
|
, right = 15
|
||||||
|
}
|
||||||
|
, alignBottom
|
||||||
|
, width fill
|
||||||
|
, F.center
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 26
|
||||||
|
, topRight = 26
|
||||||
|
, bottomRight = 0
|
||||||
|
, bottomLeft = 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text header.headerTitle ]
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ paragraph
|
||||||
|
(paragraphFormat
|
||||||
|
++ [ F.size 18
|
||||||
|
, F.center
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text header.headerBody ]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
headerTitle : Header -> String
|
||||||
|
headerTitle header =
|
||||||
|
header.headerTitle
|
10
frontend/src/Headers/Pages/Arguments.elm
Normal file
10
frontend/src/Headers/Pages/Arguments.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Arguments exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentHeader : Header
|
||||||
|
argumentHeader =
|
||||||
|
{ headerTitle = "DEBATE"
|
||||||
|
, 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."
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Contact.elm
Normal file
10
frontend/src/Headers/Pages/Contact.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Contact exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
contactHeader : Header
|
||||||
|
contactHeader =
|
||||||
|
{ headerTitle = "CONTACT"
|
||||||
|
, headerBody = "fasdklfjasdlk;fjasdl;fjasdfl;kasjdfl;askdja;lsdkjas;ldfj"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/CuckList.elm
Normal file
10
frontend/src/Headers/Pages/CuckList.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.CuckList exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
cuckListHeader : Header
|
||||||
|
cuckListHeader =
|
||||||
|
{ headerTitle = "CUCKLIST"
|
||||||
|
, 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."
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Donate.elm
Normal file
10
frontend/src/Headers/Pages/Donate.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Donate exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
donateHeader : Header
|
||||||
|
donateHeader =
|
||||||
|
{ headerTitle = "DONATE"
|
||||||
|
, 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!"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/HyperBlog.elm
Normal file
10
frontend/src/Headers/Pages/HyperBlog.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.HyperBlog exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
hyperBlogHeader : Header
|
||||||
|
hyperBlogHeader =
|
||||||
|
{ headerTitle = "HYPERBLOG"
|
||||||
|
, headerBody = "fasdklfjasdlk;fjasdl;fjasdfl;kasjdfl;askdja;lsdkjas;ldfj"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Interviews.elm
Normal file
10
frontend/src/Headers/Pages/Interviews.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Interviews exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
interviewHeader : Header
|
||||||
|
interviewHeader =
|
||||||
|
{ headerTitle = "INTERVIEWS"
|
||||||
|
, headerBody = "This page showcases various podcasts and shows I've been on. If you’d like to have me as a guest on your podcast, feel free to reach out—I’d love to share my perspectives with your audience!"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/NutriDex.elm
Normal file
10
frontend/src/Headers/Pages/NutriDex.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.NutriDex exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexHeader : Header
|
||||||
|
nutriDexHeader =
|
||||||
|
{ headerTitle = "NUTRIDEX"
|
||||||
|
, headerBody = "fasdklfjasdlk;fjasdl;fjasdfl;kasjdfl;askdja;lsdkjas;ldfj"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Services.elm
Normal file
10
frontend/src/Headers/Pages/Services.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Services exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
servicesHeader : Header
|
||||||
|
servicesHeader =
|
||||||
|
{ headerTitle = "SERVICES"
|
||||||
|
, 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."
|
||||||
|
}
|
7
frontend/src/Headers/Types.elm
Normal file
7
frontend/src/Headers/Types.elm
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
module Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
type alias Header =
|
||||||
|
{ headerTitle : String
|
||||||
|
, headerBody : String
|
||||||
|
}
|
|
@ -5,7 +5,6 @@ import Config.Colour exposing (..)
|
||||||
import Config.Format exposing (..)
|
import Config.Format exposing (..)
|
||||||
import Config.StrengthBar exposing (..)
|
import Config.StrengthBar exposing (..)
|
||||||
import Config.ToolTip exposing (..)
|
import Config.ToolTip exposing (..)
|
||||||
import Cuckery.Types exposing (..)
|
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element as E exposing (..)
|
import Element as E exposing (..)
|
||||||
import Element.Background as B exposing (..)
|
import Element.Background as B exposing (..)
|
||||||
|
|
|
@ -60,6 +60,8 @@ import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Border as D exposing (..)
|
import Element.Border as D exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Arguments exposing (argumentHeader)
|
||||||
import Html
|
import Html
|
||||||
import Html.Attributes as H exposing (style, title, wrap)
|
import Html.Attributes as H exposing (style, title, wrap)
|
||||||
import Layouts
|
import Layouts
|
||||||
|
@ -151,60 +153,61 @@ debateList =
|
||||||
[ column
|
[ column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map argumentMaker
|
List.concat
|
||||||
[ argumentApoBCVD
|
[ List.map headerMaker
|
||||||
, argumentAnabolicKeto
|
[ argumentHeader ]
|
||||||
, argumentAntagonisticPleiotropy
|
, List.map argumentMaker
|
||||||
, argumentCarbsObesity
|
[ argumentApoBCVD
|
||||||
, argumentDietaryCholesterol
|
, argumentAnabolicKeto
|
||||||
, argumentFructoseNAFLD
|
, argumentAntagonisticPleiotropy
|
||||||
, argumentHealthPromotingFoods
|
, argumentCarbsObesity
|
||||||
, argumentHealthSeeker
|
, argumentDietaryCholesterol
|
||||||
, argumentHealthyChocolate
|
, argumentFructoseNAFLD
|
||||||
, argumentHealthyDairy
|
, argumentHealthPromotingFoods
|
||||||
, argumentHealthyFattyFish
|
, argumentHealthSeeker
|
||||||
, argumentHealthyFibre
|
, argumentHealthyChocolate
|
||||||
, argumentHealthyFood
|
, argumentHealthyDairy
|
||||||
, argumentHealthyPlantFoods
|
, argumentHealthyFattyFish
|
||||||
, argumentHealthySeedOils
|
, argumentHealthyFibre
|
||||||
, argumentHealthySoy
|
, argumentHealthyFood
|
||||||
, argumentMalondialdehyde
|
, argumentHealthyPlantFoods
|
||||||
, argumentOmega3Omega6Ratio
|
, argumentHealthySeedOils
|
||||||
, argumentPlantBasedCVDReversal
|
, argumentHealthySoy
|
||||||
, argumentPolyphenolReductio
|
, argumentMalondialdehyde
|
||||||
, argumentSodiumCVD
|
, argumentOmega3Omega6Ratio
|
||||||
, argumentTMAOCausality
|
, argumentPlantBasedCVDReversal
|
||||||
, argumentUnhealthyCoconutOil
|
, argumentPolyphenolReductio
|
||||||
, argumentUnhealthyProcessedMeat
|
, argumentSodiumCVD
|
||||||
, argumentUnhealthyRedMeat
|
, argumentTMAOCausality
|
||||||
, argumentUnhealthySaturatedFat
|
, argumentUnhealthyCoconutOil
|
||||||
, argumentAbortion
|
, argumentUnhealthyProcessedMeat
|
||||||
, argumentAgnosticism
|
, argumentUnhealthyRedMeat
|
||||||
, argumentAgriculturalPredation
|
, argumentUnhealthySaturatedFat
|
||||||
, argumentAnimalRights
|
, argumentAbortion
|
||||||
, argumentAntiRewilding
|
, argumentAgnosticism
|
||||||
, argumentAntiVandalism
|
, argumentAgriculturalPredation
|
||||||
, argumentColonizingNature
|
, argumentAnimalRights
|
||||||
, argumentCropDeaths
|
, argumentAntiRewilding
|
||||||
, argumentDairyCowRape
|
, argumentAntiVandalism
|
||||||
, argumentEfilismPatrolSquad
|
, argumentColonizingNature
|
||||||
, argumentEthicalSlurs
|
, argumentCropDeaths
|
||||||
, argumentFineTuning
|
, argumentDairyCowRape
|
||||||
, argumentImmortalityReductio
|
, argumentEfilismPatrolSquad
|
||||||
, argumentOddOrderPredators
|
, argumentEthicalSlurs
|
||||||
, argumentOstroveganism
|
, argumentFineTuning
|
||||||
, argumentPollinationReductio
|
, argumentImmortalityReductio
|
||||||
, argumentScratcherPioneers
|
, argumentOddOrderPredators
|
||||||
, argumentTransPeople
|
, argumentOstroveganism
|
||||||
, argumentVeganSocietyReductio
|
, argumentPollinationReductio
|
||||||
, argumentBoobyTrapPagers
|
, argumentScratcherPioneers
|
||||||
, argumentEpidemiologyCausality
|
, argumentTransPeople
|
||||||
, argumentFlatEarthDebunk
|
, argumentVeganSocietyReductio
|
||||||
, argumentTruncatedMeta
|
, argumentBoobyTrapPagers
|
||||||
|
, argumentEpidemiologyCausality
|
||||||
|
, argumentFlatEarthDebunk
|
||||||
|
, argumentTruncatedMeta
|
||||||
|
]
|
||||||
|
, List.map gibberishMaker
|
||||||
|
[ gibberishList ]
|
||||||
]
|
]
|
||||||
, column
|
|
||||||
pageList
|
|
||||||
<|
|
|
||||||
List.map gibberishMaker
|
|
||||||
[ gibberishList ]
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -74,6 +74,8 @@ import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Border as D
|
import Element.Border as D
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.CuckList exposing (cuckListHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -161,71 +163,75 @@ dodgersList =
|
||||||
column
|
column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map cuckMaker
|
List.concat
|
||||||
[ cuckAdamSinger
|
[ List.map headerMaker
|
||||||
, cuckAmberOHearn
|
[ cuckListHeader ]
|
||||||
, cuckAnnChilders
|
, List.map cuckMaker
|
||||||
, cuckAnthonyGustin
|
[ cuckAdamSinger
|
||||||
, cuckAshwaniGarg
|
, cuckAmberOHearn
|
||||||
, cuckAustinHerbert
|
, cuckAnnChilders
|
||||||
, cuckBartKay
|
, cuckAnthonyGustin
|
||||||
, cuckBenBikman
|
, cuckAshwaniGarg
|
||||||
, cuckBennyMalone
|
, cuckAustinHerbert
|
||||||
, cuckBradCampbell
|
, cuckBartKay
|
||||||
, cuckBradCohn
|
, cuckBenBikman
|
||||||
, cuckBradMarshall
|
, cuckBennyMalone
|
||||||
, cuckBretWeinstein
|
, cuckBradCampbell
|
||||||
, cuckBrianKerley
|
, cuckBradCohn
|
||||||
, cuckCarnivoreAurelius
|
, cuckBradMarshall
|
||||||
, cuckCateShanahan
|
, cuckBretWeinstein
|
||||||
, cuckChrisBoettcher
|
, cuckBrianKerley
|
||||||
, cuckClaraAboel
|
, cuckCarnivoreAurelius
|
||||||
, cuckCliffHarvey
|
, cuckCateShanahan
|
||||||
, cuckDaveFeldman
|
, cuckChrisBoettcher
|
||||||
, cuckDavidDiamond
|
, cuckClaraAboel
|
||||||
, cuckDavidGornoski
|
, cuckCliffHarvey
|
||||||
, cuckDianaRodgers
|
, cuckDaveFeldman
|
||||||
, cuckEdwardGoeke
|
, cuckDavidDiamond
|
||||||
, cuckElieJarrouge
|
, cuckDavidGornoski
|
||||||
, cuckGaryBrecka
|
, cuckDianaRodgers
|
||||||
, cuckGaryFettke
|
, cuckEdwardGoeke
|
||||||
, cuckGaryTaubes
|
, cuckElieJarrouge
|
||||||
, cuckGeorgeMartin
|
, cuckGaryBrecka
|
||||||
, cuckGuyAustin
|
, cuckGaryFettke
|
||||||
, cuckIvorCummins
|
, cuckGaryTaubes
|
||||||
, cuckJakeMey
|
, cuckGeorgeMartin
|
||||||
, cuckJamesDiNicolantonio
|
, cuckGuyAustin
|
||||||
, cuckJosephEverett
|
, cuckIvorCummins
|
||||||
, cuckJustinMares
|
, cuckJakeMey
|
||||||
, cuckKaitMalthaner
|
, cuckJamesDiNicolantonio
|
||||||
, cuckKemMinnick
|
, cuckJosephEverett
|
||||||
, cuckKenBerry
|
, cuckJustinMares
|
||||||
, cuckKevinStock
|
, cuckKaitMalthaner
|
||||||
, cuckKyleMamounis
|
, cuckKemMinnick
|
||||||
, cuckMarkSisson
|
, cuckKenBerry
|
||||||
, cuckMartyKendall
|
, cuckKevinStock
|
||||||
, cuckMaxLugavere
|
, cuckKyleMamounis
|
||||||
, cuckMichaelKummer
|
, cuckMarkSisson
|
||||||
, cuckMichaelManderville
|
, cuckMartyKendall
|
||||||
, cuckMikeMutzel
|
, cuckMaxLugavere
|
||||||
, cuckMikeSweeney
|
, cuckMichaelKummer
|
||||||
, cuckNickEggleton
|
, cuckMichaelManderville
|
||||||
, cuckNinaTeicholz
|
, cuckMikeMutzel
|
||||||
, cuckNorstrongChris
|
, cuckMikeSweeney
|
||||||
, cuckPaulMason
|
, cuckNickEggleton
|
||||||
, cuckPaulSaladino
|
, cuckNinaTeicholz
|
||||||
, cuckPhilipOvadia
|
, cuckNorstrongChris
|
||||||
, cuckPhilippeStephenson
|
, cuckPaulMason
|
||||||
, cuckRalphNapolitano
|
, cuckPaulSaladino
|
||||||
, cuckRaphaelSirtoli
|
, cuckPhilipOvadia
|
||||||
, cuckRobbWolf
|
, cuckPhilippeStephenson
|
||||||
, cuckRobMeijer
|
, cuckRalphNapolitano
|
||||||
, cuckSebastianRamirez
|
, cuckRaphaelSirtoli
|
||||||
, cuckSimonGoddek
|
, cuckRobbWolf
|
||||||
, cuckTravisStatham
|
, cuckRobMeijer
|
||||||
, cuckTristanHaggard
|
, cuckSebastianRamirez
|
||||||
, cuckTroKalayjian
|
, cuckSimonGoddek
|
||||||
, cuckTuckerGoodrich
|
, cuckTravisStatham
|
||||||
, cuckZoeHarcombe
|
, cuckTristanHaggard
|
||||||
, cuckZsofiaClemens
|
, cuckTroKalayjian
|
||||||
|
, cuckTuckerGoodrich
|
||||||
|
, cuckZoeHarcombe
|
||||||
|
, cuckZsofiaClemens
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
|
@ -17,6 +17,8 @@ import Element as E exposing (..)
|
||||||
import Element.Background as B exposing (..)
|
import Element.Background as B exposing (..)
|
||||||
import Element.Border as D exposing (..)
|
import Element.Border as D exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Donate exposing (donateHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -101,20 +103,11 @@ donateContainer =
|
||||||
|
|
||||||
donateList : Element msg
|
donateList : Element msg
|
||||||
donateList =
|
donateList =
|
||||||
column pageList
|
column pageList <|
|
||||||
[ paragraph
|
List.concat
|
||||||
(paragraphFormat
|
[ List.map headerMaker
|
||||||
++ [ F.size 18
|
[ donateHeader ]
|
||||||
, alignTop
|
, List.map donateMaker
|
||||||
, E.width <| px 800
|
|
||||||
, centerX, F.center
|
|
||||||
]
|
|
||||||
)
|
|
||||||
[ text "Any of the below services may be bundled for a $10 discount off each hour. For example, bundling two sessions of Debate Analysis would be $140 total, rather than $80/hr. All services are changed in CAD." ]
|
|
||||||
, column
|
|
||||||
pageList
|
|
||||||
<|
|
|
||||||
List.map donateMaker
|
|
||||||
[ donateLiberaPay
|
[ donateLiberaPay
|
||||||
, donatePayPal
|
, donatePayPal
|
||||||
, donatePatreon
|
, donatePatreon
|
||||||
|
@ -123,4 +116,4 @@ donateList =
|
||||||
, donateYouTube
|
, donateYouTube
|
||||||
, donateMerch
|
, donateMerch
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
|
@ -7,6 +7,8 @@ import Config.Identity as I exposing (..)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.NutriDex exposing (nutriDexHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -23,6 +25,12 @@ page shared route =
|
||||||
, subscriptions = subscriptions
|
, subscriptions = subscriptions
|
||||||
, view = view
|
, view = view
|
||||||
}
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,4 +80,7 @@ subscriptions model =
|
||||||
|
|
||||||
view : Model -> View Msg
|
view : Model -> View Msg
|
||||||
view model =
|
view model =
|
||||||
View.fromString "Pages.Hyperblog"
|
{ title = hyperBlogName
|
||||||
|
, attributes = []
|
||||||
|
, element = none
|
||||||
|
}
|
||||||
|
|
|
@ -7,6 +7,8 @@ import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Border as D
|
import Element.Border as D
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Interviews exposing (interviewHeader)
|
||||||
import Html
|
import Html
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Interviews.Episodes.DrShawnBakerPodcast exposing (drShawnBakerPodcast)
|
import Interviews.Episodes.DrShawnBakerPodcast exposing (drShawnBakerPodcast)
|
||||||
|
@ -20,6 +22,7 @@ import Interviews.Episodes.SigmaNutritionRadio exposing (sigmaNutritionRadio)
|
||||||
import Interviews.Episodes.StrenuousLifePodcast exposing (strenuousLifePodcast)
|
import Interviews.Episodes.StrenuousLifePodcast exposing (strenuousLifePodcast)
|
||||||
import Interviews.Helpers exposing (..)
|
import Interviews.Helpers exposing (..)
|
||||||
import Layouts
|
import Layouts
|
||||||
|
import List exposing (head)
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
import Route exposing (Route)
|
import Route exposing (Route)
|
||||||
import Shared
|
import Shared
|
||||||
|
@ -105,14 +108,18 @@ interviewList =
|
||||||
column
|
column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map interviewMaker
|
List.concat
|
||||||
[ sigmaNutritionRadio
|
[ List.map headerMaker
|
||||||
, markBellsPowerProject
|
[ interviewHeader ]
|
||||||
, foolproofMastery
|
, List.map interviewMaker
|
||||||
, ketoGeeksPodcast
|
[ sigmaNutritionRadio
|
||||||
, legendaryLifePodcast
|
, markBellsPowerProject
|
||||||
, muscleMemoirsPodcast
|
, foolproofMastery
|
||||||
, fitAndFurious
|
, ketoGeeksPodcast
|
||||||
, strenuousLifePodcast
|
, legendaryLifePodcast
|
||||||
, drShawnBakerPodcast
|
, muscleMemoirsPodcast
|
||||||
|
, fitAndFurious
|
||||||
|
, strenuousLifePodcast
|
||||||
|
, drShawnBakerPodcast
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
107
frontend/src/Pages/Nutridex.elm
Normal file
107
frontend/src/Pages/Nutridex.elm
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
module Pages.Nutridex exposing (Model, Msg, page)
|
||||||
|
|
||||||
|
import Config.Colour as T exposing (..)
|
||||||
|
import Config.Format as O exposing (..)
|
||||||
|
import Config.Identity as I exposing (..)
|
||||||
|
import Donate.Types exposing (..)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B exposing (..)
|
||||||
|
import Element.Border as D exposing (..)
|
||||||
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Donate exposing (donateHeader)
|
||||||
|
import Headers.Pages.NutriDex exposing (nutriDexHeader)
|
||||||
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Layout exposing (..)
|
||||||
|
import Layouts
|
||||||
|
import Page exposing (Page)
|
||||||
|
import Products.Helpers exposing (..)
|
||||||
|
import Products.NutriDex.NutriDex exposing (productNutriDex)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Shared exposing (..)
|
||||||
|
import View exposing (View)
|
||||||
|
|
||||||
|
|
||||||
|
page : Shared.Model -> Route () -> Page Model Msg
|
||||||
|
page shared route =
|
||||||
|
Page.new
|
||||||
|
{ init = init
|
||||||
|
, update = update
|
||||||
|
, subscriptions = subscriptions
|
||||||
|
, view = view
|
||||||
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- INIT
|
||||||
|
|
||||||
|
|
||||||
|
type alias Model =
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
init : () -> ( Model, Effect Msg )
|
||||||
|
init () =
|
||||||
|
( {}
|
||||||
|
, Effect.none
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- UPDATE
|
||||||
|
|
||||||
|
|
||||||
|
type Msg
|
||||||
|
= NoOp
|
||||||
|
|
||||||
|
|
||||||
|
update : Msg -> Model -> ( Model, Effect Msg )
|
||||||
|
update msg model =
|
||||||
|
case msg of
|
||||||
|
NoOp ->
|
||||||
|
( model
|
||||||
|
, Effect.none
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- SUBSCRIPTIONS
|
||||||
|
|
||||||
|
|
||||||
|
subscriptions : Model -> Sub Msg
|
||||||
|
subscriptions model =
|
||||||
|
Sub.none
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- VIEW
|
||||||
|
|
||||||
|
|
||||||
|
view : Model -> View Msg
|
||||||
|
view model =
|
||||||
|
{ title = nutriDexName
|
||||||
|
, attributes = []
|
||||||
|
, element = nutriDexContainer
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexContainer : Element msg
|
||||||
|
nutriDexContainer =
|
||||||
|
topLevelContainer nutriDexList
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexList : Element msg
|
||||||
|
nutriDexList =
|
||||||
|
column pageList <|
|
||||||
|
List.concat
|
||||||
|
[ List.map nutriDexMaker
|
||||||
|
[ productNutriDex ]
|
||||||
|
]
|
|
@ -6,6 +6,8 @@ import Config.Identity as I exposing (..)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Services exposing (servicesHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -99,10 +101,14 @@ servicesList =
|
||||||
column
|
column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map serviceMaker
|
List.concat
|
||||||
[ servicesDebateAnalysis
|
[ List.map headerMaker
|
||||||
, servicesDebateTutoring
|
[ servicesHeader ]
|
||||||
, servicesNutritionScience
|
, List.map serviceMaker
|
||||||
, servicesNixBuilds
|
[ servicesDebateAnalysis
|
||||||
, servicesElmBuilds
|
, servicesDebateTutoring
|
||||||
|
, servicesNutritionScience
|
||||||
|
, servicesNixBuilds
|
||||||
|
, servicesElmBuilds
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
76
frontend/src/Products/Helpers.elm
Normal file
76
frontend/src/Products/Helpers.elm
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
module Products.Helpers exposing (..)
|
||||||
|
|
||||||
|
import Config.CardFormat exposing (..)
|
||||||
|
import Config.Colour exposing (..)
|
||||||
|
import Config.Format exposing (..)
|
||||||
|
import Config.StrengthBar exposing (..)
|
||||||
|
import Config.ToolTip exposing (..)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B exposing (..)
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Interviews.Types exposing (..)
|
||||||
|
import Layouts
|
||||||
|
import Page exposing (Page)
|
||||||
|
import Products.Types exposing (..)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Shared
|
||||||
|
import View exposing (View)
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexMaker : NutriDex -> Element msg
|
||||||
|
nutriDexMaker nutridex =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ column
|
||||||
|
[ E.width <| px 785
|
||||||
|
, D.width 5
|
||||||
|
, D.color colourTheme.backgroundDarkGrey
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 32
|
||||||
|
, topRight = 32
|
||||||
|
, bottomRight = 32
|
||||||
|
, bottomLeft = 32
|
||||||
|
}
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
(nonHighlightedTitleFormat
|
||||||
|
++ [ F.size 20
|
||||||
|
, B.color colourTheme.textDarkOrange
|
||||||
|
, paddingEach
|
||||||
|
{ top = 6
|
||||||
|
, bottom = 3
|
||||||
|
, left = 25
|
||||||
|
, right = 15
|
||||||
|
}
|
||||||
|
, alignBottom
|
||||||
|
, width fill
|
||||||
|
, F.center
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 26
|
||||||
|
, topRight = 26
|
||||||
|
, bottomRight = 0
|
||||||
|
, bottomLeft = 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text nutridex.nutriDexTitle ]
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ paragraph
|
||||||
|
(paragraphFormat
|
||||||
|
++ [ F.size 18
|
||||||
|
, F.center
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text nutridex.nutriDexTitle ]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
21
frontend/src/Products/NutriDex/NutriDex.elm
Normal file
21
frontend/src/Products/NutriDex/NutriDex.elm
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module Products.NutriDex.NutriDex exposing (..)
|
||||||
|
|
||||||
|
import Products.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
productNutriDex : NutriDex
|
||||||
|
productNutriDex =
|
||||||
|
{ nutriDexTitle = "The NutriDex"
|
||||||
|
, nutriDexFeatures =
|
||||||
|
[ { feature = "feature"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, nutriDexReference =
|
||||||
|
[ { reference = "reference"
|
||||||
|
, author = "author"
|
||||||
|
, year = "year"
|
||||||
|
, title = "title"
|
||||||
|
, link = "link"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
22
frontend/src/Products/Types.elm
Normal file
22
frontend/src/Products/Types.elm
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
module Products.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
type alias NutriDex =
|
||||||
|
{ nutriDexTitle : String
|
||||||
|
, nutriDexFeatures : List Features
|
||||||
|
, nutriDexReference : List References
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias Features =
|
||||||
|
{ feature : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias References =
|
||||||
|
{ reference : String
|
||||||
|
, author : String
|
||||||
|
, title : String
|
||||||
|
, link : String
|
||||||
|
, year : String
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue