diff --git a/make-pages/Depend.hs b/make-pages/Depend.hs
index 0e6b483..00efeee 100644
--- a/make-pages/Depend.hs
+++ b/make-pages/Depend.hs
@@ -65,7 +65,8 @@ dependGallery' (GalleryInfo {title, description, prefix, filters})
$@path: $@pages' $@files' $@rss $$(MAKEPAGES)
echo "[gallery] "$$@
mkdir -p $$(dir $$@)
- $$(MAKEPAGES) $$(MPFLAGS) gallery -t "$*title" $flags -o "$$@" \
+ $$(MAKEPAGES) $$(MPFLAGS) gallery \
+ -p "$@prefix" -t "$*title" $flags -o "$$@" \
$$(filter $$(DATADIR)/%/$$(INFONAME),$$^)
$@rss: $@files' $$(MAKEPAGES)
diff --git a/make-pages/GalleryPage.hs b/make-pages/GalleryPage.hs
index 6af4154..ac2a9de 100644
--- a/make-pages/GalleryPage.hs
+++ b/make-pages/GalleryPage.hs
@@ -5,7 +5,7 @@ import Control.Exception
import Data.Function (on, (&))
import Data.List (sortOn, groupBy)
import qualified Data.Text.Lazy as Lazy
-import System.FilePath ((>), takeDirectory)
+import System.FilePath ((>), takeDirectory, joinPath, splitPath)
import GHC.Exts (Down (..), the)
import BuilderQQ
@@ -17,13 +17,14 @@ newtype NoThumb = NoThumb FilePath
instance Show NoThumb where show (NoThumb dir) = "no thumbnail for " ++ dir
make :: Text -- ^ title
+ -> FilePath -- ^ gallery url prefix
-> Bool -- ^ nsfw is included?
-> [(FilePath, Info)]
-> Lazy.Text
-make title nsfw infos = toLazyText $ make' title nsfw infos
+make title prefix nsfw infos = toLazyText $ make' title prefix nsfw infos
-make' :: Text -> Bool -> [(FilePath, Info)] -> Builder
-make' title nsfw infos = [b|@0
+make' :: Text -> FilePath -> Bool -> [(FilePath, Info)] -> Builder
+make' title prefix nsfw infos = [b|@0
@@ -45,6 +46,10 @@ make' title nsfw infos = [b|@0
$4.items
+
+
|]
where
items = map (uncurry $ makeYearItems nsfw) infosByYear
@@ -55,6 +60,7 @@ make' title nsfw infos = [b|@0
let year = #year info,
then group by Down year using groupBy']
groupBy' f = groupBy ((==) `on` f)
+ undir = joinPath (replicate (length (splitPath prefix)) "..")
makeYearItems :: Bool -- ^ nsfw
-> Integer -- ^ year
diff --git a/make-pages/Main.hs b/make-pages/Main.hs
index 77b64c5..bac61f4 100644
--- a/make-pages/Main.hs
+++ b/make-pages/Main.hs
@@ -51,10 +51,10 @@ main2 (SinglePage {file, dataDir, nsfw, output}) = do
let page = SinglePage.make nsfw dir info
writeOutput output page
-main2 (GalleryPage {title, files, nsfw, output, dataDir}) = do
+main2 (GalleryPage {title, prefix, files, nsfw, output, dataDir}) = do
infos <- mapM (infoYAML dataDir) files
printV $ "infos" := infos
- let page = GalleryPage.make title nsfw infos
+ let page = GalleryPage.make title prefix nsfw infos
writeOutput output page
main2 (IndexPage {file, output}) = do
diff --git a/make-pages/Options.hs b/make-pages/Options.hs
index 22d5d66..28bdbd7 100644
--- a/make-pages/Options.hs
+++ b/make-pages/Options.hs
@@ -19,6 +19,7 @@ data ModeOptions =
}
| GalleryPage {
files :: [FilePath],
+ prefix :: FilePath,
nsfw :: Bool,
title :: Text,
output :: Maybe FilePath,
@@ -84,7 +85,11 @@ optionsParser = globalOpts `info` mainInfo where
gallery = command "gallery" $ galleryOpts `info` galleryInfo
galleryOpts =
- GalleryPage <$> files <*> nsfwG <*> title <*> output <*> dataDir
+ GalleryPage <$> files <*> prefix <*> nsfwG <*> title <*> output <*> dataDir
+ prefix = strOption $
+ short 'p' <> long "prefix" <> metavar "DIR" <>
+ value "" <>
+ help "output directory prefix"
files = many $ strArgument $
metavar "FILE..." <> help "yaml files to read"
nsfwG = switch $
@@ -110,10 +115,6 @@ optionsParser = globalOpts `info` mainInfo where
dsOpts =
DependSingle <$> file <*> nsfwS <*> output <*> prefix
<*> buildDir <*> dataDir
- prefix = strOption $
- short 'p' <> long "prefix" <> metavar "DIR" <>
- value "" <>
- help "output directory prefix"
buildDir = strOption $
short 'B' <> long "build-dir" <> metavar "DIR" <> value "_build" <>
help "build directory (default: _build)"
diff --git a/style/shiny/gallery.css b/style/shiny/gallery.css
index eb096ba..84f0012 100644
--- a/style/shiny/gallery.css
+++ b/style/shiny/gallery.css
@@ -89,6 +89,13 @@ figcaption {
mix-blend-mode: multiply;
}
+footer {
+ font-size: 90%;
+ text-align: center;
+ margin-top: 1em;
+}
+
+
@media (hover) {
.item:hover figcaption {
opacity: 20%;