feat: fixed receipts
0
frontend/src/Config/Helpers/Articles/Article.elm
Normal file → Executable file
|
@ -103,7 +103,11 @@ imageTransitionStyle =
|
|||
, glowDeepDarkGrey
|
||||
, D.color colourTheme.backgroundDarkGrey
|
||||
, B.color colourTheme.backgroundDarkGrey
|
||||
, hoverCircleButtonDarkOrange
|
||||
, mouseOver
|
||||
[ D.color colourTheme.textDarkOrange
|
||||
, B.color colourTheme.textDarkOrange
|
||||
, glowDeepDarkOrange
|
||||
]
|
||||
, transitionStyleMedium
|
||||
]
|
||||
|
||||
|
|
0
frontend/src/Config/Helpers/Headers/Types.elm
Normal file → Executable file
|
@ -57,7 +57,7 @@ titleMaker title =
|
|||
, width fill
|
||||
, F.color colourTheme.textLightOrange
|
||||
, paddingEach
|
||||
{ top = 10
|
||||
{ top = 20
|
||||
, bottom = 10
|
||||
, left = 0
|
||||
, right = 0
|
||||
|
|
|
@ -43,3 +43,48 @@ tooltip content =
|
|||
(text content)
|
||||
]
|
||||
none
|
||||
|
||||
|
||||
tooltipImage : String -> Attribute msg
|
||||
tooltipImage content =
|
||||
inFront <|
|
||||
el
|
||||
[ width fill
|
||||
, height fill
|
||||
, transparent True
|
||||
, mouseOver [ transparent False ]
|
||||
, htmlAttribute <| H.style "z-index" "4"
|
||||
, transitionStyleSlow
|
||||
, onRight <|
|
||||
el
|
||||
[ htmlAttribute (H.style "pointerEvents" "none")
|
||||
, moveLeft 410
|
||||
]
|
||||
<|
|
||||
el
|
||||
[ width <| px 600
|
||||
, htmlAttribute <| H.style "z-index" "4"
|
||||
, B.color colourTheme.backgroundLightGrey
|
||||
, padding 15
|
||||
, D.color colourTheme.textLightOrange
|
||||
, D.rounded 5
|
||||
, D.width 2
|
||||
, D.shadow
|
||||
{ offset = ( 0, 3 )
|
||||
, blur = 6
|
||||
, size = 0
|
||||
, color = rgba 0 0 0 0.32
|
||||
}
|
||||
]
|
||||
(image
|
||||
[ width fill
|
||||
, height fill
|
||||
, centerX
|
||||
, centerY
|
||||
]
|
||||
{ src = content
|
||||
, description = "Tooltip image"
|
||||
}
|
||||
)
|
||||
]
|
||||
none
|
||||
|
|
0
frontend/src/Config/Pages/Debate/Arguments/Records/LuigiTerrorist.elm
Normal file → Executable file
|
@ -2,7 +2,6 @@ module Config.Pages.Debate.Cuckery.Records.AdamSinger exposing (..)
|
|||
|
||||
import Config.Helpers.Converters exposing (formatName)
|
||||
import Config.Pages.Debate.Cuckery.Types exposing (..)
|
||||
import Config.Helpers.Converters exposing (formatName)
|
||||
|
||||
|
||||
cuckAdamSinger : Cuck
|
||||
|
@ -19,8 +18,11 @@ cuckAdamSinger =
|
|||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1566491269194719232?s=20"
|
||||
, dodgeDescription = VagueGesture
|
||||
, dodgeProposition = "Seed oils cause inflammation and stomach pain."
|
||||
, dodgeReceipts = [ "https://x.com/TheNutrivore/status/1566491269194719232?s=20" ]
|
||||
, dodgeFallacy = Just (SpecificFallacy "")
|
||||
, dodgeReceipts =
|
||||
[ "receipt1"
|
||||
, "receipt2"
|
||||
]
|
||||
, dodgeFallacy = Just MotteAndBailey
|
||||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ cuckAmberOHearn =
|
|||
[ { dodgeLink = "https://x.com/FusionProgGuy/status/1413888976281169922?s=20"
|
||||
, dodgeDescription = VagueGesture
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = []
|
||||
, dodgeReceipts = ["receipt1"]
|
||||
, dodgeFallacy = Just (SpecificFallacy "")
|
||||
, dodgeNicksDoxasticState = Nothing
|
||||
, dodgeNicksDoxasticReason = NoProp
|
||||
|
|
|
@ -13,7 +13,7 @@ glowDeepDarkGrey =
|
|||
|
||||
glowDeepDarkOrange : Attr decorative msg
|
||||
glowDeepDarkOrange =
|
||||
D.glow colourTheme.shadow 4
|
||||
D.glow colourTheme.textDeepDarkOrange 4
|
||||
|
||||
|
||||
glowDeepDarkGreyNavbar : Attr decorative msg
|
||||
|
|
|
@ -535,6 +535,22 @@ hyperBlog inner =
|
|||
}
|
||||
|
||||
|
||||
video : SvgTypes.OuterPart msg -> Element msg
|
||||
video inner =
|
||||
HeSvg.buildSvg inner
|
||||
{ svgAttributes =
|
||||
[ SvgAttr.viewBox "0 0 512 512"
|
||||
, SvgAttr.fill "currentColor"
|
||||
]
|
||||
, svg =
|
||||
[ path
|
||||
[ SvgAttr.d "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z"
|
||||
]
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
debate : SvgTypes.OuterPart msg -> Element msg
|
||||
debate inner =
|
||||
HeSvg.buildSvg inner
|
||||
|
|
|
@ -29,6 +29,7 @@ import Config.Style.Icons.Icons
|
|||
, upRootLarge
|
||||
, upRootMedium
|
||||
, upRootSmall
|
||||
, video
|
||||
)
|
||||
import Config.Style.Icons.Types as TySvg exposing (..)
|
||||
import Config.Style.Transitions
|
||||
|
@ -418,6 +419,13 @@ items input =
|
|||
, name = String.toUpper pageNames.pageHyperBlog
|
||||
, url = Path.toString Path.Blog
|
||||
}
|
||||
, { icon = video
|
||||
, isCurrent = False
|
||||
, isNewTabLink = True
|
||||
, isSubscriberOnly = False
|
||||
, name = String.toUpper "Video"
|
||||
, url = "https://video.uprootnutrition.com"
|
||||
}
|
||||
, { icon = debate
|
||||
, isCurrent = input.route.path == Path.Debate
|
||||
, isNewTabLink = False
|
||||
|
|
|
@ -263,7 +263,6 @@ articleMaker article =
|
|||
, spacing 3
|
||||
, F.regular
|
||||
, F.alignLeft
|
||||
, F.size 16
|
||||
, paddingEach
|
||||
{ top = 8
|
||||
, bottom = 0
|
||||
|
@ -313,7 +312,7 @@ articleRows article =
|
|||
, infoRow "Duration:" (String.fromInt (wordCount article.articleBody // 225) ++ " minutes")
|
||||
, infoRow "Words:" (String.fromInt (wordCount article.articleBody))
|
||||
]
|
||||
++ (if referenceCount > 2 then
|
||||
++ (if referenceCount >= 2 then
|
||||
[ infoRow "Sources:" (String.fromInt referenceCount) ]
|
||||
|
||||
else
|
||||
|
|
|
@ -19,7 +19,8 @@ import Config.Helpers.CardFormat
|
|||
import Config.Helpers.Converters exposing (formatSocial)
|
||||
import Config.Helpers.Format
|
||||
exposing
|
||||
( paragraphFontSize
|
||||
( headerFontSizeSmall
|
||||
, paragraphFontSize
|
||||
, paragraphSpacing
|
||||
)
|
||||
import Config.Helpers.Headers.Header exposing (headerMaker)
|
||||
|
@ -29,6 +30,7 @@ import Config.Helpers.Response
|
|||
( pageList
|
||||
, topLevelContainer
|
||||
)
|
||||
import Config.Helpers.ToolTip exposing (tooltipImage)
|
||||
import Config.Helpers.Viewport exposing (resetViewport)
|
||||
import Config.Pages.Debate.Cuckery.List
|
||||
exposing
|
||||
|
@ -249,7 +251,7 @@ dodgeMaker cuck =
|
|||
, width fill
|
||||
]
|
||||
<|
|
||||
List.map2 (\x y -> makeDodge x y)
|
||||
List.map2 (\x y -> makeDodge cuck x y)
|
||||
cuck.cuckDodges
|
||||
(List.range 1 (List.length cuck.cuckDodges))
|
||||
|
||||
|
@ -293,8 +295,8 @@ dodgeTitle cuck =
|
|||
[ text "Dodges: " ]
|
||||
|
||||
|
||||
makeDodge : Dodge -> Int -> Element msg
|
||||
makeDodge dodgeEntry index =
|
||||
makeDodge : Cuck -> Dodge -> Int -> Element msg
|
||||
makeDodge cuck dodge index =
|
||||
column
|
||||
[ F.color colourTheme.textLightGrey
|
||||
, paragraphSpacing
|
||||
|
@ -326,15 +328,15 @@ makeDodge dodgeEntry index =
|
|||
[ spacing 3
|
||||
, width fill
|
||||
]
|
||||
[ circumstanceMaker dodgeEntry
|
||||
[ circumstanceMaker cuck dodge
|
||||
, column
|
||||
[ spacing 3
|
||||
, width fill
|
||||
]
|
||||
[ propositionMaker dodgeEntry
|
||||
, reductioMaker dodgeEntry
|
||||
, attitudeMaker dodgeEntry
|
||||
, reasonMaker dodgeEntry
|
||||
[ propositionMaker dodge
|
||||
, reductioMaker dodge
|
||||
, attitudeMaker dodge
|
||||
, reasonMaker dodge
|
||||
]
|
||||
]
|
||||
]
|
||||
|
@ -357,97 +359,104 @@ formatProposition proposition =
|
|||
dodgeCounter : Int -> Element msg
|
||||
dodgeCounter index =
|
||||
column
|
||||
([ F.color colourTheme.textLightGrey
|
||||
, paragraphSpacing
|
||||
, paragraphFontSize
|
||||
]
|
||||
++ [ F.size 18
|
||||
]
|
||||
)
|
||||
[ F.color colourTheme.textLightGrey
|
||||
, paragraphSpacing
|
||||
, headerFontSizeSmall
|
||||
]
|
||||
[ text (String.fromInt index ++ ". ") ]
|
||||
|
||||
|
||||
circumstanceMaker : Dodge -> Element msg
|
||||
circumstanceMaker dodgeEntry =
|
||||
column
|
||||
[ width fill
|
||||
circumstanceMaker : Cuck -> Dodge -> Element msg
|
||||
circumstanceMaker cuck dodge =
|
||||
el
|
||||
[ spacing 5
|
||||
]
|
||||
[ newTabLink
|
||||
<|
|
||||
newTabLink
|
||||
[ paragraphFontSize
|
||||
, F.color colourTheme.textLightOrange
|
||||
]
|
||||
{ url = dodgeEntry.dodgeLink
|
||||
{ url = dodge.dodgeLink
|
||||
, label =
|
||||
row [ F.size 18 ]
|
||||
[ column [ width fill ]
|
||||
[ paragraph []
|
||||
[ el
|
||||
[ transitionStyleSlow
|
||||
, hoverFontDarkOrange
|
||||
]
|
||||
<|
|
||||
text
|
||||
(case dodgeEntry.dodgeDescription of
|
||||
NoReply ->
|
||||
"Debate invitation extended with no response"
|
||||
|
||||
RanAway ->
|
||||
"Engaged in written debate and ran away when cornered"
|
||||
|
||||
GhostedMe ->
|
||||
"Debate invitation accepted with no follow-up"
|
||||
|
||||
OutrightNo ->
|
||||
"Debate invitation declined"
|
||||
|
||||
InTooDeep ->
|
||||
"Debate invitation accepted and subsequently retracted"
|
||||
|
||||
KillScreen ->
|
||||
"All further debate invitations preemptively declined"
|
||||
|
||||
VagueGesture ->
|
||||
"Chose to gesture vaguely instead of engaging"
|
||||
)
|
||||
, paragraph [ F.color colourTheme.textLightGrey ] [ text "." ]
|
||||
, column
|
||||
[ spacing 5
|
||||
, F.size 12
|
||||
]
|
||||
(List.indexedMap
|
||||
(\index2 link ->
|
||||
newTabLink
|
||||
[ paddingEach
|
||||
{ top = 0
|
||||
, right = 0
|
||||
, bottom = 0
|
||||
, left = 5
|
||||
}
|
||||
]
|
||||
{ url = link
|
||||
, label =
|
||||
row [ moveUp 5 ]
|
||||
[ el
|
||||
[ transitionStyleSlow
|
||||
, hoverFontDarkOrange
|
||||
]
|
||||
<|
|
||||
text (String.fromInt (index2 + 1))
|
||||
, text ", " |> el [ F.color colourTheme.textLightGrey ]
|
||||
]
|
||||
}
|
||||
)
|
||||
dodgeEntry.dodgeReceipts
|
||||
)
|
||||
]
|
||||
]
|
||||
el
|
||||
[ headerFontSizeSmall
|
||||
]
|
||||
<|
|
||||
circumstance cuck dodge
|
||||
}
|
||||
|
||||
|
||||
circumstance : Cuck -> Dodge -> Element msg
|
||||
circumstance cuck dodge =
|
||||
paragraph
|
||||
[]
|
||||
[ el
|
||||
[ transitionStyleSlow
|
||||
, hoverFontDarkOrange
|
||||
]
|
||||
<|
|
||||
case dodge.dodgeDescription of
|
||||
NoReply ->
|
||||
text "Debate invitation extended with no response"
|
||||
|
||||
RanAway ->
|
||||
text "Engaged in written debate and ran away when cornered"
|
||||
|
||||
GhostedMe ->
|
||||
text "Debate invitation accepted with no follow-up"
|
||||
|
||||
OutrightNo ->
|
||||
text "Debate invitation declined"
|
||||
|
||||
InTooDeep ->
|
||||
text "Debate invitation accepted and subsequently retracted"
|
||||
|
||||
KillScreen ->
|
||||
text "All further debate invitations preemptively declined"
|
||||
|
||||
VagueGesture ->
|
||||
text "Chose to gesture vaguely instead of engaging"
|
||||
, el [ F.color colourTheme.textLightGrey ] <|
|
||||
text "."
|
||||
, receipts cuck dodge
|
||||
]
|
||||
|
||||
|
||||
receipts : Cuck -> Dodge -> Element msg
|
||||
receipts cuck dodge =
|
||||
row
|
||||
[ spacing 3
|
||||
, F.size 12
|
||||
, paddingEach
|
||||
{ top = 0
|
||||
, right = 0
|
||||
, bottom = 0
|
||||
, left = 3
|
||||
}
|
||||
, htmlAttribute (H.style "position" "relative")
|
||||
, htmlAttribute (H.style "top" "-5px")
|
||||
]
|
||||
<|
|
||||
List.indexedMap
|
||||
(\index2 link ->
|
||||
paragraph
|
||||
[ alignTop
|
||||
, F.color colourTheme.textLightOrange
|
||||
]
|
||||
[ el
|
||||
[ tooltipImage ("/cucks/" ++ cuck.cuckImage ++ "/" ++ "receipt" ++ String.fromInt (index2 + 1) ++ ".png")
|
||||
, transitionStyleSlow
|
||||
, hoverFontDarkOrange
|
||||
]
|
||||
(text (String.fromInt (index2 + 1)))
|
||||
, text ", " |> el [ F.color colourTheme.textLightGrey ]
|
||||
]
|
||||
)
|
||||
dodge.dodgeReceipts
|
||||
|
||||
|
||||
propositionMaker : Dodge -> Element msg
|
||||
propositionMaker dodgeEntry =
|
||||
propositionMaker dodge =
|
||||
row
|
||||
[ F.color colourTheme.textLightGrey
|
||||
, paragraphSpacing
|
||||
|
@ -464,13 +473,13 @@ propositionMaker dodgeEntry =
|
|||
[ E.width fill
|
||||
, alignLeft
|
||||
]
|
||||
[ paragraph [ F.regular ] [ text (formatProposition dodgeEntry.dodgeProposition) ]
|
||||
[ paragraph [ F.regular ] [ text (formatProposition dodge.dodgeProposition) ]
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
attitudeMaker : Dodge -> Element msg
|
||||
attitudeMaker dodgeEntry =
|
||||
attitudeMaker dodge =
|
||||
row
|
||||
([ F.color colourTheme.textLightGrey
|
||||
, paragraphSpacing
|
||||
|
@ -489,7 +498,7 @@ attitudeMaker dodgeEntry =
|
|||
[ E.width fill
|
||||
, alignLeft
|
||||
]
|
||||
[ case dodgeEntry.dodgeNicksDoxasticState of
|
||||
[ case dodge.dodgeNicksDoxasticState of
|
||||
Nothing ->
|
||||
paragraph [ F.regular ] [ text "I don't form a doxastic state." ]
|
||||
|
||||
|
@ -514,8 +523,8 @@ attitudeMaker dodgeEntry =
|
|||
|
||||
|
||||
reductioMaker : Dodge -> Element msg
|
||||
reductioMaker dodgeEntry =
|
||||
case dodgeEntry.dodgeFallacy of
|
||||
reductioMaker dodge =
|
||||
case dodge.dodgeFallacy of
|
||||
Nothing ->
|
||||
none
|
||||
|
||||
|
@ -560,7 +569,7 @@ reductioMaker dodgeEntry =
|
|||
|
||||
|
||||
reasonMaker : Dodge -> Element msg
|
||||
reasonMaker dodgeEntry =
|
||||
reasonMaker dodge =
|
||||
row
|
||||
([ F.color colourTheme.textLightGrey
|
||||
, paragraphSpacing
|
||||
|
@ -577,7 +586,7 @@ reasonMaker dodgeEntry =
|
|||
]
|
||||
, paragraph [ F.regular ]
|
||||
[ text <|
|
||||
case dodgeEntry.dodgeNicksDoxasticReason of
|
||||
case dodge.dodgeNicksDoxasticReason of
|
||||
NoProp ->
|
||||
"There is no proposition to evaluate."
|
||||
|
||||
|
|
0
frontend/static/arguments/luigiterrorist.png
Normal file → Executable file
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
BIN
frontend/static/cucks/adamsinger/receipt1.png
Executable file
After Width: | Height: | Size: 59 KiB |
BIN
frontend/static/cucks/adamsinger/receipt2.png
Executable file
After Width: | Height: | Size: 78 KiB |
BIN
frontend/static/cucks/amberohearn/receipt1.png
Executable file
After Width: | Height: | Size: 82 KiB |
0
frontend/static/services/debatecoaching.png
Normal file → Executable file
Before Width: | Height: | Size: 336 KiB After Width: | Height: | Size: 336 KiB |