i broke rss :o

This commit is contained in:
rhiannon morris 2024-08-18 08:59:29 +02:00
parent 7745722009
commit 177bdba331
2 changed files with 14 additions and 13 deletions

View file

@ -19,7 +19,8 @@ import Data.List.NonEmpty (NonEmpty, toList)
data Chunk = Lit String | Var String data Chunk = Lit String | Var String
parseB :: String -> ExpQ parseB :: String -> ExpQ
parseB = toExpQ . reverse . go "" [] . dropWhileEnd isSpace where parseB = toExpQ . reverse . go "" [] . trim where
trim = dropWhileEnd isSpace . dropWhile (== '\n')
go acc cs [] = addLit acc cs go acc cs [] = addLit acc cs
go acc cs ('$':'&':rest) = go acc cs rest -- $&: expands to nothing go acc cs ('$':'&':rest) = go acc cs rest -- $&: expands to nothing
go acc cs ('$':'$':rest) = go ('$' : acc) cs rest -- $$: expands to one $ go acc cs ('$':'$':rest) = go ('$' : acc) cs rest -- $$: expands to one $

View file

@ -25,18 +25,18 @@ make root name ginfo output infos =
make' :: Strict.Text -> Strict.Text -> GalleryInfo make' :: Strict.Text -> Strict.Text -> GalleryInfo
-> Maybe FilePath -> [(FilePath, Info)] -> Builder -> Maybe FilePath -> [(FilePath, Info)] -> Builder
make' root name ginfo@(GalleryInfo {title, desc, prefix}) output infos = [b| make' root name ginfo@(GalleryInfo {title, desc, prefix}) output infos = [b|
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>$name$title</title> <title>$name$title</title>
<link>$link</link> <link>$link</link>
<description>$desc</description> <description>$desc</description>
$selflink $selflink
$items $items
</channel> </channel>
</rss> </rss>
|] |]
where where
link = [b|$root/$prefix|] link = [b|$root/$prefix|]
nsfw = ginfo.nsfw nsfw = ginfo.nsfw
@ -45,7 +45,7 @@ make' root name ginfo@(GalleryInfo {title, desc, prefix}) output infos = [b|
filter (not . (.unlisted) . snd) infos filter (not . (.unlisted) . snd) infos
selflink = case output of selflink = case output of
Nothing -> "" Nothing -> ""
Just o -> [b|<link href="$link/$o" rel="self" />|] Just o -> [b|<atom:link href="$link/$o" rel="self" />|]
makeItem :: Strict.Text -> FilePath -> Bool -> FilePath -> Info -> Builder makeItem :: Strict.Text -> FilePath -> Bool -> FilePath -> Info -> Builder
makeItem root prefix nsfw path info@(Info {title}) = [b| makeItem root prefix nsfw path info@(Info {title}) = [b|