diff options
author | mpickering <matthewtpickering@gmail.com> | 2014-06-15 13:38:16 +0100 |
---|---|---|
committer | Jesse Rosenthal <jrosenthal@jhu.edu> | 2014-06-16 07:18:40 -0400 |
commit | 3bc818d2d3079f1d31dbb409f839585a32f26f6e (patch) | |
tree | 71c9dfd49ac29d2603a05c1754a895c8229f643e /pandoc.hs | |
parent | 7f4668d87185929f75e5d3852c13ef2a5430b0d9 (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.hs | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -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 |