epub-metadata-4.5: Library for parsing epub document metadata

Safe HaskellSafe
LanguageHaskell2010

Codec.Epub.Data.Metadata

Description

Data types for working with the metadata of epub documents

This module defines the Metadata structure which contains most of the taxonomic information about the literary work. Metadata is probably the most important data structure in this library.

Both commonly-used versions of epub (2.x and 3.x) are supported by these types.

Synopsis

Documentation

data Metadata #

package/metadata tag

This is perhaps the most useful data structure in this library. It contains most of the information tools will want to use to organize epub documents.

Constructors

Metadata 

Fields

Instances
Eq Metadata # 
Instance details

Defined in Codec.Epub.Data.Metadata

Show Metadata # 
Instance details

Defined in Codec.Epub.Data.Metadata

Formattable Metadata # 
Instance details

Defined in Codec.Epub.Format

Methods

format :: Metadata -> String #

data Identifier #

package/metadata/dc:identifier tag

Constructors

Identifier 

Fields

Instances
Eq Identifier # 
Instance details

Defined in Codec.Epub.Data.Metadata

Show Identifier # 
Instance details

Defined in Codec.Epub.Data.Metadata

data Title #

package/metadata/dc:title tag

Constructors

Title 

Fields

Instances
Eq Title # 
Instance details

Defined in Codec.Epub.Data.Metadata

Methods

(==) :: Title -> Title -> Bool #

(/=) :: Title -> Title -> Bool #

Show Title # 
Instance details

Defined in Codec.Epub.Data.Metadata

Methods

showsPrec :: Int -> Title -> ShowS #

show :: Title -> String #

showList :: [Title] -> ShowS #

data Creator #

package/metadata/dc:creator or package/metadata/dc:contributor tags

This structure is used for both contributor and creator as they are exactly the same.

Constructors

Creator 

Fields

Instances
Eq Creator # 
Instance details

Defined in Codec.Epub.Data.Metadata

Methods

(==) :: Creator -> Creator -> Bool #

(/=) :: Creator -> Creator -> Bool #

Show Creator # 
Instance details

Defined in Codec.Epub.Data.Metadata

data Date #

package/metadata/dc:date tag, opf:event attribute, text

Constructors

Date (Maybe String) String 
Instances
Eq Date # 
Instance details

Defined in Codec.Epub.Data.Metadata

Methods

(==) :: Date -> Date -> Bool #

(/=) :: Date -> Date -> Bool #

Show Date # 
Instance details

Defined in Codec.Epub.Data.Metadata

Methods

showsPrec :: Int -> Date -> ShowS #

show :: Date -> String #

showList :: [Date] -> ShowS #

data Description #

package/metadata/dc:description tag, xml:lang attribute, text

Constructors

Description (Maybe String) String 
Instances
Eq Description # 
Instance details

Defined in Codec.Epub.Data.Metadata

Show Description # 
Instance details

Defined in Codec.Epub.Data.Metadata

data Refinement #

Refinements represent meta tags within the metadata section that refine other tags. These are used during the parsing phase and are discarded as their information is slotted into the data they refine (CreatorS, TitleS, IdentifierS, etc..)

This is specific to epub3

Constructors

Refinement 

Fields

emptyMetadata :: Metadata #

Note: This isn't valid as-is, some required values are empty lists!

refineIdentifier :: [Refinement] -> Identifier -> Identifier #

Used internally by Codec.Epub.Parse.Metadata to merge epub3 meta tag info into the data gathered from an identifier tag

refineTitle :: [Refinement] -> (String, Title) -> Title #

Used internally by Codec.Epub.Parse.Metadata to merge epub3 meta tag info into the data gathered from a title tag

getModified :: [Refinement] -> Maybe String #

Used internally by Codec.Epub.Parse.Metadata to populate the metadata modified field with data extracted from the epub3 meta tag with property dcterms:modified

refineCreator :: [Refinement] -> (String, Creator) -> Creator #

Used internally by Codec.Epub.Parse.Metadata to merge epub3 meta tag info into the data gathered from contributor and creator tags