From 9240d66c1575eb5469c7e3807362955220026c70 Mon Sep 17 00:00:00 2001
From: "Niels G. W. Serup" <ngws@metanohi.name>
Date: Sat, 5 Oct 2024 20:28:25 +0200
Subject: [PATCH] Only use concat

---
 byg/src/DependencyGenerator.hs |  3 +++
 byg/src/SiteGenerator.hs       | 29 ++++++++++++-----------------
 2 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/byg/src/DependencyGenerator.hs b/byg/src/DependencyGenerator.hs
index 369c42a..c02365e 100644
--- a/byg/src/DependencyGenerator.hs
+++ b/byg/src/DependencyGenerator.hs
@@ -107,6 +107,9 @@ instance TokenableTo a (Token a) where
 instance TokenableTo [a] [Token a] where
   toToken = pure . ListToken
 
+instance TokenableTo [a] [DepGenM' a] where
+  toToken = fmap ListToken . sequence
+
 instance TokenableTo a (DepGenM' a) where
   toToken = id
 
diff --git a/byg/src/SiteGenerator.hs b/byg/src/SiteGenerator.hs
index 2966cbc..64cda74 100644
--- a/byg/src/SiteGenerator.hs
+++ b/byg/src/SiteGenerator.hs
@@ -17,15 +17,12 @@ thumbnailImageFilename filename = do
 makeImageHTML :: Token (FilePath, FilePath) -> DepGenM' Text
 makeImageHTML t = do
   (thumbnail, actual) <- untupleDepGenM t
-  appendTexts
-    (inject "<p class=\"image\"><a href=\"")
-    (appendTexts
-      (toText actual)
-      (appendTexts
-        (inject "\"><img src=\"")
-        (appendTexts
-          (toText thumbnail)
-          (inject "\"></a></p>"))))
+  concatTexts [ inject "<p class=\"image\"><a href=\""
+              , toText actual
+              , inject "\"><img src=\""
+              , toText thumbnail
+              , inject "\"></a></p>"
+              ]
 
 hasExtension :: (TokenableTo [String] a, TokenableTo FilePath b) => a -> b -> DepGenM' Bool
 hasExtension exts filename = do
@@ -53,14 +50,12 @@ handleRecipeDir inputDir outputDir template indexName name = do
   mdTemplate <- makeTemplate md ingredienserHeadline
   htmlBodyImages <- mapDepGenM makeImageHTML $ zipDepGenM thumbnailImageFilenames imageFilenames
   imagesHtml <- concatTexts htmlBodyImages
-  md' <- applyTemplate mdTemplate (
-    appendTexts
-      (inject "<p class=\"imagetext\">Opskrift fortsætter efter billedet.</p>\n")
-      (appendTexts
-        imagesHtml
-        (appendTexts
-          (inject "\n\n")
-          ingredienserHeadline)))
+  md' <- applyTemplate mdTemplate
+    $ concatTexts [ inject "<p class=\"imagetext\">Opskrift fortsætter efter billedet.</p>\n"
+                  , pure imagesHtml
+                  , inject "\n\n"
+                  , pure ingredienserHeadline
+                  ]
   htmlBody <- runPandoc md'
   html <- applyTemplate template htmlBody
   saveFile html $ joinPaths recipeDirOut indexName