{-# 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