module Text.Hakyll.Internal.FileType
( FileType (..)
, getFileType
, isRenderable
, isRenderableFile
) where
import System.FilePath (takeExtension)
data FileType = Html
| LaTeX
| LiterateHaskellMarkdown
| Markdown
| ReStructuredText
| Text
| UnknownFileType
deriving (Eq, Ord, Show, Read)
getFileType :: FilePath -> FileType
getFileType = getFileType' . takeExtension
where
getFileType' ".htm" = Html
getFileType' ".html" = Html
getFileType' ".lhs" = LiterateHaskellMarkdown
getFileType' ".markdown" = Markdown
getFileType' ".md" = Markdown
getFileType' ".mdn" = Markdown
getFileType' ".mdown" = Markdown
getFileType' ".mdwn" = Markdown
getFileType' ".mkd" = Markdown
getFileType' ".mkdwn" = Markdown
getFileType' ".page" = Markdown
getFileType' ".rst" = ReStructuredText
getFileType' ".tex" = LaTeX
getFileType' ".text" = Text
getFileType' ".txt" = Text
getFileType' _ = UnknownFileType
isRenderable :: FileType -> Bool
isRenderable UnknownFileType = False
isRenderable _ = True
isRenderableFile :: FilePath -> Bool
isRenderableFile = isRenderable . getFileType