git.iko.soy/typeable/pandoc
on master help sign in
EPUB Writer: Added explicit imports
commit1f02ff60ba742284aa69f0996f8b4f53b17aaabb authorMatthew Pickering <matthewtpickering@gmail.com> dateMon 11 Aug 2014, 10:21 (12 years ago) parent4e483db
1 file changed+26−18
src/Text/Pandoc/Writers/EPUB.hs+26−18
src/Text/Pandoc/Writers/EPUB.hs+26−18
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2929Conversion of 'Pandoc' documents to EPUB.
3030-}
3131module Text.Pandoc.Writers.EPUB ( writeEPUB ) where
32−import Data.IORef
32+import Data.IORef ( IORef, newIORef, readIORef, modifyIORef )
3333import qualified Data.Map as M
3434import Data.Maybe ( fromMaybe )
3535import Data.List ( isPrefixOf, isInfixOf, intercalate )
@@ -40,27 +40,35 @@ import qualified Data.ByteString.Lazy as B
4040import qualified Data.ByteString.Lazy.Char8 as B8
4141import qualified Text.Pandoc.UTF8 as UTF8
4242import Text.Pandoc.SelfContained ( makeSelfContained )
43−import Codec.Archive.Zip
43+import Codec.Archive.Zip ( emptyArchive, addEntryToArchive, eRelativePath, fromEntry , Entry, toEntry, fromArchive)
4444import Control.Applicative ((<$>))
45−import Data.Time.Clock.POSIX
46−import Data.Time
47−import System.Locale
48−import Text.Pandoc.Shared hiding ( Element )
49−import qualified Text.Pandoc.Shared as Shared
45+import Data.Time.Clock.POSIX ( getPOSIXTime )
46+import Data.Time (getCurrentTime,UTCTime, formatTime)
47+import System.Locale ( defaultTimeLocale )
48+import Text.Pandoc.Shared ( trimr, renderTags', safeRead, uniqueIdent, trim
49+ , normalizeDate, readDataFile, stringify, warn
50+ , hierarchicalize, fetchItem' )
51+import qualified Text.Pandoc.Shared as S (Element(..))
5052import Text.Pandoc.Builder (fromList, setMeta)
51−import Text.Pandoc.Options
53+import Text.Pandoc.Options ( WriterOptions(..)
54+ , HTMLMathMethod(..)
55+ , EPUBVersion(..)
56+ , ObfuscationMethod(NoObfuscation) )
5257import Text.Pandoc.Definition
53−import Text.Pandoc.Walk
54−import Control.Monad.State
55−import Text.XML.Light hiding (ppTopElement)
56−import Text.Pandoc.UUID
57−import Text.Pandoc.Writers.HTML
58+import Text.Pandoc.Walk (walk, walkM)
59+import Control.Monad.State (modify, get, execState, State, put, evalState)
60+import Control.Monad (foldM, when, mplus, liftM)
61+import Text.XML.Light ( unode, Element(..), unqual, Attr(..), add_attrs
62+ , strContent, lookupAttr, Node(..), QName(..), parseXML
63+ , onlyElems, node, ppElement)
64+import Text.Pandoc.UUID (getRandomUUID)
65+import Text.Pandoc.Writers.HTML (writeHtmlString, writeHtml)
5866import Data.Char ( toLower, isDigit, isAlphaNum )
5967import Network.URI ( unEscapeString )
6068import Text.Pandoc.MIME (getMimeType)
6169import qualified Control.Exception as E
6270import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
63−import Text.HTML.TagSoup
71+import Text.HTML.TagSoup (Tag(TagOpen), fromAttrib, parseTags)
6472
6573-- A Chapter includes a list of blocks and maybe a section
6674-- number offset. Note, some chapters are unnumbered. The section
@@ -524,8 +532,8 @@ writeEPUB opts doc@(Pandoc meta _) = do
524532 let tocLevel = writerTOCDepth opts
525533
526534 let navPointNode :: (Int -> String -> String -> [Element] -> Element)
527− -> Shared.Element -> State Int Element
528− navPointNode formatter (Sec _ nums (ident,_,_) ils children) = do
535+ -> S.Element -> State Int Element
536+ navPointNode formatter (S.Sec _ nums (ident,_,_) ils children) = do
529537 n <- get
530538 modify (+1)
531539 let showNums :: [Int] -> String
@@ -537,12 +545,12 @@ writeEPUB opts doc@(Pandoc meta _) = do
537545 let src = case lookup ident reftable of
538546 Just x -> x
539547 Nothing -> error (ident ++ " not found in reftable")
540− let isSec (Sec lev _ _ _ _) = lev <= tocLevel
548+ let isSec (S.Sec lev _ _ _ _) = lev <= tocLevel
541549 isSec _ = False
542550 let subsecs = filter isSec children
543551 subs <- mapM (navPointNode formatter) subsecs
544552 return $ formatter n tit src subs
545− navPointNode _ (Blk _) = error "navPointNode encountered Blk"
553+ navPointNode _ (S.Blk _) = error "navPointNode encountered Blk"
546554
547555 let navMapFormatter :: Int -> String -> String -> [Element] -> Element
548556 navMapFormatter n tit src subs = unode "navPoint" !