@@ -60,7 +60,7 @@ import Text.Pandoc.Biblio
61import Control.Monad (when, unless, liftM)
61import Control.Monad (when, unless, liftM)
62import Network.HTTP (simpleHTTP, mkRequest, getResponseBody, RequestMethod(..))
62import Network.HTTP (simpleHTTP, mkRequest, getResponseBody, RequestMethod(..))
63−import Network.URI (parseURI)
63+import Network.URI (parseURI, isURI)
64import Data.ByteString.Lazy.UTF8 (toString)
64import Data.ByteString.Lazy.UTF8 (toString)
66copyrightMessage :: String
66copyrightMessage :: String
@@ -536,9 +536,9 @@ usageMessage programName = usageInfo
536 (intercalate ", " $ map fst writers) ++ "\nOptions:")
536 (intercalate ", " $ map fst writers) ++ "\nOptions:")
538-- Determine default reader based on source file extensions
538-- Determine default reader based on source file extensions
539−defaultReaderName :: [FilePath] -> String
539+defaultReaderName :: String -> [FilePath] -> String
540−defaultReaderName [] = "markdown"
540+defaultReaderName fallback [] = fallback
541−defaultReaderName (x:xs) =
541+defaultReaderName fallback (x:xs) =
542 case takeExtension (map toLower x) of
542 case takeExtension (map toLower x) of
543 ".xhtml" -> "html"
543 ".xhtml" -> "html"
544 ".html" -> "html"
544 ".html" -> "html"
@@ -549,7 +549,7 @@ defaultReaderName (x:xs) =
549 ".rst" -> "rst"
549 ".rst" -> "rst"
550 ".lhs" -> "markdown+lhs"
550 ".lhs" -> "markdown+lhs"
551 ".native" -> "native"
551 ".native" -> "native"
552− _ -> defaultReaderName xs
552+ _ -> defaultReaderName fallback xs
554-- Returns True if extension of first source is .lhs
554-- Returns True if extension of first source is .lhs
555lhsExtension :: [FilePath] -> Bool
555lhsExtension :: [FilePath] -> Bool
@@ -667,7 +667,10 @@ main = do
668 -- assign reader and writer based on options and filenames
668 -- assign reader and writer based on options and filenames
669 let readerName' = if null readerName
669 let readerName' = if null readerName
670+ then let fallback = if any isURI sources
670− then defaultReaderName sources
673+ in defaultReaderName fallback sources
671 else readerName
674 else readerName
673 let writerName' = if null writerName
676 let writerName' = if null writerName