Copyright | (c) Andrea Rossato |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Andrea Rossato <andrea.rossato@unitn.it> |
Stability | unstable |
Portability | unportable |
Safe Haskell | None |
Language | Haskell98 |
The Style types
- data Style = Style {
- styleVersion :: String
- styleClass :: String
- styleInfo :: Maybe CSInfo
- styleDefaultLocale :: String
- styleLocale :: [Locale]
- styleAbbrevs :: [Abbrev]
- csOptions :: [Option]
- csMacros :: [MacroMap]
- citation :: Citation
- biblio :: Maybe Bibliography
- data Locale = Locale {
- localeVersion :: String
- localeLang :: String
- localeOptions :: [Option]
- localeTerms :: [CslTerm]
- localeDate :: [Element]
- mergeLocales :: String -> Locale -> [Locale] -> [Locale]
- data CslTerm = CT {
- cslTerm :: String
- termForm :: Form
- termGender :: Gender
- termGenderForm :: Gender
- termSingular :: String
- termPlural :: String
- termMatch :: String
- newTerm :: CslTerm
- findTerm :: String -> Form -> [CslTerm] -> Maybe CslTerm
- findTerm' :: String -> Form -> Gender -> [CslTerm] -> Maybe CslTerm
- hasOrdinals :: Data a => a -> Bool
- rmOrdinals :: Data a => a -> a
- type Abbrev = (String, [(String, Map String String)])
- type MacroMap = (String, [Element])
- data Citation = Citation {}
- data Bibliography = Bibliography {}
- type Option = (String, String)
- mergeOptions :: [Option] -> [Option] -> [Option]
- data Layout = Layout {}
- data Element
- = Choose IfThen [IfThen] [Element]
- | Macro String Formatting
- | Const String Formatting
- | Variable [String] Form Formatting Delimiter
- | Term String Form Formatting Bool
- | Label String Form Formatting Plural
- | Number String NumericForm Formatting
- | Names [String] [Name] Formatting Delimiter [Element]
- | Substitute [Element]
- | Group Formatting Delimiter [Element]
- | Date [String] DateForm Formatting Delimiter [DatePart] String
- data IfThen = IfThen Condition Match [Element]
- data Condition = Condition {
- isType :: [String]
- isSet :: [String]
- isNumeric :: [String]
- isUncertainDate :: [String]
- isPosition :: [String]
- disambiguation :: [String]
- isLocator :: [String]
- type Delimiter = String
- data Match
- match :: Match -> [Bool] -> Bool
- data DatePart = DatePart {
- dpName :: String
- dpForm :: String
- dpRangeDelim :: String
- dpFormatting :: Formatting
- defaultDate :: [DatePart]
- data Sort
- data Sorting
- compare' :: String -> String -> Ordering
- data Form
- data Gender
- data NumericForm
- = Numeric
- | Ordinal
- | Roman
- | LongOrdinal
- data DateForm
- data Plural
- = Contextual
- | Always
- | Never
- data Name
- type NameAttrs = [(String, String)]
- data NamePart = NamePart String Formatting
- isPlural :: Plural -> Int -> Bool
- isName :: Name -> Bool
- isNames :: Element -> Bool
- hasEtAl :: [Name] -> Bool
- data Formatting = Formatting {
- prefix :: String
- suffix :: String
- fontFamily :: String
- fontStyle :: String
- fontVariant :: String
- fontWeight :: String
- textDecoration :: String
- verticalAlign :: String
- textCase :: String
- display :: String
- quotes :: Quote
- stripPeriods :: Bool
- noCase :: Bool
- noDecor :: Bool
- rmTitleCase :: Formatting -> Formatting
- data Quote
- emptyFormatting :: Formatting
- unsetAffixes :: Formatting -> Formatting
- mergeFM :: Formatting -> Formatting -> Formatting
- data CSInfo = CSInfo {
- csiTitle :: String
- csiAuthor :: CSAuthor
- csiCategories :: [CSCategory]
- csiId :: String
- csiUpdated :: String
- data CSAuthor = CSAuthor String String String
- data CSCategory = CSCategory String String String
- data FormattedOutput
- = FO Formatting [FormattedOutput]
- | FN String Formatting
- | FS String Formatting
- | FDel String
- | FUrl Target Formatting
- | FPan [Inline]
- | FNull
- data Output
- = ONull
- | OSpace
- | OPan [Inline]
- | ODel String
- | OStr String Formatting
- | OLabel String Formatting
- | ONum Int Formatting
- | OCitNum Int Formatting
- | ODate [Output]
- | OYear String String Formatting
- | OYearSuf String String [Output] Formatting
- | OName String [Output] [[Output]] Formatting
- | OContrib String String [Output] [Output] [[Output]]
- | OUrl Target Formatting
- | OLoc [Output] Formatting
- | Output [Output] Formatting
- data Affix
- = PlainText String
- | PandocText [Inline]
- type Citations = [[Cite]]
- data Cite = Cite {
- citeId :: String
- citePrefix :: Affix
- citeSuffix :: Affix
- citeLabel :: String
- citeLocator :: String
- citeNoteNumber :: String
- citePosition :: String
- nearNote :: Bool
- authorInText :: Bool
- suppressAuthor :: Bool
- citeHash :: Int
- emptyAffix :: Affix
- emptyCite :: Cite
- data CitationGroup = CG [(Cite, Output)] Formatting Delimiter [(Cite, Output)]
- data BiblioData = BD {
- citations :: [[FormattedOutput]]
- bibliography :: [[FormattedOutput]]
- data CiteData = CD {}
- data NameData = ND {
- nameKey :: String
- nameCollision :: [Output]
- nameDisambData :: [[Output]]
- nameDataSolved :: [Output]
- formatOutputList :: [Output] -> [FormattedOutput]
- formatOutput :: Output -> FormattedOutput
- mapGroupOutput :: (Output -> [a]) -> CitationGroup -> [a]
- proc :: (Typeable a, Data b) => (a -> a) -> b -> b
- proc' :: (Typeable a, Data b) => (a -> a) -> b -> b
- query :: (Typeable a, Data b) => (a -> [c]) -> b -> [c]
- rmGivenNames :: Output -> Output
- rmNameHash :: Output -> Output
- addGivenNames :: [Output] -> [Output]
- addYearSuffix :: Output -> Output
- hasYear :: Output -> Bool
- hasYearSuf :: Output -> Bool
- betterThen :: Eq a => [a] -> [a] -> [a]
Documentation
The representation of a parsed CSL style.
Style | |
|
Locale | |
|
CT | |
|
hasOrdinals :: Data a => a -> Bool Source
rmOrdinals :: Data a => a -> a Source
mergeOptions :: [Option] -> [Option] -> [Option] Source
Condition | |
|
DatePart | |
|
defaultDate :: [DatePart] Source
data NumericForm Source
data Formatting Source
Formatting | |
|
mergeFM :: Formatting -> Formatting -> Formatting Source
CSInfo | |
|
data CSCategory Source
data FormattedOutput Source
The formatted output, produced after post-processing the evaluated citations.
FO Formatting [FormattedOutput] | List of |
FN String Formatting | Formatted number |
FS String Formatting | Formatted string |
FDel String | Delimeter string |
FUrl Target Formatting | Formatted URL |
FPan [Inline] | Pandoc inline elements |
FNull | Null formatting item |
The Output
generated by the evaluation of a style. Must be
further processed for disambiguation and collapsing.
ONull | |
OSpace | |
OPan [Inline] | |
ODel String | A delimiter string. |
OStr String Formatting | A simple |
OLabel String Formatting | A label used for roles |
ONum Int Formatting | A number (used to count contributors) |
OCitNum Int Formatting | The citation number |
ODate [Output] | A (possibly) ranged date |
OYear String String Formatting | The year and the citeId |
OYearSuf String String [Output] Formatting | The year suffix, the citeId and a holder for collision data |
OName String [Output] [[Output]] Formatting | A (family) name with the list of given names. |
OContrib String String [Output] [Output] [[Output]] | The citation key, the role (author, editor, etc.), the contributor(s), the output needed for year suf. disambiguation, and everything used for name disambiguation. |
OUrl Target Formatting | An URL |
OLoc [Output] Formatting | The citation's locator |
Output [Output] Formatting | Some nested |
Cite | |
|
data CitationGroup Source
A citation group: the first list has a single member when the
citation group starts with an "author-in-text" cite, the
Formatting
to be applied, the Delimiter
between individual
citations and the list of evaluated citations.
data BiblioData Source
BD | |
|
A record with all the data to produce the FormattedOutput
of a
citation: the citation key, the part of the formatted citation that
may be colliding with other citations, the form of the citation
when a year suffix is used for disambiguation , the data to
disambiguate it (all possible contributors and all possible given
names), and, after processing, the disambiguated citation and its
year, initially empty.
ND | |
|
formatOutputList :: [Output] -> [FormattedOutput] Source
formatOutput :: Output -> FormattedOutput Source
Convert evaluated Output
into FormattedOutput
, ready for the
output filters.
mapGroupOutput :: (Output -> [a]) -> CitationGroup -> [a] Source
Map the evaluated output of a citation group.
proc' :: (Typeable a, Data b) => (a -> a) -> b -> b Source
A generic processing function: process a data structure in top-down manner.
rmNameHash :: Output -> Output Source
addGivenNames :: [Output] -> [Output] Source
Add, with proc
, a give name to the family name. Needed for
disambiguation.
addYearSuffix :: Output -> Output Source
Add the year suffix to the year. Needed for disambiguation.
hasYearSuf :: Output -> Bool Source
betterThen :: Eq a => [a] -> [a] -> [a] Source