summaryrefslogtreecommitdiff
path: root/pandoc.hs
diff options
context:
space:
mode:
authormpickering <matthewtpickering@gmail.com>2014-06-15 13:38:16 +0100
committerJesse Rosenthal <jrosenthal@jhu.edu>2014-06-16 07:18:40 -0400
commit3bc818d2d3079f1d31dbb409f839585a32f26f6e (patch)
tree71c9dfd49ac29d2603a05c1754a895c8229f643e /pandoc.hs
parent7f4668d87185929f75e5d3852c13ef2a5430b0d9 (diff)
Integrated the docx reader into the main pandoc program.
Changes also include generalising the types of reader allowed. The mechanism now mimics the more general output mechanism.
Diffstat (limited to 'pandoc.hs')
-rw-r--r--pandoc.hs13
1 files changed, 10 insertions, 3 deletions
diff --git a/pandoc.hs b/pandoc.hs
index 5dd0e6899..0a8070d7c 100644
--- a/pandoc.hs
+++ b/pandoc.hs
@@ -858,6 +858,7 @@ defaultReaderName fallback (x:xs) =
".textile" -> "textile"
".native" -> "native"
".json" -> "json"
+ ".docx" -> "docx"
_ -> defaultReaderName fallback xs
-- Returns True if extension of first source is .lhs
@@ -1158,15 +1159,21 @@ main = do
Left e -> throwIO e
Right (bs,_) -> return $ UTF8.toString bs
+ let readFiles [] = error "Cannot read archive from stdin"
+ readFiles (x:_) = B.readFile x
+
let convertTabs = tabFilter (if preserveTabs then 0 else tabStop)
let handleIncludes' = if readerName' == "latex" || readerName' == "latex+lhs"
then handleIncludes
else return
- doc <- readSources sources >>=
- handleIncludes' . convertTabs . intercalate "\n" >>=
- reader readerOpts
+ doc <- case reader of
+ StringReader r->
+ readSources sources >>=
+ handleIncludes' . convertTabs . intercalate "\n" >>=
+ r readerOpts
+ ByteStringReader r -> readFiles sources >>= r readerOpts
let doc0 = M.foldWithKey setMeta doc metadata