pandoc-citeproc-0.10.5: Supports using pandoc with citeproc

Copyright(c) Andrea Rossato
LicenseBSD-style (see LICENSE)
MaintainerAndrea Rossato <>
Safe HaskellNone



This module provides functions for processing the evaluated Output for citation disambiguation.

Describe the disambiguation process.



disambCitations :: Style -> [Reference] -> Citations -> [CitationGroup] -> ([(String, String)], [CitationGroup]) Source #

Given the Style, the list of references and the citation groups, disambiguate citations according to the style options.

reEvaluate :: Style -> [CiteData] -> [(Cite, Maybe Reference)] -> CitationGroup -> CitationGroup Source #

Evaluate again a citation group with the EvalState disamb field set to True (for matching the "disambiguate" condition).

hasIfDis :: IfThen -> [Bool] Source #

Check if the Style has any conditional for disambiguation. In this case the conditional will be try after all other disambiguation strategies have failed. To be used with the generic query function.

getCitDisambOptions :: Style -> [String] Source #

Get the list of disambiguation options set in the Style for citations.

getDuplCiteData :: Bool -> Bool -> [CitationGroup] -> [[CiteData]] Source #

Group citation data (with possible alternative names) of citations which have a duplicate (same collision, and same citYear if year suffix disambiiguation is used). If the first Bool is False, then we need to retrieve data for year suffix disambiguation. The second Bool is True when comparing both year and contributors' names for finding duplicates (when the year-suffix option is set).

getCiteData :: Output -> [CiteData] Source #

For an evaluated citation get its CiteData. The disambiguated citation and the year fields are empty. Only the first list of contributors' disambiguation data are collected for disambiguation purposes.

disambiguate :: Eq a => [[a]] -> [[a]] Source #

Try to disambiguate a list of lists by returning the first non colliding element, if any, of each list:

disambiguate [[1,2],[1,3],[2]] = [[2],[3],[2]]

same :: Eq a => [a] -> [Bool] Source #

For each element a list of Bool: True if the element has a duplicate in the list:

same [1,2,1] = [True,False,True]

hasDuplicates :: Eq a => [a] -> Bool Source #

allTheSame :: Eq a => [a] -> Bool Source #

addYearSuffix :: Output -> Output Source #

Add the year suffix to the year. Needed for disambiguation.

rmHashAndGivenNames :: Output -> Output Source #

Removes all given names and name hashes from OName elements.

addGivenNames :: [Output] -> [Output] Source #

Add, with proc, a give name to the family name. Needed for disambiguation.

mapGroupOutput :: (Output -> [a]) -> CitationGroup -> [a] Source #

Map the evaluated output of a citation group.