-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parse, format and processing BibTeX files -- -- This package allows parsing, formatting and processing of BibTeX -- files. BibTeX files are databases for literature for the natbib -- package of the LaTeX typesetting system. -- -- The package contains two examples: -- -- -- -- Both examples will be build as stand-alone executable when running -- --
--   cabal install -fbuildExamples bibtex
--   
-- -- For the first example see the publications directory of this -- package. You can start the program and build an example document by -- running -- --
--   make pubs
--   
-- -- Technically the program generates a list of custom \nocite -- commands for the LaTeX package multibib. You can add the -- custom bibtex field subtype to BibTeX entries for more -- detailed categorization of an entry. See -- publications/publications.bib for examples. -- -- The second example can be executed using -- --
--   make hackbib
--   
-- -- The file hackage.bib is written to the hackage -- subdirectory. The hackage-bibtex program reads an -- uncompressed tar archive from standard input and writes the result -- bibliography file to standard output. -- -- Note that hackage.bib exceeds some limits of standard BibTeX -- and LaTeX: There are currently much more than 5000 versions of -- packages, the maximum my BibTeX can handle at once. That is, you can -- use the bibliography file, but you cannot cite all entries with -- \nocite*. If there are more than 26 uploads by the same -- author in a year, the BibTeX style alpha generates -- identifiers including curly braces which interacts badly with LaTeX's -- handling of them. If you reduce the Bibliography file to 5000 entries -- and try to generate an overview of all entries with \nocite, -- then pdflatex hits its limits: -- --
--   TeX capacity exceeded, sorry [save size=5000]
--   
@package bibtex @version 0.1 module Text.BibTeX.Entry data T Cons :: String -> String -> [(String, String)] -> T entryType :: T -> String identifier :: T -> String fields :: T -> [(String, String)] -- | Convert the name style "Surname, First name" into "First name -- Surname". flipName :: String -> String lowerCaseFieldNames :: T -> T instance Show T module Text.BibTeX.Format entry :: T -> String enumerate :: [String] -> String authorList :: [String] -> String commaSepList :: [String] -> String sepList :: Char -> [String] -> String -- | The parsers in this module also skip trailing spaces. module Text.BibTeX.Parse -- | Beware that this and all other parsers do not accept leading spaces, -- cf. skippingSpace. That is when encountering leading white -- spaces the parser will just return an empty list. If you want to parse -- a file that contains entirely of BibTeX data you better call -- skippingLeadingSpace file instead. However, the file -- parser is more combinable and can be used for files that contain both -- BibTeX and other data or it can be used for automated filetype -- checking. file :: Parser [T] comment :: Parser String -- | Parse a BibTeX entry like -- --
--   @article{author2010title,
--     author = {Firstname Surname},
--     title = {Title},
--     year = 2010,
--     month = jul,
--   }
--   
-- -- . entry :: Parser T -- | Parse an assignment like -- --
--   author = {Firstname Surname}
--   
-- -- . assignment :: Parser (String, String) -- | Parse a value like -- --
--   jul
--   
-- -- or -- --
--   2010
--   
-- -- or -- --
--   {Firstname Surname}
--   
-- -- or -- --
--   "Firstname Surname"
--   
-- -- . value :: Parser String -- | Parse a sequence of texBlocks until the occurrence of a closing -- character. The closing character is not part of the result. texSequence :: Char -> Parser String -- | Parse a single character like a, a LaTeX macro call like -- \alpha or a block enclosed in curly braces like -- {\"{a}bc}. texBlock :: Char -> Parser String identifier :: CharParser st String -- | Parse a name of a BibTeX entry like author2010title. bibIdentifier :: Parser String -- | Extends a parser, such that all trailing spaces are skipped. It might -- be more comfortable to skip all leading spaces, but parser written -- that way are hard to combine. This is so, since if you run two parsers -- in parallel and both of them expect leading spaces, then the parser -- combinator does not know which one of the parallel parsers to choose. -- -- See also: lexeme. skippingSpace :: Parser a -> Parser a skippingLeadingSpace :: Parser a -> Parser a -- | Split a string at the commas and remove leading spaces. splitCommaSepList :: String -> [String] -- | Split a string containing a list of authors in BibTeX notation. splitAuthorList :: String -> [String] splitSepList :: Char -> String -> [String]