blagda-0.1.0.0: src/Blagda/Utils.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ViewPatterns #-}
module Blagda.Utils (getBuildPath, pattern Strs) where
import Development.Shake.FilePath
import Data.Text (Text)
import Text.Pandoc (Inline(..))
import Control.Arrow ((&&&))
getBuildPath :: FilePath -> String -> FilePath -> FilePath
getBuildPath path ext x = "_build" </> path </> (dropExtension $ takeFileName x) <.> ext
pattern Strs :: Text -> [Inline]
pattern Strs ts <-
((id &&& id)
->
( all isStr -> True
, foldMap fromStr -> ts
)
)
isStr :: Inline -> Bool
isStr (Str _) = True
isStr Space = True
isStr _ = False
fromStr :: Inline -> Text
fromStr (Str s) = s
fromStr Space = " "
fromStr _ = error "not a string"