Jump to content

Module:Citation/CS1/Configuration: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
enable visibility for parameter errors, isbn error, and wikilink in url error
sync to sandbox, mostly translation handles almost uniformity for archiveurl errors.
Line 1: Line 1:
data = {};
citation_config = {};


--[[
--[[
Line 9: Line 9:
]]
]]


data.message_list = {
citation_config.message_list = {
['published'] = 'published',
['published'] = 'published $1',
['lay summary'] = 'Lay summary',
['lay summary'] = 'Lay summary',
['retrieved'] = 'Retrieved',
['retrieved'] = 'Retrieved $1',
['inactive'] = 'inactive',
['inactive'] = 'inactive',
['archived-dead'] = 'Archived from $1 on $2',
['archived-not-dead'] = '$1 from the original on $2',
['archived-missing'] = 'Archived from the original$1 on $2',
['archived'] = 'Archived',
['archived'] = 'Archived',
['from'] = 'from',
['original'] = 'the original',
['original'] = 'the original',
['on'] = 'on',
['editor'] = 'ed.',
['editor'] = 'ed.',
['editors'] = 'eds.',
['editors'] = 'eds.',
['edition'] = 'ed.',
['edition'] = '($1 ed.)',
['episode'] = 'episode',
['episode'] = 'episode',
['season'] = 'season',
['season'] = 'season',
['series'] = 'series',
['series'] = 'series',
['written'] = 'Written at',
['written'] = 'Written at $1',
['et al'] = 'et al.',
['et al'] = 'et al.',
['subscription'] = '<span style="font-size:0.95em; font-size:90%; color:#555">(subscription required)</span>',
['subscription'] = '<span style="font-size:0.95em; font-size:90%; color:#555">(subscription required)</span>',
['in'] = 'in',
['language'] = '(in $1)',
['via'] = 'via',
['via'] = " &mdash; via $1",
['event'] = 'Event occurs at',
['event'] = 'Event occurs at',
['minutes'] = 'minutes in',
['minutes'] = 'minutes in',

['trans-title'] = "&#91;$1&#93;",
['quoted-title'] = '"$1"',
['italic-title'] = "''$1''",
['quoted-text'] = '"$1"',
-- Error output
['hidden-error'] = '<span style="display:none;font-size:100%" class="error citation-comment">$1</span>',
['visible-error'] = '<span style="font-size:100%" class="error citation-comment">$1</span>',
-- Determines the location of the help page
-- Determines the location of the help page
Line 39: Line 49:
['undefined_error'] = 'Called with an undefined error condition',
['undefined_error'] = 'Called with an undefined error condition',
['unknown_manual_ID'] = 'Unrecognized manual ID mode',
['unknown_manual_ID'] = 'Unrecognized manual ID mode',
['unknown_ID_mode'] = 'Unrecognized ID mode'
['unknown_ID_mode'] = 'Unrecognized ID mode',
['unknown_argument_map'] = 'Argument map not defined for this variable'
}

--[[
Argument map table
]]
citation_config.argument_map = {
['AccessDate'] = 'accessdate',
['Agency'] = 'agency',
['AirDate'] = 'airdate',
['ArchiveDate'] = {'archive-date', 'archivedate' },
['ArchiveURL'] = {'archive-url', 'archiveurl' },
['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
['At'] = 'at',
['Authors'] = 'authors',
['AuthorFormat'] = {"author-format", "authorformat" },
['AuthorSeparator'] = 'author-separator',
['AuthorNameSeparator'] = 'author-name-separator',
['BookTitle'] = 'booktitle',
['Chapter'] = {'chapter', 'contribution', 'entry', 'article' },
['ChapterLink'] = 'chapterlink',
['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl' },
['Coauthors'] = {'coauthors', 'coauthor' },
['Conference'] = 'conference',
['ConferenceURL'] = {'conference-url', 'conferenceurl' },
['Date'] = 'date',
['Day'] = 'day',
['DeadURL'] = 'deadurl',
['DisplayAuthors'] = {"display-authors", "displayauthors"},
['DisplayEditors'] = {"display-editors", "displayeditors"},
['DoiBroken'] = {'doi_inactivedate', 'doi_brokendate', 'DoiBroken'},
['Edition'] = 'edition',
['Editors'] = 'editors',
['EditorFormat'] = {"editor-format", "editorformat" },
['EditorSeparator'] = 'editor-separator',
['EditorNameSeparator'] = 'editor-name-separator',
['Embargo'] = {'Embargo', 'embargo'},
['Format'] = 'format',
['ID'] = {'id', 'ID', 'docket'},
['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
['Issue'] = {'issue', 'number'},
['Language'] = {'language', 'in'},
['LastAuthorAmp'] = 'lastauthoramp',
['LayDate'] = 'laydate',
['LaySource'] = 'laysource',
['LaySummary'] = 'laysummary',
['Minutes'] = 'minutes',
['Month'] = 'month',
['NameSeparator'] = 'name-separator',
['Network'] = 'network',
['NoPP'] = 'nopp',
['NoTracking'] = {"template doc demo", 'nocat',
'notracking', "no-tracking"},
['OrigYear'] = 'origyear',
['Others'] = 'others',
['Page'] = {'p', 'page'},
['Pages'] = {'pp', 'pages'},
['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
'website', 'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary'},
['Place'] = {'place', 'location'},
['PPrefix'] = 'PPrefix',
['PPPrefix'] = 'PPPrefix',
['PostScript'] = 'postscript',
['PublicationDate'] = {'publicationdate', 'publication-date' },
['PublicationPlace'] = {'publication-place', 'publicationplace' },
['PublisherName'] = 'publisher',
['Quote'] = {'quote', 'quotation'},
['Ref'] = {'ref', 'Ref'},
['Season'] = 'season',
['Separator'] = 'separator',
['Series'] = {'series', 'version'},
['SeriesSeparator'] = 'series-separator',
['SeriesLink'] = 'serieslink',
['SeriesNumber'] = {'seriesnumber', 'seriesno'},
['Station'] = 'station',
['SubscriptionRequired'] = 'subscription',
['Time'] = 'time',
['TimeCaption'] = 'timecaption',
['Title'] = 'title',
['TitleLink'] = {'titlelink', 'episodelink' },
['TitleNote'] = 'department',
['TitleType'] = 'type',
['TransChapter'] = {'trans-chapter', 'trans_chapter' },
['Transcript'] = 'transcript',
['TranscriptURL'] = {'transcript-url', 'transcripturl'},
['TransTitle'] = {'trans-title', 'trans_title' },
['URL'] = {'url', 'URL'},
['Via'] = 'via',
['Volume'] = 'volume',
['Year'] = 'year',

['AuthorList-First'] = {"author#-first", "author-first#",
"first#", "given#"},
['AuthorList-Last'] = {"author#-last", "author-last#",
"last#", "surname#", "Author#", "author#", "authors#"},
['AuthorList-Link'] = {"author#-link", "author-link#",
"author#link", "authorlink#"},
['AuthorList-Mask'] = {"author#-mask", "author-mask#",
"author#mask", "authormask#"},
['EditorList-First'] = {"editor#-first",
"editor-first#", "EditorGiven#"},
['EditorList-Last'] = {"editor#-last", "editor-last#",
"EditorSurname#", "Editor#", "editor#", "editors#"},
['EditorList-Link'] = {"editor#-link", "editor-link#",
"editor#link", "editorlink#"},
['EditorList-Mask'] = {"editor#-mask", "editor-mask#",
"editor#mask", "editormask#"},
}

--[[
Default parameter values
]]
citation_config.default_values = {
['DeadURL'] = 'yes',
['PostScript'] = '.',
['Separator'] = '.',
['AuthorSeparator'] = ';',
['EditorSeparator'] = ';',
['NameSeparator'] = ',',
['PPrefix'] = "p.&nbsp;",
['PPPrefix'] = "pp.&nbsp;",
}
}


Line 52: Line 185:
]]
]]


