diff --git a/make-pages/Info.hs b/make-pages/Info.hs index e14f0c5..b13b003 100644 --- a/make-pages/Info.hs +++ b/make-pages/Info.hs @@ -7,7 +7,7 @@ module Info allImages, sfwImages, nsfwImages, thumb, latestDateFor, latestYearFor, sfwLinks, nsfwLinks, sfwUpdates, nsfwUpdates, - updatesFor, hasUpdatesFor, lastUpdateFor, + updatesFor, bigUpdatesFor, hasUpdatesFor, lastUpdateFor, tagsFor, descFor, imagesFor, linksFor, CompareKey (..), compareKeyFor, compareFor, sortFor, @@ -182,6 +182,9 @@ updatesWith p i = mapMaybe (traverse $ filterNE p) i.updates updatesFor :: Bool -> Info -> [(Date, NonEmpty Update)] updatesFor nsfw = updatesWith \u -> nsfw || u.sfw +bigUpdatesFor :: Bool -> Info -> [(Date, NonEmpty Update)] +bigUpdatesFor nsfw = updatesWith \u -> not u.ignoreSort && (nsfw || u.sfw) + sfwUpdates, nsfwUpdates :: Info -> [(Date, NonEmpty Update)] sfwUpdates = updatesWith (.sfw) nsfwUpdates = updatesWith (.nsfw) diff --git a/make-pages/RSS.hs b/make-pages/RSS.hs index ee40bdc..d499290 100644 --- a/make-pages/RSS.hs +++ b/make-pages/RSS.hs @@ -5,7 +5,7 @@ import Info import BuilderQQ import Data.List (sortBy, intersperse) -import Data.Maybe (catMaybes) +import Data.Maybe (catMaybes, fromMaybe) import Data.Function (on) import qualified Data.Text as Strict import qualified Data.Text.Lazy as Lazy @@ -41,21 +41,28 @@ make' root name ginfo@(GalleryInfo {title, desc, prefix}) output infos = [b| where link = [b|$root/$prefix|] nsfw = ginfo.nsfw - items = map (uncurry $ makeItem root prefix nsfw) $ + items = concatMap (uncurry $ makeItems root prefix nsfw) $ sortBy (flip (compareFor nsfw `on` snd)) $ filter (not . (.unlisted) . snd) infos selflink = case output of Nothing -> "" Just o -> [b||] -makeItem :: Strict.Text -> FilePath -> Bool -> FilePath -> Info -> Builder -makeItem root prefix nsfw path info@(Info {title}) = [b| +makeItems :: Strict.Text -> FilePath -> Bool -> FilePath -> Info -> [Builder] +makeItems root prefix nsfw path info = + makeItem root prefix nsfw path info Nothing : + map (makeItem root prefix nsfw path info . Just . fst) + (bigUpdatesFor nsfw info) + +makeItem :: Strict.Text -> FilePath -> Bool -> FilePath -> + Info -> Maybe Date -> Builder +makeItem root prefix nsfw path info@(Info {title}) date = [b| <![CDATA[$title$suffix]]> $link - $link + $link$guidSuffix - $date + $dateStr $body |] @@ -70,8 +77,9 @@ makeItem root prefix nsfw path info@(Info {title}) = [b| suffix = if null parts then "" else " (" <> mconcat (intersperse ", " parts) <> ")" + guidSuffix = maybe "" (("?" <>) . show) date parts = catMaybes [o18, cnt, up] - up = do guard $ hasUpdatesFor nsfw info; Just "updated" + up = "updated" <$ date o18 = do guard $ nsfw && anyNsfw info; Just "🔞" cnt = do let len = maybe 0 length $ allImages <$> imagesFor nsfw info guard $ len /= 1; Just [b|$len images|] @@ -81,13 +89,13 @@ makeItem root prefix nsfw path info@(Info {title}) = [b| creator = maybe "niss" (.name) info.artist - date = formatRSS $ latestDateFor nsfw info + dateStr = formatRSS $ fromMaybe info.date date artist = ifJust info.artist \case Artist name Nothing -> [b|

by $name|] Artist name (Just url) -> [b|

by $name|] desc = makeDesc $ descFor nsfw info - preview = previewImage info + preview = previewImage info image = case preview of Just (PFull img) -> figure (escAttr img.desc) $ pageFile img Just (PThumb th) -> figure "full image hidden" $ thumbFile th diff --git a/style/shiny/base.css b/style/shiny/base.css index 74ba17f..5a86f34 100644 --- a/style/shiny/base.css +++ b/style/shiny/base.css @@ -33,7 +33,6 @@ --border-col: var(--text-col); --border: 3px solid var(--border-col); - --border-radius: 1.5em; --background: hsla(0, 0%, 0%, 60%); --button-bg: hsla(0deg, 0%, 0%, 20%); @@ -41,7 +40,7 @@ --button-border: 1px solid hsla(0deg, 0%, 0%, 40%); --button-border-selected: 1px solid hsla(0deg, 0%, 100%, 30%); --button-pad: 0.15em 0.8em; - --button-radius: 1000px; + --button-radius: 1000em; font-family: Muller; font-weight: 600; diff --git a/style/shiny/gallery.css b/style/shiny/gallery.css index b21904e..7d52bce 100644 --- a/style/shiny/gallery.css +++ b/style/shiny/gallery.css @@ -67,7 +67,7 @@ .filterlist label { cursor: pointer; padding: 0.15em 0.4em; - border-radius: 1000px; + border-radius: var(--button-radius); border: 1px solid transparent; } @@ -149,7 +149,7 @@ } #filterstuff li { - border-radius: 1em; + border-radius: var(--button-radius); } } diff --git a/style/shiny/index.css b/style/shiny/index.css index f969d39..eaba977 100644 --- a/style/shiny/index.css +++ b/style/shiny/index.css @@ -9,7 +9,6 @@ .page { width: 37.5em; - border-radius: var(--border-radius); } #title::before, #title::after { diff --git a/style/shiny/nsfw-warning.css b/style/shiny/nsfw-warning.css index 139bbe9..ea39749 100644 --- a/style/shiny/nsfw-warning.css +++ b/style/shiny/nsfw-warning.css @@ -24,7 +24,6 @@ dialog { background: var(--background); border: var(--border); - border-radius: var(--border-radius); box-shadow: 0 0 50px #fff6; } @@ -60,7 +59,7 @@ dialog { button { border: none; - border-radius: 0.75em; + border-radius: var(--button-radius); padding: 0.5em 1em; font-family: Muller; diff --git a/style/shiny/single.css b/style/shiny/single.css index 09384af..2dfa367 100644 --- a/style/shiny/single.css +++ b/style/shiny/single.css @@ -62,8 +62,8 @@ body { transform: rotate(-15deg); background: hsl(330deg, 40%, 16%); - padding: 0.25em 0.5em; - border-radius: 0.5em; + padding: 0.35em 1em; + border-radius: var(--button-radius); } #cw-text b { font-weight: 900; } #cw-text::before { @@ -108,12 +108,6 @@ body { box-shadow: var(--text-shadow); } -#info .light-bg { - background: hsl(0deg, 0%, 100%, 75%); - padding: 5px; - border-radius: 8px; -} - #info .floating { float: right; margin-left: 0.8em;