module Text.Pandoc.PlantUML.Filter.FileNameGenerator(fileNameForSource) where
import Data.Digest.Pure.SHA (sha1, showDigest)
import Data.ByteString.Lazy.UTF8 (fromString)
import qualified Data.Text as T
import Text.Pandoc.PlantUML.Filter.Types
fileNameForSource :: DiagramSource -> ImageName
fileNameForSource :: DiagramSource -> ImageName
fileNameForSource (DiagramSource Text
source) = ImageName
prefix ImageName -> ImageName -> ImageName
forall a. [a] -> [a] -> [a]
++ (Text -> ImageName
hash Text
source)
where
hash :: Text -> ImageName
hash = Digest SHA1State -> ImageName
forall t. Digest t -> ImageName
showDigest (Digest SHA1State -> ImageName)
-> (Text -> Digest SHA1State) -> Text -> ImageName
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Digest SHA1State
sha1 (ByteString -> Digest SHA1State)
-> (Text -> ByteString) -> Text -> Digest SHA1State
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ImageName -> ByteString
fromString (ImageName -> ByteString)
-> (Text -> ImageName) -> Text -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> ImageName
T.unpack
prefix :: String
prefix :: ImageName
prefix = ImageName
".rendered."