data.error_conditions = {
citation_config.error_conditions = {
accessdate_missing_url = {
accessdate_missing_url = {
message = '<code>|accessdate=</code> requires <code>|url=</code>',
message = '<code>|accessdate=</code> requires <code>|url=</code>',
Line 66: Line 199:
message = '<code>|archiveurl=</code> requires <code>|url=</code>',
message = '<code>|archiveurl=</code> requires <code>|url=</code>',
anchor = 'archive_missing_url',
anchor = 'archive_missing_url',
category = 'Pages with archiveurl citation errors‎',
hidden = false },
archive_missing_url_web = {
message = '<code>|archiveurl=</code> requires <code>|url=</code>',
anchor = 'archive_missing_url',
category = 'Pages with archiveurl cite web errors‎',
hidden = true },
archive_missing_url_not_dead = {
message = '<code>|archiveurl=</code> and <code>|deadurl=no</code> requires <code>|url=</code>',
anchor = 'archive_missing_url_not_dead',
category = 'Pages with archiveurl citation errors‎',
category = 'Pages with archiveurl citation errors‎',
hidden = false },
hidden = false },
Line 180: Line 303:
}
}


data.id_handlers = {
citation_config.id_handlers = {
['ASIN'] = {
['ASIN'] = {
parameters = { 'asin', 'ASIN' },
parameters = { 'asin', 'ASIN' },
Line 361: Line 484:
}
}


return data;
return citation_config;

Revision as of 00:53, 17 April 2013

citation_config = {};

--[[
Translation table

The following contains fixed text that may be output as part of a citation.
This is separated from the main body to aid in future translations of this
module.
]]

citation_config.message_list = {
  ['published'] = 'published $1',
  ['lay summary'] = 'Lay summary',
  ['retrieved'] = 'Retrieved $1',
  ['inactive'] = 'inactive',
  ['archived-dead'] = 'Archived from $1 on $2',
  ['archived-not-dead'] = '$1 from the original on $2',
  ['archived-missing'] = 'Archived from the original$1 on $2',
  ['archived'] = 'Archived',
  ['original'] = 'the original',
  ['editor'] = 'ed.',
  ['editors'] = 'eds.', 
  ['edition'] = '($1 ed.)', 
  ['episode'] = 'episode',
  ['season'] = 'season', 
  ['series'] = 'series',
  ['written'] = 'Written at $1',
  ['et al'] = 'et al.', 
  ['subscription'] = '<span style="font-size:0.95em; font-size:90%; color:#555">(subscription required)</span>', 
  ['language'] = '(in $1)', 
  ['via'] = " &mdash; via $1",
  ['event'] = 'Event occurs at',
  ['minutes'] = 'minutes in', 

  ['trans-title'] = "&#91;$1&#93;",
  ['quoted-title'] = '"$1"',
  ['italic-title'] = "''$1''",
  ['quoted-text'] = '"$1"',
  
  -- Error output
  ['hidden-error'] = '<span style="display:none;font-size:100%" class="error citation-comment">$1</span>',
  ['visible-error'] = '<span style="font-size:100%" class="error citation-comment">$1</span>',
  
  -- Determines the location of the help page
  ['help page link'] = 'Help:CS1 errors',
  ['help page label'] = 'help',
  
  -- Internal errors (should only occur if configuration is bad)
  ['undefined_error'] = 'Called with an undefined error condition',
  ['unknown_manual_ID'] = 'Unrecognized manual ID mode',
  ['unknown_ID_mode'] = 'Unrecognized ID mode',
  ['unknown_argument_map'] = 'Argument map not defined for this variable'
}

--[[
Argument map table
]]
citation_config.argument_map = {
    ['AccessDate'] = 'accessdate',
    ['Agency'] = 'agency',
    ['AirDate'] = 'airdate',
    ['ArchiveDate'] = {'archive-date', 'archivedate' },
    ['ArchiveURL'] = {'archive-url', 'archiveurl' },
    ['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
    ['At'] = 'at',
    ['Authors'] = 'authors',
    ['AuthorFormat'] = {"author-format", "authorformat" },
    ['AuthorSeparator'] = 'author-separator',
    ['AuthorNameSeparator'] = 'author-name-separator',
    ['BookTitle'] = 'booktitle',
    ['Chapter'] = {'chapter', 'contribution', 'entry', 'article' },
    ['ChapterLink'] = 'chapterlink',
    ['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl' },
    ['Coauthors'] = {'coauthors', 'coauthor' },
    ['Conference'] = 'conference',
    ['ConferenceURL'] = {'conference-url', 'conferenceurl' },
    ['Date'] = 'date',
    ['Day'] = 'day',
    ['DeadURL'] = 'deadurl',
    ['DisplayAuthors'] = {"display-authors", "displayauthors"},
    ['DisplayEditors'] = {"display-editors", "displayeditors"},
    ['DoiBroken'] = {'doi_inactivedate', 'doi_brokendate', 'DoiBroken'},
    ['Edition'] = 'edition',
    ['Editors'] = 'editors',
    ['EditorFormat'] = {"editor-format", "editorformat" },
    ['EditorSeparator'] = 'editor-separator',
    ['EditorNameSeparator'] = 'editor-name-separator',
    ['Embargo'] = {'Embargo', 'embargo'},
    ['Format'] = 'format',
    ['ID'] = {'id', 'ID', 'docket'},
    ['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
    ['Issue'] = {'issue', 'number'},
    ['Language'] = {'language', 'in'},
    ['LastAuthorAmp'] = 'lastauthoramp',
    ['LayDate'] = 'laydate',
    ['LaySource'] = 'laysource',
    ['LaySummary'] = 'laysummary',
    ['Minutes'] = 'minutes',
    ['Month'] = 'month',
    ['NameSeparator'] = 'name-separator',
    ['Network'] = 'network',
    ['NoPP'] = 'nopp',
    ['NoTracking'] = {"template doc demo", 'nocat', 
        'notracking', "no-tracking"},
    ['OrigYear'] = 'origyear',
    ['Others'] = 'others',
    ['Page'] = {'p', 'page'},
    ['Pages'] = {'pp', 'pages'},
    ['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
        'website',  'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary'},
    ['Place'] = {'place', 'location'},
    ['PPrefix'] = 'PPrefix',
    ['PPPrefix'] = 'PPPrefix',
    ['PostScript'] = 'postscript',
    ['PublicationDate'] = {'publicationdate', 'publication-date' },
    ['PublicationPlace'] = {'publication-place', 'publicationplace' },
    ['PublisherName'] = 'publisher',
    ['Quote'] = {'quote', 'quotation'},
    ['Ref'] = {'ref', 'Ref'},
    ['Season'] = 'season',
    ['Separator'] = 'separator',
    ['Series'] = {'series', 'version'},
    ['SeriesSeparator'] = 'series-separator',
    ['SeriesLink'] = 'serieslink',
    ['SeriesNumber'] = {'seriesnumber', 'seriesno'},
    ['Station'] = 'station',
    ['SubscriptionRequired'] = 'subscription',
    ['Time'] = 'time',
    ['TimeCaption'] = 'timecaption',
    ['Title'] = 'title',
    ['TitleLink'] = {'titlelink', 'episodelink' },
    ['TitleNote'] = 'department',
    ['TitleType'] = 'type',
    ['TransChapter'] = {'trans-chapter', 'trans_chapter' },
    ['Transcript'] = 'transcript',
    ['TranscriptURL'] = {'transcript-url', 'transcripturl'},
    ['TransTitle'] = {'trans-title', 'trans_title' },
    ['URL'] = {'url', 'URL'},
    ['Via'] = 'via',
    ['Volume'] = 'volume',
    ['Year'] = 'year',

    ['AuthorList-First'] = {"author#-first", "author-first#",
        "first#", "given#"},
    ['AuthorList-Last'] = {"author#-last", "author-last#", 
        "last#", "surname#", "Author#", "author#", "authors#"},
    ['AuthorList-Link'] = {"author#-link", "author-link#", 
        "author#link", "authorlink#"},
    ['AuthorList-Mask'] = {"author#-mask", "author-mask#", 
        "author#mask", "authormask#"},
    
    ['EditorList-First'] = {"editor#-first", 
        "editor-first#", "EditorGiven#"},
    ['EditorList-Last'] = {"editor#-last", "editor-last#",
        "EditorSurname#", "Editor#", "editor#", "editors#"},
    ['EditorList-Link'] = {"editor#-link", "editor-link#", 
        "editor#link", "editorlink#"},
    ['EditorList-Mask'] = {"editor#-mask", "editor-mask#", 
        "editor#mask", "editormask#"},
    
}

--[[
Default parameter values
]]
citation_config.default_values = {
    ['DeadURL'] = 'yes',
    ['PostScript'] = '.',
    ['Separator'] = '.',
    ['AuthorSeparator'] = ';',
    ['EditorSeparator'] = ';',
    ['NameSeparator'] = ',',
    ['PPrefix'] = "p.&nbsp;",
    ['PPPrefix'] = "pp.&nbsp;",    
}

--[[
Error condition table

The following contains a list of IDs for various error conditions defined in the 
code.  For each ID, we specify a text message to display, an error category to
include, and whether the error message should be wrapped as a hidden comment.

Anchor changes require identical changes to matching anchor in Help:CS1 errors
]]

citation_config.error_conditions = {
    accessdate_missing_url = {
        message = '<code>|accessdate=</code> requires <code>|url=</code>',
        anchor = 'accessdate_missing_url',
        category = 'Pages using citations with accessdate and no URL',
        hidden = true },
    archive_missing_date = {
        message = '<code>|archiveurl=</code> requires <code>|archivedate=</code>',
        anchor = 'archive_missing_date',
        category = 'Pages with archiveurl citation errors‎',
        hidden = false },
    archive_missing_url = {
        message = '<code>|archiveurl=</code> requires <code>|url=</code>',
        anchor = 'archive_missing_url',
        category = 'Pages with archiveurl citation errors‎',
        hidden = false },
    bad_doi = {
        message = 'Check <code>|doi=</code> value',
        anchor = 'bad_doi',
        category = 'Pages with DOI errors',
        hidden = false },
    bad_isbn = {
        message = 'Check <code>|isbn=</code> value',
        anchor = 'bad_isbn',
        category = 'Pages with ISBN errors',
        hidden = false },
    bad_ol = {
        message = 'Check <code>|ol=</code> value',
        anchor = 'bad_ol',
        category = 'Pages with OL errors',
        hidden = false },
    bad_url = {
        message = 'Check <code>|url=</code> scheme',
        anchor = 'bad_url',
        category = 'Pages with URL errors',
        hidden = true },
    bare_url_missing_title = {
        message = 'Missing or empty <code>|title=</code>',
        anchor = 'bare_url_missing_title',
        category = 'Pages with citations having bare URLs‎',
        hidden = true },
    citation_missing_title = {
        message = 'Missing or empty <code>|title=</code>',
        anchor = 'citation_missing_title',
        category = 'Pages with citations lacking titles‎',
        hidden = true },
    cite_web_title = {
        message = 'Missing or empty <code>|title=</code>',
        anchor = 'cite_web_title',
        category = '‎Pages using web citations with no title',
        hidden = false },
    cite_web_url = {
        message = 'Missing or empty <code>|url=</code>',
        anchor = 'cite_web_url',
        category = 'Pages using web citations with no URL‎',
        hidden = true },
    empty_citation = {
        message = 'Empty citation‎',
        anchor = 'empty_citation',
        category = 'Pages with empty citations‎',
        hidden = false },
    extra_pages = {
        message = 'Extra <code>|pages=</code> or <code>|at=</code>',
        anchor = 'extra_pages',
        category = 'Pages with citations using conflicting page specifications‎',
        hidden = false },
    format_missing_url = {
        message = '<code>|format=</code> requires <code>|url=</code>',
        anchor = 'format_missing_url',
        category = 'Pages using citations with format and no URL‎',
        hidden = true },
    implict_etal_author = {
        message = '<code>|displayauthors=</code> suggested',
        anchor = 'displayauthors',
        category = 'Pages using citations with old-style implicit et al.‎',
        hidden = true },
    implict_etal_editor = {
        message = '<code>|displayeditors=</code> suggested',
        anchor = 'displayeditors',
        category = 'Pages using citations with old-style implicit et al.‎',
        hidden = true },
    parameter_ignored = {
        message = 'Unknown parameter <code>|$1=</code> ignored',
        anchor = 'parameter_ignored',
        category = 'Pages with citations using unsupported parameters',
        hidden = false },
    parameter_ignored_suggest = {
        message = 'Unknown parameter <code>|$1=</code> ignored (<code>|$2=</code> suggested)',
        anchor = 'parameter_ignored_suggest',
        category = 'Pages with citations using unsupported parameters',
        hidden = false },
    redundant_parameters = {
        message = 'More than one of $1 specified',
        anchor = 'redundant_parameters',
        category = 'Pages with citations having redundant parameters',
        hidden = false },
    text_ignored = {
        message = 'Text "$1" ignored',
        anchor = 'text_ignored',
        category = 'Pages with citations using unnamed parameters',
        hidden = false },
    trans_missing_chapter = {
        message = 'Missing or empty <code>|chapter=</code>',
        anchor = 'trans_missing_chapter',
        category = 'Pages with citations using translated terms without the original',
        hidden = true },
    trans_missing_title = {
        message = 'Missing or empty <code>|title=</code>',
        anchor = 'trans_missing_title',
        category = 'Pages with citations using translated terms without the original',
        hidden = true },
    wikilink_in_url = {
        message = 'Wikilink embedded in URL title',
        anchor = 'wikilink_in_url',
        category = 'Pages with citations having wikilinks embedded in URL titles',
        hidden = false },
}

citation_config.id_handlers = {
    ['ASIN'] = {
        parameters = { 'asin', 'ASIN' },       
        link = 'Amazon Standard Identification Number',
        label = 'ASIN',
        mode = 'manual',
        COinS = 'info:asin',
        separator = '&nbsp;',
        encode = false;
    },
    ['DOI'] = {
        parameters = { 'doi', 'DOI' },
        link = 'Digital object identifier',
        label = 'doi',
        mode = 'manual',
        prefix = 'http://dx.doi.org/',
        COinS = 'info:doi',
        separator = ':',
        encode = true,
    },
    ['OL'] = {
        parameters = { 'ol', 'OL' },
        link = 'Open Library',
        label = 'OL',
        mode = 'manual',
        COinS = 'info:olnum',
        separator = '&nbsp;',
        endode = true,
    },
    ['ARXIV'] = {
        parameters = {'arxiv', 'ARXIV'}, 
        link = 'arXiv',
        label = 'arXiv',
        mode = 'external',
        prefix = 'http://arxiv.org/abs/',
        encode = false,
        COinS = 'info:arxiv',
        separator = ':',
    },
    ['BIBCODE'] = {
        parameters = {'bibcode', 'BIBCODE'}, 
        link = 'Bibcode',
        label = 'Bibcode',
        mode = 'external',
        prefix = 'http://adsabs.harvard.edu/abs/',
        encode = false,
        COinS = 'info:bibcode',
        separator = ':',
    },
    ['ISBN'] = {
        parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'}, 
        link = 'International Standard Book Number',
        label = 'ISBN',
        mode = 'manual',
        prefix = 'Special:BookSources/',
        COinS = 'rft.isbn',
        separator = '&nbsp;',
    },
    ['ISSN'] = {
        parameters = {'issn', 'ISSN'}, 
        link = 'International Standard Serial Number',
        label = 'ISSN',
        mode = 'external',
        prefix = '//www.worldcat.org/issn/',
        COinS = 'rft.issn',
        encode = false,
        separator = '&nbsp;',
    },
    ['JFM'] = {
        parameters = {'jfm', 'JFM'}, 
        link = 'Jahrbuch über die Fortschritte der Mathematik',
        label = 'JFM',
        mode = 'external',
        prefix = 'http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:',
        COinS = 'rft.jfm',
        encode = true,
        separator = '&nbsp;',
    },
    ['JSTOR'] = {
        parameters = {'jstor', 'JSTOR'}, 
        link = 'JSTOR',
        label = 'JSTOR',
        mode = 'external',
        prefix = 'http://www.jstor.org/stable/',
        COinS = 'rft.jstor',
        encode = true,
        separator = '&nbsp;',
    },
    ['LCCN'] = {
        parameters = {'LCCN', 'lccn'}, 
        link = 'Library of Congress Control Number',
        label = 'LCCN',
        mode = 'external',
        prefix = 'http://lccn.loc.gov/',
        COinS = 'rft.lccn',
        encode = false,
        separator = '&nbsp;',
    },
    ['MR'] = {
        parameters = {'MR', 'mr'}, 
        link = 'Mathematical Reviews',
        label = 'MR',
        mode = 'external',
        prefix = 'http://www.ams.org/mathscinet-getitem?mr=',
        COinS = 'rft.mr',
        encode = true,
        separator = '&nbsp;',
    },
    ['OCLC'] = {
        parameters = {'OCLC', 'oclc'}, 
        link = 'OCLC',
        label = 'OCLC',
        mode = 'external',
        prefix = '//www.worldcat.org/oclc/',
        COinS = 'info:oclcnum',
        encode = true,
        separator = '&nbsp;',
    },
    ['OSTI'] = {
        parameters = {'OSTI', 'osti'}, 
        link = 'Office of Scientific and Technical Information',
        label = 'OSTI',
        mode = 'external',
        prefix = 'http://www.osti.gov/energycitations/product.biblio.jsp?osti_id=',
        COinS = 'info:osti',
        encode = true,
        separator = '&nbsp;',
    },
    ['PMC'] = {
        parameters = {'PMC', 'pmc'}, 
        link = 'PubMed Central',
        label = 'PMC',
        mode = 'external',
        prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',
        suffix = " ",
        COinS = 'info:pmc',
        encode = true,
        separator = '&nbsp;',
    },
    ['PMID'] = {
        parameters = {'PMID', 'pmid'}, 
        link = 'PubMed Identifier',
        label = 'PMID',
        mode = 'external',
        prefix = '//www.ncbi.nlm.nih.gov/pubmed/',
        COinS = 'info:pmid',
        encode = false,
        separator = '&nbsp;',
    },
    ['RFC'] = {
        parameters = {'RFC', 'rfc'}, 
        link = 'Request for Comments',
        label = 'RFC',
        mode = 'external',
        prefix = '//tools.ietf.org/html/rfc',
        COinS = 'info:rfc',
        encode = false,
        separator = '&nbsp;',
    },
    ['SSRN'] = {
        parameters = {'SSRN', 'ssrn'}, 
        link = 'Social Science Research Network',
        label = 'SSRN',
        mode = 'external',
        prefix = 'http://ssrn.com/abstract=',
        COinS = 'info:ssrn',
        encode = true,
        separator = '&nbsp;',
    },
    ['ZBL'] = {
        parameters = {'ZBL', 'zbl'}, 
        link = 'Zentralblatt MATH',
        label = 'Zbl',
        mode = 'external',
        prefix = 'http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:',
        COinS = 'info:zbl',
        encode = true,
        separator = '&nbsp;',
    }
}

return citation_config;