summaryrefslogtreecommitdiff
path: root/server/Orphans.hs
diff options
context:
space:
mode:
authorstuebinm2022-02-10 00:14:43 +0100
committerstuebinm2022-03-19 19:26:19 +0100
commitcdb6329b6acaab0a15441554412d8f5ececece1b (patch)
tree657a0527530b2e11b6507cc516de183f65f28447 /server/Orphans.hs
parenta55e0ce93d6a567e76c5a932a304c1c07fab0087 (diff)
server: simple servant-lucid stuff
Diffstat (limited to '')
-rw-r--r--server/Orphans.hs57
1 files changed, 57 insertions, 0 deletions
diff --git a/server/Orphans.hs b/server/Orphans.hs
new file mode 100644
index 0000000..b46f728
--- /dev/null
+++ b/server/Orphans.hs
@@ -0,0 +1,57 @@
+
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+
+module Orphans where
+
+
+import Control.Monad (forM_, unless)
+import qualified Data.Map as M
+import Data.Text (Text)
+import Lucid (ToHtml)
+import Lucid.Base (ToHtml (toHtml))
+import Lucid.Html5
+
+import CheckDir
+import CheckMap
+import Types
+import Util (prettyprint)
+
+instance ToHtml Hint where
+ toHtml (Hint l m) = do
+ span_ [class_ "level"] $ toHtml (show l)
+ toHtml m
+
+
+instance ToHtml DirResult where
+ toHtml res@DirResult { .. } = do
+ h3_ $ toHtml (show $ maximumLintLevel res)
+ unless (null dirresultMissingAssets && null dirresultDeps) $ do
+ h2_ "Dependencies"
+ ul_ $ do
+ forM_ dirresultMissingAssets $ \(MissingAsset missing) -> do
+ li_ $ toHtml (prettyprint missing)
+ forM_ dirresultDeps $ \missing -> do
+ li_ $ toHtml (prettyprint missing)
+ unless (null dirresultMaps) $ do
+ h2_ "Maps"
+ flip M.foldMapWithKey dirresultMaps $ \name MapResult { .. } -> do
+ h3_ (toHtml name)
+ ul_ $ do
+ forM_ mapresultGeneral $ \lint ->
+ li_ (toHtml lint)
+ flip M.foldMapWithKey mapresultLayer $ \lint layers ->
+ li_ $ do
+ toHtml lint
+ toHtml ("(in layer" :: Text)
+ forM_ layers $ \layer ->
+ span_ [class_ "layer"] (toHtml layer)
+ toHtml (")" :: Text)
+ flip M.foldMapWithKey mapresultTileset $ \lint tilesets ->
+ li_ $ do
+ toHtml lint
+ toHtml ("( in layer" :: Text)
+ forM_ tilesets $ \tileset ->
+ span_ [class_ "tileset"] (toHtml tileset)
+ toHtml (")" :: Text)