module Language.Drasil.Data.Citation (
CiteField(..), HP(..), CitationKind(..),
HasFields(..),
author, editor,
address, bookTitle, howPublished, howPublishedU, institution, journal, note,
organization, publisher, school, series, title, typeField,
chapter, edition, number, volume, year,
pages,
month
) where
import Language.Drasil.People (People)
import Language.Drasil.Data.Date (Month(..))
import Control.Lens (Lens')
data CiteField = Address String
| Author People
| BookTitle String
| Chapter Int
| Edition Int
| Editor People
| HowPublished HP
| Institution String
| Journal String
| Month Month
| Note String
| Number Int
| Organization String
| Pages [Int]
| Publisher String
| School String
| Series String
| Title String
| Type String
| Volume Int
| Year Int
class HasFields c where
getFields :: Lens' c [CiteField]
data HP = URL String
| Verb String
data CitationKind = Article
| Book
| Booklet
| InBook
| InCollection
| InProceedings
| Manual
| MThesis
| Misc
| PhDThesis
| Proceedings
| TechReport
| Unpublished
author, editor :: People -> CiteField
author :: People -> CiteField
author = People -> CiteField
Author
editor :: People -> CiteField
editor = People -> CiteField
Editor
address, bookTitle, institution, journal,
howPublished, howPublishedU, note, organization, publisher, school, series, title,
typeField :: String -> CiteField
address :: String -> CiteField
address = String -> CiteField
Address
bookTitle :: String -> CiteField
bookTitle = String -> CiteField
BookTitle
howPublished :: String -> CiteField
howPublished = HP -> CiteField
HowPublished (HP -> CiteField) -> (String -> HP) -> String -> CiteField
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> HP
Verb
howPublishedU :: String -> CiteField
howPublishedU = HP -> CiteField
HowPublished (HP -> CiteField) -> (String -> HP) -> String -> CiteField
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> HP
URL
institution :: String -> CiteField
institution = String -> CiteField
Institution
journal :: String -> CiteField
journal = String -> CiteField
Journal
note :: String -> CiteField
note = String -> CiteField
Note
organization :: String -> CiteField
organization = String -> CiteField
Organization
publisher :: String -> CiteField
publisher = String -> CiteField
Publisher
school :: String -> CiteField
school = String -> CiteField
School
series :: String -> CiteField
series = String -> CiteField
Series
title :: String -> CiteField
title = String -> CiteField
Title
typeField :: String -> CiteField
typeField = String -> CiteField
Type
chapter, edition, number, volume, year :: Int -> CiteField
chapter :: Int -> CiteField
chapter = Int -> CiteField
Chapter
edition :: Int -> CiteField
edition = Int -> CiteField
Edition
number :: Int -> CiteField
number = Int -> CiteField
Number
volume :: Int -> CiteField
volume = Int -> CiteField
Volume
year :: Int -> CiteField
year = Int -> CiteField
Year
pages :: [Int] -> CiteField
pages :: [Int] -> CiteField
pages = [Int] -> CiteField
Pages
month :: Month -> CiteField
month :: Month -> CiteField
month = Month -> CiteField
Month