From acc476d8a36d70cf3b6864cf060ccf6ee75d8c95 Mon Sep 17 00:00:00 2001 From: Rhiannon Morris Date: Wed, 15 Jul 2020 11:32:48 +0200 Subject: [PATCH] add plain fromString interpolation [for FilePath] --- make-pages/BuildVar.hs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/make-pages/BuildVar.hs b/make-pages/BuildVar.hs index ff5e368..042d78e 100644 --- a/make-pages/BuildVar.hs +++ b/make-pages/BuildVar.hs @@ -17,6 +17,7 @@ data ChunkType = Lit | Var VarType deriving Show data VarType = Plain | FromText + | FromString | Show | Reindent !Int | ReindentList !Int @@ -66,6 +67,11 @@ chunks = reverse . go "" [] . trimEnd where go "" ((Var FromText, var) : lit acc : cs) rest2 where (var, rest2) = splitVar rest + -- $@var: expands to (fromString $var) + go acc cs ('$' :. '@' :. rest) = + go "" ((Var FromString, var) : lit acc : cs) rest2 + where (var, rest2) = splitVar rest + -- $^var: expands to (fromString (show $var)) go acc cs ('$' :. '^' :. rest) = go "" ((Var Show, var) : lit acc : cs) rest2 @@ -119,6 +125,7 @@ chunksToExpQ cs = [|$expr :: Builder|] where chunk1 (Var t, name) = case t of Plain -> var FromText -> [|fromText $var|] + FromString -> [|fromString $var|] Show -> [|fromString $ show $var|] Reindent n -> [|reindent n $var|] ReindentList n -> [|reindentList n $var|]