citeproc-hs-0.3.3: A Citation Style Language implementation in Haskell

Portability | unportable
Stability | unstable
Maintainer | Andrea Rossato <andrea.rossato@unitn.it>

Text.CSL.Reference

Description

The Reference type

Synopsis

- data Value = forall a . Data a => Value a
- type ReferenceMap = [(String, Value)]
- mkRefMap :: Data a => a -> ReferenceMap
- formatField :: String -> String
- fromValue :: Data a => Value -> Maybe a
- isValueSet :: Value -> Bool
- data Empty = Empty
- data Agent = Agent {
  - givenName :: [String]
  - droppingPart :: String
  - nonDroppingPart :: String
  - familyName :: String
  - nameSuffix :: String
  - literal :: String
  - commaSuffix :: Bool
  }
- data RefDate = RefDate {
  - year :: String
  - month :: String
  - season :: String
  - day :: String
  - other :: String
  - circa :: String
  }
- data RefType
  - = NoType
  - | Article
  - | ArticleMagazine
  - | ArticleNewspaper
  - | ArticleJournal
  - | Bill
  - | Book
  - | Broadcast
  - | Chapter
  - | Entry
  - | EntryDictionary
  - | EntryEncyclopedia
  - | Figure
  - | Graphic
  - | Interview
  - | Legislation
  - | LegalCase
  - | Manuscript
  - | Map
  - | MotionPicture
  - | MusicalScore
  - | Pamphlet
  - | PaperConference
  - | Patent
  - | Post
  - | PostWeblog
  - | PersonalCommunication
  - | Report
  - | Review
  - | ReviewBook
  - | Song
  - | Speech
  - | Thesis
  - | Treaty
  - | Webpage
- newtype CNum = CNum {
  - unCNum :: Int
  }
- data Reference = Reference {
  - refId :: String
  - refType :: RefType
  - author :: [Agent]
  - editor :: [Agent]
  - translator :: [Agent]
  - recipient :: [Agent]
  - interviewer :: [Agent]
  - composer :: [Agent]
  - originalAuthor :: [Agent]
  - containerAuthor :: [Agent]
  - collectionEditor :: [Agent]
  - editorialDirector :: [Agent]
  - issued :: [RefDate]
  - eventDate :: [RefDate]
  - accessed :: [RefDate]
  - container :: [RefDate]
  - originalDate :: [RefDate]
  - title :: String
  - shortTitle :: String
  - containerTitle :: String
  - collectionTitle :: String
  - collectionNumber :: String
  - originalTitle :: String
  - publisher :: String
  - originalPublisher :: String
  - publisherPlace :: String
  - authority :: String
  - archive :: String
  - archivePlace :: String
  - archiveLocation :: String
  - event :: String
  - eventPlace :: String
  - page :: String
  - pageFirst :: String
  - numberOfPages :: String
  - version :: String
  - volume :: String
  - numberOfVolumes :: String
  - issue :: String
  - chapterNumber :: String
  - medium :: String
  - status :: String
  - edition :: String
  - section :: String
  - genre :: String
  - note :: String
  - annote :: String
  - abstract :: String
  - keyword :: String
  - number :: String
  - references :: String
  - url :: String
  - doi :: String
  - isbn :: String
  - categories :: [String]
  - citationNumber :: CNum
  - firstReferenceNoteNumber :: Int
  - citationLabel :: String
  }
- emptyReference :: Reference
- parseLocator :: String -> (String, String)
- getReference :: [Reference] -> Cite -> Reference
- processCites :: [Reference] -> [[Cite]] -> [[(Cite, Reference)]]
- setCitationNumber :: [[(Cite, Reference)]] -> [[(Cite, Reference)]]
- setPageFirst :: Reference -> Reference
- setNearNote :: Style -> [[Cite]] -> [[Cite]]
- readNum :: String -> Int

# Documentation

data Value

An existential type to wrap the different types a `Reference` is made of. This way we can create a map to make queries easier.

Constructors

forall a . Data a => Value a |

Instances

Show Value |

type ReferenceMap = [(String, Value)]

mkRefMap :: Data a => a -> ReferenceMap

formatField :: String -> String

fromValue :: Data a => Value -> Maybe a

isValueSet :: Value -> Bool

data Empty

Constructors

Empty |

Instances

Data Empty |
Typeable Empty |

data Agent

Constructors

Agent |
Fields givenName :: [String] droppingPart :: String nonDroppingPart :: String familyName :: String nameSuffix :: String literal :: String commaSuffix :: Bool

Instances

Eq Agent |
Data Agent |
Read Agent |
Show Agent |
Typeable Agent |
XmlPickler Agent |

data RefDate

Constructors

RefDate |
Fields year :: String month :: String season :: String day :: String other :: String circa :: String

Instances

Eq RefDate |
Data RefDate |
Read RefDate |
Show RefDate |
Typeable RefDate |

data RefType

Constructors

NoType |
Article |
ArticleMagazine |
ArticleNewspaper |
ArticleJournal |
Bill |
Book |
Broadcast |
Chapter |
Entry |
EntryDictionary |
EntryEncyclopedia |
Figure |
Graphic |
Interview |
Legislation |
LegalCase |
Manuscript |
Map |
MotionPicture |
MusicalScore |
Pamphlet |
PaperConference |
Patent |
Post |
PostWeblog |
PersonalCommunication |
Report |
Review |
ReviewBook |
Song |
Speech |
Thesis |
Treaty |
Webpage |

Instances

Eq RefType |
Data RefType |
Read RefType |
Show RefType |
Typeable RefType |

newtype CNum

Constructors

CNum |
Fields unCNum :: Int

Instances

Eq CNum |
Data CNum |
Num CNum |
Read CNum |
Show CNum |
Typeable CNum |

data Reference

The `Reference` record.

Constructors

Reference |
Fields refId :: String refType :: RefType author :: [Agent] editor :: [Agent] translator :: [Agent] recipient :: [Agent] interviewer :: [Agent] composer :: [Agent] originalAuthor :: [Agent] containerAuthor :: [Agent] collectionEditor :: [Agent] editorialDirector :: [Agent] issued :: [RefDate] eventDate :: [RefDate] accessed :: [RefDate] container :: [RefDate] originalDate :: [RefDate] title :: String shortTitle :: String containerTitle :: String collectionTitle :: String collectionNumber :: String originalTitle :: String publisher :: String originalPublisher :: String publisherPlace :: String authority :: String archive :: String archivePlace :: String archiveLocation :: String event :: String eventPlace :: String page :: String pageFirst :: String numberOfPages :: String version :: String volume :: String numberOfVolumes :: String issue :: String chapterNumber :: String medium :: String status :: String edition :: String section :: String genre :: String note :: String annote :: String abstract :: String keyword :: String number :: String references :: String url :: String doi :: String isbn :: String categories :: [String] citationNumber :: CNum firstReferenceNoteNumber :: Int citationLabel :: String

Instances

Eq Reference |
Data Reference |
Read Reference |
Show Reference |
Typeable Reference |

emptyReference :: Reference

parseLocator :: String -> (String, String)

getReference :: [Reference] -> Cite -> Reference

processCites :: [Reference] -> [[Cite]] -> [[(Cite, Reference)]]

setCitationNumber :: [[(Cite, Reference)]] -> [[(Cite, Reference)]]

setPageFirst :: Reference -> Reference

setNearNote :: Style -> [[Cite]] -> [[Cite]]

readNum :: String -> Int