diff options
author | John MacFarlane <jgm@berkeley.edu> | 2014-07-26 18:46:51 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2014-07-26 18:46:51 -0700 |
commit | 31b8a95c1dc84b9351d81b4b9122f56b29b19c6c (patch) | |
tree | aa766a51032a10512bd0eac0310600e7e4e6bb3e /pandoc.hs | |
parent | 18f4490482aa4f21a1c4e4a9493fb3a88815dcfa (diff) | |
parent | 9e4604fa0b20b12177fe1f24650e4dfaf388e33a (diff) | |
download | pandoc-31b8a95c1dc84b9351d81b4b9122f56b29b19c6c.tar.gz |
Merge pull request #1453 from mpickering/txt2tagsfinal
Txt2Tags Reader
Diffstat (limited to 'pandoc.hs')
-rw-r--r-- | pandoc.hs | 23 |
1 files changed, 16 insertions, 7 deletions
@@ -65,6 +65,9 @@ import qualified Data.Map as M import Data.Yaml (decode) import qualified Data.Yaml as Yaml import qualified Data.Text as T +import Control.Applicative ((<$>)) +import Text.Pandoc.Readers.Txt2Tags (getT2TMeta) +import Data.List (intersperse) copyrightMessage :: String copyrightMessage = "\nCopyright (C) 2006-2014 John MacFarlane\n" ++ @@ -180,7 +183,7 @@ data Opt = Opt , optTeXLigatures :: Bool -- ^ Use TeX ligatures for quotes/dashes , optDefaultImageExtension :: String -- ^ Default image extension , optTrace :: Bool -- ^ Print debug information - , optTrackChanges :: TrackChanges -- ^ Accept or reject MS Word track-changes. + , optTrackChanges :: TrackChanges -- ^ Accept or reject MS Word track-changes. } -- | Defaults for command-line options. @@ -876,6 +879,7 @@ defaultReaderName fallback (x:xs) = ".native" -> "native" ".json" -> "json" ".docx" -> "docx" + ".t2t" -> "t2t" _ -> defaultReaderName fallback xs -- Returns True if extension of first source is .lhs @@ -1054,9 +1058,14 @@ main = do else e Right w -> return w - reader <- case getReader readerName' of - Right r -> return r - Left e -> err 7 e + let concatInput = concat (intersperse ", " sources) + reader <- if "t2t" == readerName' + then (mkStringReader . + readTxt2Tags) <$> + (getT2TMeta concatInput outputFile) + else case getReader readerName' of + Right r -> return r + Left e -> err 7 e let standalone' = standalone || not (isTextFormat writerName') || pdfOutput @@ -1181,18 +1190,18 @@ main = do let readFiles [] = error "Cannot read archive from stdin" readFiles (x:_) = B.readFile x - let convertTabs = tabFilter (if preserveTabs then 0 else tabStop) + let convertTabs = tabFilter (if (preserveTabs || readerName' == "t2t") then 0 else tabStop) let handleIncludes' = if readerName' == "latex" || readerName' == "latex+lhs" then handleIncludes else return doc <- case reader of - StringReader r-> + StringReader r-> readSources sources >>= handleIncludes' . convertTabs . intercalate "\n" >>= r readerOpts - ByteStringReader r -> readFiles sources >>= r readerOpts + ByteStringReader r -> readFiles sources >>= r readerOpts let doc0 = M.foldWithKey setMeta doc metadata |