aboutsummaryrefslogtreecommitdiff
path: root/pandoc.hs
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2014-07-26 18:46:51 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2014-07-26 18:46:51 -0700
commit31b8a95c1dc84b9351d81b4b9122f56b29b19c6c (patch)
treeaa766a51032a10512bd0eac0310600e7e4e6bb3e /pandoc.hs
parent18f4490482aa4f21a1c4e4a9493fb3a88815dcfa (diff)
parent9e4604fa0b20b12177fe1f24650e4dfaf388e33a (diff)
downloadpandoc-31b8a95c1dc84b9351d81b4b9122f56b29b19c6c.tar.gz
Merge pull request #1453 from mpickering/txt2tagsfinal
Txt2Tags Reader
Diffstat (limited to 'pandoc.hs')
-rw-r--r--pandoc.hs23
1 files changed, 16 insertions, 7 deletions
diff --git a/pandoc.hs b/pandoc.hs
index 30c575a69..908643a1f 100644
--- a/pandoc.hs
+++ b/pandoc.hs
@@ -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