module Codec.EBook.OCF(
defaultMediatype,
defaultMimetype,
containerXMLFile,
containerXMLFile',
mimetypeFile,
)
where
import Codec.EBook.Types
import Text.XML.Light
import qualified Data.ByteString.Lazy as B
defaultMediatype :: String
defaultMediatype = "application/oebps-package+xml"
defaultMimetype :: String
defaultMimetype = "application/epub+zip"
containerXMLFile' :: FilePath -> (FilePath, B.ByteString)
containerXMLFile' p = containerXMLFile p defaultMediatype
mimetypeFile :: (FilePath, B.ByteString)
mimetypeFile = ("mimetype", str2bstr defaultMimetype)
containerXMLFile :: FilePath -> String -> (FilePath, B.ByteString)
containerXMLFile p m = ("META-INF/container.xml", str2bstr $ ppTopElement contTag)
where
contTag = add_attrs contAttrs $ unode "container" rootfilesTag
contAttrs = [ Attr (unqual "version") "1.0"
, Attr (unqual "xmlns") "urn:oasis:names:tc:opendocument:xmlns:container" ]
rootfilesTag = unode "rootfiles" rootfileTag
rootfileTag = add_attrs rfAttrs $ unode "rootfile" ()
rfAttrs = [ Attr (unqual "full-path") p
, Attr (unqual "media-type") m
]