a lot of stuff sorry
This commit is contained in:
parent
adfc8b9a82
commit
375c6e833a
9 changed files with 297 additions and 151 deletions
|
@ -1,13 +1,14 @@
|
|||
module SinglePage (make) where
|
||||
|
||||
import Records ()
|
||||
import Depend (pageFile)
|
||||
import Info hiding (Text)
|
||||
import BuilderQQ
|
||||
import Records ()
|
||||
|
||||
import Control.Exception
|
||||
import qualified Data.Text as Strict
|
||||
import qualified Data.Text.Lazy as Lazy
|
||||
import Data.Text.Lazy.Builder
|
||||
import Data.Text.Lazy.Builder (Builder, toLazyText)
|
||||
import Data.Time (formatTime, defaultTimeLocale)
|
||||
import Data.Maybe (fromMaybe)
|
||||
import qualified Data.Char as Char
|
||||
|
@ -43,7 +44,9 @@ make' nsfw (Info {date, title, artist, tags, nsfwTags,
|
|||
</header>
|
||||
|
||||
<main>
|
||||
<img id=it src="$@path0">
|
||||
<a href="$@path0">
|
||||
<img id=it src="$@path0'">
|
||||
</a>
|
||||
|
||||
$descSection
|
||||
|
||||
|
@ -68,6 +71,7 @@ make' nsfw (Info {date, title, artist, tags, nsfwTags,
|
|||
|
||||
buttonBar = makeButtonBar (fromMaybe (Strict.pack path0) title) nsfw images
|
||||
path0 = #path $ head images
|
||||
path0' = pageFile path0
|
||||
|
||||
descSection = ifJust description makeDesc
|
||||
tagsList = makeTags nsfw tags nsfwTags
|
||||
|
@ -93,7 +97,8 @@ ifJust :: Monoid b => Maybe a -> (a -> b) -> b
|
|||
ifJust x f = maybe mempty f x
|
||||
|
||||
formatDate :: Day -> Builder
|
||||
formatDate = fromString . formatTime defaultTimeLocale "%e %#B %Y"
|
||||
formatDate d =
|
||||
let str = formatTime defaultTimeLocale "%e %#B %Y" d in [b|$@str|]
|
||||
|
||||
makeButtonBar :: Strict.Text -> Bool -> [Image] -> Builder
|
||||
makeButtonBar title nsfw allImages =
|
||||
|
@ -117,20 +122,21 @@ altButton :: Int -> Image -> Builder
|
|||
altButton i (Image {label, path, nsfw}) = [b|@6
|
||||
<li$nsfwClass>
|
||||
<input type=radio$checked id="$idLabel" name=variant
|
||||
autocomplete=off value="$@path">
|
||||
autocomplete=off value="$@path'">
|
||||
<label for="$idLabel">$*label</label>
|
||||
|]
|
||||
where
|
||||
nsfwClass = if nsfw then " class=nsfw" else ""
|
||||
checked = if i == 0 then " checked" else ""
|
||||
idLabel = escId label
|
||||
checked = if i == 0 then " checked" else ""
|
||||
idLabel = escId label
|
||||
path' = pageFile path
|
||||
|
||||
escId :: Strict.Text -> Builder
|
||||
escId = foldMap esc1 . Strict.unpack where
|
||||
esc1 c
|
||||
| Char.isSpace c = ""
|
||||
| c < 'ÿ' && not (Char.isAlphaNum c || c == '-') = "_"
|
||||
| otherwise = singleton c
|
||||
| otherwise = [b|$'c|]
|
||||
|
||||
makeTags :: Bool -> [Strict.Text] -> [Strict.Text] -> Builder
|
||||
makeTags nsfw sfwTags nsfwTags =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue