BibInternal.entries — Constantconst entries = [
    :article,
    :book,
    :booklet,
    :inbook,
    :incollection,
    :inproceedings,
    :manual,
    :mastersthesis,
    :misc,
    :phdthesis,
    :proceedings,
    :techreport,
    :unpublished,
]List of possible entries (currently based on bibtex). Keep it sorted for readability.
BibInternal.fields — Constantconst fields = [
    :address,
    :annote,
    :archivePrefix,
    :author,
    :booktitle,
    :chapter,
    :crossref,
    :edition,
    :editor,
    :eprint,
    :howpublished,
    :institution,
    :journal,
    :key,
    :month,
    :note,
    :number,
    :organization,
    :pages,
    :primaryClass,
    :publisher,
    :school,
    :series,
    :title,
    :type,
    :volume,
    :year
]List of possible fields (currently based on bibtex). Keep it sorted for readability
BibInternal.maxfieldlength — Constantconst maxfieldlengthFor output formatting purpose, for instance, export to BibTeX format.
BibInternal.rules — Constantconst rules = Dict([
    "article"       => ["author", "journal", "title", "year"]
    "book"          => [("author", "editor"), "publisher", "title", "year"]
    "booklet"       => ["title"]
    "eprint"        => ["author", "eprint", "title", "year"]
    "inbook"        => [("author", "editor"), ("chapter", "pages"), "publisher", "title", "year"]
    "incollection"  => ["author", "booktitle", "publisher", "title", "year"]
    "inproceedings" => ["author", "booktitle", "title", "year"]
    "manual"        => ["title"]
    "mastersthesis" => ["author", "school", "title", "year"]
    "misc"          => []
    "phdthesis"     => ["author", "school", "title", "year"]
    "proceedings"   => ["title", "year"]
    "techreport"    => ["author", "institution", "title", "year"]
    "unpublished"   => ["author", "note", "title"]
])List of BibTeX rules bases on the entry type. A field value as a singleton represents a required field. A pair of values represents mutually exclusive required fields.
BibInternal.AbstractEntry — TypeAbstract entry supertype.
BibInternal.Access — Typestruct Access
    doi::String
    howpublished::String
    url::String
endStore the online access of an entry as a String. Handles the fields doi and url and the arXiv entries. For additional fields or entries, please fill an issue or make a pull request.
BibInternal.Access — MethodAccess(fields::Fields)Construct the online access information based on the entry fields.
BibInternal.Date — Typestruct Date
    day::String
    month::String
    year::String
endStore the date information as day, month, and year.
BibInternal.Date — MethodDate(fields::Fields)Construct the date information based on the entry fields.
BibInternal.Entry — Typestruct Entry <: AbstractEntry
    access::Access
    authors::Names
    booktitle::String
    date::Date
    editors::Names
    eprint::Eprint
    id::String
    in::In
    fields::Dict{String,String}
    title::String
    type::String
endGeneric Entry type. If some construction rules are required, it should be done beforehand. Check bibtex.jl as the example of rules implementation for BibTeX format.
BibInternal.Entry — MethodEntry(id::String, fields::Fields)Construct an entry with a unique id and a list of Fields.
BibInternal.Eprint — Typestruct Eprint
    archive_prefix::String
    eprint::String
    primary_class::String
endStore the information related to arXiv eprint format.
BibInternal.Eprint — MethodEprint(fields::Fields)Construct the eprint arXiv information based on the entry fields. Handle old and current arXiv format.
BibInternal.Fields — TypeFields = Dict{String, String}. Stores the fields name => value of an entry.
BibInternal.In — Typestruct In
    address::String
    chapter::String
    edition::String
    institution::String
    journal::String
    number::String
    organization::String
    pages::String
    publisher::String
    school::String
    series::String
    volume::String
endStore all the information related to how an entry was published.
BibInternal.In — MethodIn(fields::Fields)Construct the information of how an entry was published based on its fields
BibInternal.Name — MethodName(str::String)Decompose without ambiguities a name as particle (optional) last, junior (optional), first middle (optional) based on BibTeX possible input. As for BibTeX, the decomposition of a name in the form of first last is also possible, but ambiguities can occur.
Base.isless — MethodBase.isless(a::BibInternal.Date,b::BibInternal.Date)::BoolFunction to check for a < b on BibInternal.Date data types.
This function will throw an ArgumentError if the year can not parsed into Int. If it is not possible to parse month or day to Int those entries will be silently ignored for comparison. This function will not check if the date fields are given in a correct format all fields are parsed into and compared as Int (no checking if date format is correct or valid!).
The silent ignoring of not parseable month or day fields will lead to misbehaviour if using comparators like == or !==!
Base.isless — MethodBase.isless(a::BibInternal.Name,b::BibInternal.Name)::BoolFunction to check for a < b on BibInternal.Name data types.
This function will check the fields last, first and middle in this order of priority. The other fields are ignored for now. The field comparison is done by string comparison no advanced alphabetizing rules are used for now.
The silent ignoring of the other fields might lead to misbehaviour if using comparators like == or !==!
BibInternal.arxive_url — Methodarxive_url(fields::Fields)Make an arxiv url from an eprint entry. Work with both old and current arxiv BibTeX format.
BibInternal.check_entry — Methodcheck_entry(fields::Fields)Check the validity of the fields of a BibTeX entry.
BibInternal.erase_spaces — Methoderase_spaces(str::String)Erase extra spaces, i.e. r"[  ]+", from str and return a new string.
BibInternal.get_delete! — Methodget_delete!(fields::Fields, key::String)Get the value of a field and delete it afterward.
BibInternal.make_bibtex_entry — Methodmake_bibtex_entry(id::String, fields::Fields)Make an entry if the entry follows the BibTeX guidelines. Throw an error otherwise.
BibInternal.names — Methodnames(str::String)Decompose into parts a list of names in BibTeX compatible format. That is names separated by and.
BibInternal.space — Methodspace(field::Symbol)Return the amount of spaces needed to export entries, for instance to BibTeX format.