{-# LANGUAGE OverloadedStrings #-}
module Text.Pandoc.App.FormatHeuristics
  ( formatFromFilePaths
  ) where
import Data.Char (toLower)
import Data.Foldable (asum)
import Data.Text (Text)
import System.FilePath (takeExtension)
formatFromFilePaths :: [FilePath] -> Maybe Text
formatFromFilePaths :: [String] -> Maybe Text
formatFromFilePaths = forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a -> b) -> [a] -> [b]
map String -> Maybe Text
formatFromFilePath
formatFromFilePath :: FilePath -> Maybe Text
formatFromFilePath :: String -> Maybe Text
formatFromFilePath String
x =
  case String -> String
takeExtension (forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower String
x) of
    String
".adoc"     -> forall a. a -> Maybe a
Just Text
"asciidoc"
    String
".asciidoc" -> forall a. a -> Maybe a
Just Text
"asciidoc"
    String
".context"  -> forall a. a -> Maybe a
Just Text
"context"
    String
".ctx"      -> forall a. a -> Maybe a
Just Text
"context"
    String
".db"       -> forall a. a -> Maybe a
Just Text
"docbook"
    String
".doc"      -> forall a. a -> Maybe a
Just Text
"doc"  
    String
".docx"     -> forall a. a -> Maybe a
Just Text
"docx"
    String
".dokuwiki" -> forall a. a -> Maybe a
Just Text
"dokuwiki"
    String
".epub"     -> forall a. a -> Maybe a
Just Text
"epub"
    String
".fb2"      -> forall a. a -> Maybe a
Just Text
"fb2"
    String
".htm"      -> forall a. a -> Maybe a
Just Text
"html"
    String
".html"     -> forall a. a -> Maybe a
Just Text
"html"
    String
".icml"     -> forall a. a -> Maybe a
Just Text
"icml"
    String
".json"     -> forall a. a -> Maybe a
Just Text
"json"
    String
".latex"    -> forall a. a -> Maybe a
Just Text
"latex"
    String
".lhs"      -> forall a. a -> Maybe a
Just Text
"markdown+lhs"
    String
".ltx"      -> forall a. a -> Maybe a
Just Text
"latex"
    String
".markdown" -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".markua"   -> forall a. a -> Maybe a
Just Text
"markua"
    String
".mkdn"     -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".mkd"      -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".mdwn"     -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".mdown"    -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".Rmd"      -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".md"       -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".ms"       -> forall a. a -> Maybe a
Just Text
"ms"
    String
".muse"     -> forall a. a -> Maybe a
Just Text
"muse"
    String
".native"   -> forall a. a -> Maybe a
Just Text
"native"
    String
".odt"      -> forall a. a -> Maybe a
Just Text
"odt"
    String
".opml"     -> forall a. a -> Maybe a
Just Text
"opml"
    String
".org"      -> forall a. a -> Maybe a
Just Text
"org"
    String
".pdf"      -> forall a. a -> Maybe a
Just Text
"pdf"  
    String
".pptx"     -> forall a. a -> Maybe a
Just Text
"pptx"
    String
".ris"      -> forall a. a -> Maybe a
Just Text
"ris"
    String
".roff"     -> forall a. a -> Maybe a
Just Text
"ms"
    String
".rst"      -> forall a. a -> Maybe a
Just Text
"rst"
    String
".rtf"      -> forall a. a -> Maybe a
Just Text
"rtf"
    String
".s5"       -> forall a. a -> Maybe a
Just Text
"s5"
    String
".t2t"      -> forall a. a -> Maybe a
Just Text
"t2t"
    String
".tei"      -> forall a. a -> Maybe a
Just Text
"tei"
    String
".tex"      -> forall a. a -> Maybe a
Just Text
"latex"
    String
".texi"     -> forall a. a -> Maybe a
Just Text
"texinfo"
    String
".texinfo"  -> forall a. a -> Maybe a
Just Text
"texinfo"
    String
".text"     -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".textile"  -> forall a. a -> Maybe a
Just Text
"textile"
    String
".txt"      -> forall a. a -> Maybe a
Just Text
"markdown"
    String
".wiki"     -> forall a. a -> Maybe a
Just Text
"mediawiki"
    String
".xhtml"    -> forall a. a -> Maybe a
Just Text
"html"
    String
".ipynb"    -> forall a. a -> Maybe a
Just Text
"ipynb"
    String
".csv"      -> forall a. a -> Maybe a
Just Text
"csv"
    String
".tsv"      -> forall a. a -> Maybe a
Just Text
"tsv"
    String
".bib"      -> forall a. a -> Maybe a
Just Text
"biblatex"
    [Char
'.',Char
y]     | Char
y forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`elem` [Char
'1'..Char
'9'] -> forall a. a -> Maybe a
Just Text
"man"
    String
_           -> forall a. Maybe a
Nothing