Module:Citation/CS1/Configuration: Difference between revisions

    From Nonbinary Wiki
    m>Trappist the monk
    (Synch from sandbox;)
    m>Trappist the monk
    (Synch from sandbox;)
    Line 1: Line 1:
    citation_config = {};
    citation_config = {};
    -- override <code>...</code> styling to remove color, border, and padding.  <code> css is specified here:
    -- https://git.wikimedia.org/blob/mediawiki%2Fcore.git/69cd73811f7aadd093050dbf20ed70ef0b42a713/skins%2Fcommon%2FcommonElements.css#L199
    local code_style="color:inherit; border:inherit; padding:inherit;";


    --[[
    --[[
    Line 58: Line 62:
       ['quoted-text'] = '"$1"',
       ['quoted-text'] = '"$1"',


       ['parameter'] = '<code>&#124;$1=</code>',
       ['parameter'] = '<code style="'..code_style..'">&#124;$1=</code>',
       ['parameter-separator'] = ', ',
       ['parameter-separator'] = ', ',
       ['parameter-final-separator'] = ', and ',
       ['parameter-final-separator'] = ', and ',
    Line 64: Line 68:


       -- Error output
       -- Error output
      -- .error class is specified at https://git.wikimedia.org/blob/mediawiki%2Fcore.git/9553bd02a5595da05c184f7521721fb1b79b3935/skins%2Fcommon%2Fshared.css#L538
      -- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display
       ['hidden-error'] = '<span style="display:none;font-size:100%" class="error citation-comment">$1</span>',
       ['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>',
       ['visible-error'] = '<span style="font-size:100%" class="error citation-comment">$1</span>',
    Line 81: Line 87:
    -- Aliases table for commonly passed parameters
    -- Aliases table for commonly passed parameters
    citation_config.aliases = {
    citation_config.aliases = {
        ['AccessDate'] = 'accessdate',
    ['AccessDate'] = {'access-date', 'accessdate'},
        ['Agency'] = 'agency',
    ['Agency'] = 'agency',
        ['AirDate'] = 'airdate',
    ['AirDate'] = {'air-date', 'airdate'},
        ['ArchiveDate'] = {'archive-date', 'archivedate' },
    ['ArchiveDate'] = {'archive-date', 'archivedate'},
        ['ArchiveURL'] = {'archive-url', 'archiveurl' },
    ['ArchiveURL'] = {'archive-url', 'archiveurl'},
        ['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
    ['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
        ['At'] = 'at',
    ['At'] = 'at',
        ['Authors'] = {'authors', 'people', 'host'},
    ['Authors'] = {'authors', 'people', 'host'},
        ['AuthorFormat'] = {"author-format", "authorformat" },
    ['AuthorFormat'] = {'author-format', 'authorformat'},
        ['AuthorSeparator'] = 'author-separator',
    ['AuthorSeparator'] = 'author-separator',
        ['AuthorNameSeparator'] = 'author-name-separator',
    ['AuthorNameSeparator'] = 'author-name-separator',
        ['BookTitle'] = 'booktitle',
    ['BookTitle'] = {'book-title', 'booktitle'},
    ['Callsign'] = 'callsign', -- cite interview
    ['Callsign'] = {'call-sign', 'callsign'}, -- cite interview
        ['Cartography'] = 'cartography',
    ['Cartography'] = 'cartography',
        ['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'notestitle'}, -- notestitle is deprecated used by old cite AV media notes; remove after 1 October 2014;
    ['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'notestitle'}, -- notestitle is deprecated; remove after 1 October 2014; used by old cite AV media notes
        ['ChapterLink'] = 'chapterlink',
    ['ChapterLink'] = {'chapter-link', 'chapterlink'},
        ['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'sectionurl' },
    ['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'section-url', 'sectionurl'},
    ['City'] = 'city', -- cite interview
    ['City'] = 'city', -- cite interview
        ['Coauthors'] = {'coauthors', 'coauthor' },
    ['Coauthors'] = {'coauthors', 'coauthor'}, -- coauthor and coauthors are deprecated; remove after 1 October 2014
        ['Cointerviewers'] = 'cointerviewers', -- cite interview
    ['Cointerviewers'] = 'cointerviewers', -- cointerviewers is deprecated; remove after 1 October 2014; used by cite interview
        ['Conference'] = {'conference', 'event' },
    ['Conference'] = {'conference', 'event'},
        ['ConferenceURL'] = {'conference-url', 'conferenceurl', 'eventurl' },
    ['ConferenceURL'] = {'conference-url', 'conferenceurl', 'event-url', 'eventurl'},
        ['Date'] = 'date',
    ['Date'] = 'date',
        ['Day'] = 'day',
    ['Day'] = 'day',
        ['DeadURL'] = 'deadurl',
    ['DeadURL'] = {'dead-url', 'deadurl'},
        ['Degree'] = 'degree',
    ['Degree'] = 'degree',
        ['DisplayAuthors'] = {"display-authors", "displayauthors"},
    ['DisplayAuthors'] = {'display-authors', 'displayauthors'},
        ['DisplayEditors'] = {"display-editors", "displayeditors"},
    ['DisplayEditors'] = {'display-editors', 'displayeditors'},
        ['Docket'] = 'docket',
    ['Docket'] = 'docket',
        ['DoiBroken'] = {'doi_inactivedate', 'doi_brokendate', 'DoiBroken'},
    ['DoiBroken'] = {'doi-broken', 'doi-broken-date', 'doi-inactive-date', 'DoiBroken', 'doi_brokendate', 'doi_inactivedate'},
        ['Edition'] = 'edition',
    ['Edition'] = 'edition',
        ['Editors'] = 'editors',
    ['Editors'] = 'editors',
        ['EditorFormat'] = {"editor-format", "editorformat" },
    ['EditorFormat'] = {'editor-format', 'editorformat'},
        ['EditorSeparator'] = 'editor-separator',
    ['EditorSeparator'] = 'editor-separator',
        ['EditorNameSeparator'] = 'editor-name-separator',
    ['EditorNameSeparator'] = 'editor-name-separator',
        ['Embargo'] = {'Embargo', 'embargo'},
    ['Embargo'] = {'Embargo', 'embargo'},
        ['Format'] = 'format',
    ['Format'] = 'format',
        ['ID'] = {'id', 'ID', 'publisherid'}, -- publisherid is deprecated; used by old cite AV media notes and old cite DVD notes; remove after 1 October 2014;
    ['ID'] = {'id', 'ID', 'publisherid'}, -- publisherid is deprecated; remove after 1 October 2014; used by old cite AV media notes and old cite DVD notes
        ['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
    ['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
        ['Inset'] = 'inset',
    ['Inset'] = 'inset',
        ['Interviewer'] = 'interviewer', -- cite interview
    ['Interviewer'] = 'interviewer', -- cite interview
        ['Issue'] = {'issue', 'number'},
    ['Issue'] = {'issue', 'number'},
        ['Language'] = {'language', 'in'},
    ['Language'] = {'language', 'in'},
        ['LastAuthorAmp'] = 'lastauthoramp',
    ['LastAuthorAmp'] = {'last-author-amp', 'lastauthoramp'},
        ['LayDate'] = 'laydate',
    ['LayDate'] = {'lay-date', 'laydate'},
        ['LaySource'] = 'laysource',
    ['LaySource'] = {'lay-source', 'laysource'},
        ['LayURL'] = {'layurl', 'laysummary'},
    ['LayURL'] = {'lay-url', 'lay-summary', 'layurl', 'laysummary'},
        ['Minutes'] = 'minutes',
    ['Minutes'] = 'minutes',
        ['Month'] = 'month',
    ['Month'] = 'month',
        ['NameSeparator'] = 'name-separator',
    ['NameSeparator'] = 'name-separator',
        ['Network'] = 'network',
    ['Network'] = 'network',
        ['NoPP'] = 'nopp',
    ['NoPP'] = {'no-pp', 'nopp'},
        ['NoTracking'] = {"template doc demo", 'nocat',  
    ['NoTracking'] = {'template-doc-demo', 'template doc demo', 'no-cat', 'nocat',  
            'notracking', "no-tracking"},
    'no-tracking', 'notracking'},
        ['OrigYear'] = {'origyear', 'titleyear'}, -- titleyear is deprecated; used in old cite DVD notes; remove after 1 October 2014
    ['OrigYear'] = {'orig-year', 'origyear', 'titleyear'}, -- titleyear is deprecated; remove after 1 October 2014; used in old cite DVD notes
        ['Others'] = {'others', 'artist', 'director'}, -- artist and director are deprecated; used in old cite AV media notes and old cite DVD notes; remove after 1 October 2014
    ['Others'] = {'others', 'artist', 'director'}, -- artist and director are deprecated; remove after 1 October 2014; used in old cite AV media notes and old cite DVD notes
        ['Page'] = {'p', 'page'},
    ['Page'] = {'p', 'page'},
        ['Pages'] = {'pp', 'pages'},
    ['Pages'] = {'pp', 'pages'},
        ['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
    ['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
            'website',  'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary'},
    'website',  'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary'},
        ['Place'] = {'place', 'location'},
    ['Place'] = {'place', 'location'},
        ['PPrefix'] = 'PPrefix',
    ['PPrefix'] = {'p-prefix', 'PPrefix'},
        ['PPPrefix'] = 'PPPrefix',
    ['PPPrefix'] = {'pp-prefix', 'PPPrefix'},
    ['Program'] = 'program', -- cite interview
    ['Program'] = 'program', -- cite interview
        ['PostScript'] = 'postscript',
    ['PostScript'] = 'postscript',
        ['PublicationDate'] = {'publicationdate', 'publication-date' },
    ['PublicationDate'] = {'publicationdate', 'publication-date'},
        ['PublicationPlace'] = {'publication-place', 'publicationplace' },
    ['PublicationPlace'] = {'publication-place', 'publicationplace'},
        ['PublisherName'] = {'publisher', 'distributor', 'institution'},
    --[[ Hide unfinished cite newsgroup code so that long delayed update can take place
        ['Quote'] = {'quote', 'quotation'},
    ['PublisherName'] = {'publisher', 'distributor', 'institution', 'newsgroup'},
        ['Ref'] = {'ref', 'Ref'},
    ]] ['PublisherName'] = {'publisher', 'distributor', 'institution'},
        ['RegistrationRequired'] = 'registration',
    ['Quote'] = {'quote', 'quotation'},
        ['Scale'] = 'scale',
    ['Ref'] = {'ref', 'Ref'},
        ['Section'] = 'section',
    ['RegistrationRequired'] = 'registration',
        ['Season'] = 'season',
    ['Scale'] = 'scale',
        ['Separator'] = 'separator',
    ['Section'] = 'section',
        ['Series'] = {'series', 'version'},
    ['Season'] = 'season',
        ['SeriesSeparator'] = 'series-separator',
    ['Separator'] = 'separator',
        ['SeriesLink'] = 'serieslink',
    ['Series'] = {'series', 'version'},
        ['SeriesNumber'] = {'seriesnumber', 'seriesno'},
    ['SeriesSeparator'] = 'series-separator',
        ['Station'] = 'station',
    ['SeriesLink'] = {'series-link', 'serieslink'},
        ['SubscriptionRequired'] = 'subscription',
    ['SeriesNumber'] = {'series-number', 'series-no', 'seriesnumber', 'seriesno'},
        ['Time'] = 'time',
    ['Station'] = 'station',
        ['TimeCaption'] = 'timecaption',
    ['SubscriptionRequired'] = 'subscription',
        ['Title'] = 'title',
    ['Time'] = 'time',
        ['TitleLink'] = {'titlelink', 'episodelink', 'albumlink' }, -- albumlink is deprecated; used by old cite AV media notes; remove after 1 October 2014
    ['TimeCaption'] = {'time-caption', 'timecaption'},
        ['TitleNote'] = 'department',
    ['Title'] = 'title',
        ['TitleType'] = {'type', 'medium'},
    ['TitleLink'] = {'title-link', 'episode-link', 'titlelink', 'episodelink', 'albumlink'}, -- albumlink is deprecated; remove after 1 October 2014; used by old cite AV media notes
        ['TransChapter'] = {'trans-chapter', 'trans_chapter' },
    ['TitleNote'] = 'department',
        ['Transcript'] = 'transcript',
    ['TitleType'] = {'type', 'medium'},
        ['TranscriptURL'] = {'transcript-url', 'transcripturl'},
    ['TransChapter'] = {'trans-chapter', 'trans_chapter'},
        ['TransTitle'] = {'trans-title', 'trans_title' },
    ['Transcript'] = 'transcript',
        ['URL'] = {'url', 'URL'},
    ['TranscriptURL'] = {'transcript-url', 'transcripturl'},
        ['Via'] = 'via',
    ['TransTitle'] = {'trans-title', 'trans_title'},
        ['Volume'] = 'volume',
    ['URL'] = {'url', 'URL'},
        ['Year'] = 'year',
    ['Via'] = 'via',
    ['Volume'] = 'volume',
    ['Year'] = 'year',


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


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


    Line 219: Line 227:
    citation_config.error_conditions = {
    citation_config.error_conditions = {
    accessdate_missing_url = {
    accessdate_missing_url = {
    message = '<code>&#124;accessdate=</code> requires <code>&#124;url=</code>',
    message = '<code style="'..code_style..'">&#124;accessdate=</code> requires <code style="'..code_style..'">&#124;url=</code>',
    anchor = 'accessdate_missing_url',
    anchor = 'accessdate_missing_url',
    category = 'Pages using citations with accessdate and no URL',
    category = 'Pages using citations with accessdate and no URL',
    hidden = true },
    hidden = true },
    archive_missing_date = {
    archive_missing_date = {
    message = '<code>&#124;archiveurl=</code> requires <code>&#124;archivedate=</code>',
    message = '<code style="'..code_style..'">&#124;archiveurl=</code> requires <code style="'..code_style..'">&#124;archivedate=</code>',
    anchor = 'archive_missing_date',
    anchor = 'archive_missing_date',
    category = 'Pages with archiveurl citation errors',
    category = 'Pages with archiveurl citation errors',
    hidden = false },
    hidden = false },
    archive_missing_url = {
    archive_missing_url = {
    message = '<code>&#124;archiveurl=</code> requires <code>&#124;url=</code>',
    message = '<code style="'..code_style..'">&#124;archiveurl=</code> requires <code style="'..code_style..'">&#124;url=</code>',
    anchor = 'archive_missing_url',
    anchor = 'archive_missing_url',
    category = 'Pages with archiveurl citation errors',
    category = 'Pages with archiveurl citation errors',
    hidden = false },
    bad_arxiv = {
    message = 'Check <code style="'..code_style..'">&#124;arxiv=</code> value',
    anchor = 'bad_arxiv',
    category = 'CS1 errors: arXiv',
    hidden = false },
    hidden = false },
    bad_authorlink = {
    bad_authorlink = {
    message = 'Check <code>&#124;authorlink=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;authorlink=</code> value',
    anchor = 'bad_authorlink',
    anchor = 'bad_authorlink',
    category = 'CS1 errors: authorlink',
    category = 'CS1 errors: authorlink',
    hidden = false },
    hidden = false },
    bad_date = {
    bad_date = {
    message = 'Check date values in: <code>$1</code>',
    message = 'Check date values in: <code style="'..code_style..'">$1</code>',
    anchor = 'bad_date',
    anchor = 'bad_date',
    category = 'CS1 errors: dates',
    category = 'CS1 errors: dates',
    hidden = true },
    hidden = true },
    bad_doi = {
    bad_doi = {
    message = 'Check <code>&#124;doi=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;doi=</code> value',
    anchor = 'bad_doi',
    anchor = 'bad_doi',
    category = 'Pages with DOI errors',
    category = 'Pages with DOI errors',
    hidden = false },
    hidden = false },
    bad_isbn = {
    bad_isbn = {
    message = 'Check <code>&#124;isbn=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;isbn=</code> value',
    anchor = 'bad_isbn',
    anchor = 'bad_isbn',
    category = 'Pages with ISBN errors',
    category = 'Pages with ISBN errors',
    hidden = false },
    hidden = false },
    bad_issn = {
    bad_issn = {
    message = 'Check <code>&#124;issn=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;issn=</code> value',
    anchor = 'bad_issn',
    anchor = 'bad_issn',
    category = 'CS1 errors: ISSN',
    category = 'CS1 errors: ISSN',
    hidden = false },
    hidden = false },
    bad_lccn = {
    bad_lccn = {
    message = 'Check <code>&#124;lccn=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;lccn=</code> value',
    anchor = 'bad_lccn',
    anchor = 'bad_lccn',
    category = 'CS1 errors: LCCN',
    category = 'CS1 errors: LCCN',
    hidden = false },
    hidden = false },
    bad_ol = {
    bad_ol = {
    message = 'Check <code>&#124;ol=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;ol=</code> value',
    anchor = 'bad_ol',
    anchor = 'bad_ol',
    category = 'Pages with OL errors',
    category = 'Pages with OL errors',
    hidden = false },
    hidden = false },
    bad_pmc = {
    bad_pmc = {
    message = 'Check <code>&#124;pmc=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;pmc=</code> value',
    anchor = 'bad_pmc',
    anchor = 'bad_pmc',
    category = 'CS1 errors: PMC',
    category = 'CS1 errors: PMC',
    hidden = false },
    hidden = false },
    bad_pmid = {
    bad_pmid = {
    message = 'Check <code>&#124;pmid=</code> value',
    message = 'Check <code style="'..code_style..'">&#124;pmid=</code> value',
    anchor = 'bad_pmid',
    anchor = 'bad_pmid',
    category = 'CS1 errors: PMID',
    category = 'CS1 errors: PMID',
    hidden = false },
    hidden = false },
    bad_url = {
    bad_url = {
    message = 'Check <code>&#124;url=</code> scheme',
    message = 'Check <code style="'..code_style..'">&#124;url=</code> scheme',
    anchor = 'bad_url',
    anchor = 'bad_url',
    category = 'Pages with URL errors',
    category = 'Pages with URL errors',
    Line 289: Line 302:
    hidden = false },
    hidden = false },
    citation_missing_title = {
    citation_missing_title = {
    message = 'Missing or empty <code>&#124;title=</code>',
    message = 'Missing or empty <code style="'..code_style..'">&#124;title=</code>',
    anchor = 'citation_missing_title',
    anchor = 'citation_missing_title',
    category = 'Pages with citations lacking titles',
    category = 'Pages with citations lacking titles',
    hidden = false },
    hidden = false },
    cite_web_url = { -- this error applies to cite web and to cite podcast
    cite_web_url = { -- this error applies to cite web and to cite podcast
    message = 'Missing or empty <code>&#124;url=</code>',
    message = 'Missing or empty <code style="'..code_style..'">&#124;url=</code>',
    anchor = 'cite_web_url',
    anchor = 'cite_web_url',
    category = 'Pages using web citations with no URL',
    category = 'Pages using web citations with no URL',
    hidden = true },
    hidden = true },
    coauthors_missing_author = {
    coauthors_missing_author = {
    message = '<code>&#124;coauthors=</code> requires <code>&#124;author=</code>',
    message = '<code style="'..code_style..'">&#124;coauthors=</code> requires <code style="'..code_style..'">&#124;author=</code>',
    anchor = 'coauthors_missing_author',
    anchor = 'coauthors_missing_author',
    category = 'CS1 errors: coauthors without author',
    category = 'CS1 errors: coauthors without author',
    Line 314: Line 327:
    hidden = false },
    hidden = false },
    extra_pages = {
    extra_pages = {
    message = 'Extra <code>&#124;pages=</code> or <code>&#124;at=</code>',
    message = 'Extra <code style="'..code_style..'">&#124;pages=</code> or <code style="'..code_style..'">&#124;at=</code>',
    anchor = 'extra_pages',
    anchor = 'extra_pages',
    category = 'Pages with citations using conflicting page specifications',
    category = 'Pages with citations using conflicting page specifications',
    hidden = false },
    first_missing_last = {
    message = '<code style="'..code_style..'">&#124;first$2=</code> missing <code style="'..code_style..'">&#124;last$2=</code> in $1',
    anchor = 'first_missing_last',
    category = 'CS1 errors: missing author or editor',
    hidden = false },
    hidden = false },
    format_missing_url = {
    format_missing_url = {
    message = '<code>&#124;format=</code> requires <code>&#124;url=</code>',
    message = '<code style="'..code_style..'">&#124;format=</code> requires <code style="'..code_style..'">&#124;url=</code>',
    anchor = 'format_missing_url',
    anchor = 'format_missing_url',
    category = 'Pages using citations with format and no URL',
    category = 'Pages using citations with format and no URL',
    hidden = true },
    hidden = true },
    implict_etal_author = {
    implict_etal_author = {
    message = '<code>&#124;displayauthors=</code> suggested',
    message = '<code style="'..code_style..'">&#124;displayauthors=</code> suggested',
    anchor = 'displayauthors',
    anchor = 'displayauthors',
    category = 'Pages using citations with old-style implicit et al.',
    category = 'Pages using citations with old-style implicit et al.',
    hidden = true },
    hidden = true },
    implict_etal_editor = {
    implict_etal_editor = {
    message = '<code>&#124;displayeditors=</code> suggested',
    message = '<code style="'..code_style..'">&#124;displayeditors=</code> suggested',
    anchor = 'displayeditors',
    anchor = 'displayeditors',
    category = 'Pages using citations with old-style implicit et al. in editors',
    category = 'Pages using citations with old-style implicit et al. in editors',
    hidden = true },
    hidden = true },
    missing_name = {
    message = 'Missing <code style="'..code_style..'">&#124;last$2=</code> in $1',
    anchor = 'missing_name',
    category = 'CS1 errors: missing author or editor',
    hidden = false },
    parameter_ignored = {
    parameter_ignored = {
    message = 'Unknown parameter <code>&#124;$1=</code> ignored',
    message = 'Unknown parameter <code style="'..code_style..'">&#124;$1=</code> ignored',
    anchor = 'parameter_ignored',
    anchor = 'parameter_ignored',
    category = 'Pages with citations using unsupported parameters',
    category = 'Pages with citations using unsupported parameters',
    hidden = false },
    hidden = false },
    parameter_ignored_suggest = {
    parameter_ignored_suggest = {
    message = 'Unknown parameter <code>&#124;$1=</code> ignored (<code>&#124;$2=</code> suggested)',
    message = 'Unknown parameter <code style="'..code_style..'">&#124;$1=</code> ignored (<code style="'..code_style..'">&#124;$2=</code> suggested)',
    anchor = 'parameter_ignored_suggest',
    anchor = 'parameter_ignored_suggest',
    category = 'Pages with citations using unsupported parameters',
    category = 'Pages with citations using unsupported parameters',
    Line 354: Line 377:
    hidden = false },
    hidden = false },
    trans_missing_chapter = {
    trans_missing_chapter = {
    message = '<code>&#124;trans_chapter=</code> requires <code>&#124;chapter=</code>',
    message = '<code style="'..code_style..'">&#124;trans_chapter=</code> requires <code style="'..code_style..'">&#124;chapter=</code>',
    anchor = 'trans_missing_chapter',
    anchor = 'trans_missing_chapter',
    category = 'Pages with citations using translated terms without the original',
    category = 'Pages with citations using translated terms without the original',
    hidden = false },
    hidden = false },
    trans_missing_title = {
    trans_missing_title = {
    message = '<code>&#124;trans_title=</code> requires <code>&#124;title=</code>',
    message = '<code style="'..code_style..'">&#124;trans_title=</code> requires <code style="'..code_style..'">&#124;title=</code>',
    anchor = 'trans_missing_title',
    anchor = 'trans_missing_title',
    category = 'Pages with citations using translated terms without the original',
    category = 'Pages with citations using translated terms without the original',
    Line 371: Line 394:


    citation_config.id_handlers = {
    citation_config.id_handlers = {
        ['ARXIV'] = {
    ['ARXIV'] = {
            parameters = {'arxiv', 'ARXIV'},  
    parameters = {'arxiv', 'ARXIV'},  
            link = 'arXiv',
    link = 'arXiv',
            label = 'arXiv',
    label = 'arXiv',
            mode = 'external',
    mode = 'manual',
            prefix = '//arxiv.org/abs/', -- protocol relative tested 2013-09-04
    prefix = '//arxiv.org/abs/', -- protocol relative tested 2013-09-04
            encode = false,
    encode = false,
            COinS = 'info:arxiv',
    COinS = 'info:arxiv',
            separator = ':',
    separator = ':',
        },
    },
        ['ASIN'] = {
    ['ASIN'] = {
            parameters = { 'asin', 'ASIN' },      
    parameters = { 'asin', 'ASIN' },  
            link = 'Amazon Standard Identification Number',
    link = 'Amazon Standard Identification Number',
            label = 'ASIN',
    label = 'ASIN',
            mode = 'manual',
    mode = 'manual',
            COinS = 'info:asin',
    COinS = 'info:asin',
            separator = '&nbsp;',
    separator = '&nbsp;',
            encode = false;
    encode = false;
        },
    },
        ['BIBCODE'] = {
    ['BIBCODE'] = {
            parameters = {'bibcode', 'BIBCODE'},  
    parameters = {'bibcode', 'BIBCODE'},  
            link = 'Bibcode',
    link = 'Bibcode',
            label = 'Bibcode',
    label = 'Bibcode',
            mode = 'external',
    mode = 'external',
            prefix = 'http://adsabs.harvard.edu/abs/',
    prefix = 'http://adsabs.harvard.edu/abs/',
            encode = false,
    encode = false,
            COinS = 'info:bibcode',
    COinS = 'info:bibcode',
            separator = ':',
    separator = ':',
        },
    },
        ['DOI'] = {
    ['DOI'] = {
            parameters = { 'doi', 'DOI' },
    parameters = { 'doi', 'DOI' },
            link = 'Digital object identifier',
    link = 'Digital object identifier',
            label = 'doi',
    label = 'doi',
            mode = 'manual',
    mode = 'manual',
            prefix = 'http://dx.doi.org/',
    prefix = 'http://dx.doi.org/',
            COinS = 'info:doi',
    COinS = 'info:doi',
            separator = ':',
    separator = ':',
            encode = true,
    encode = true,
        },
    },
        ['ISBN'] = {
    ['ISBN'] = {
            parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'},  
    parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'},  
            link = 'International Standard Book Number',
    link = 'International Standard Book Number',
            label = 'ISBN',
    label = 'ISBN',
            mode = 'manual',
    mode = 'manual',
            prefix = 'Special:BookSources/',
    prefix = 'Special:BookSources/',
            COinS = 'rft.isbn',
    COinS = 'rft.isbn',
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['ISSN'] = {
    ['ISSN'] = {
            parameters = {'issn', 'ISSN'},  
    parameters = {'issn', 'ISSN'},  
            link = 'International Standard Serial Number',
    link = 'International Standard Serial Number',
            label = 'ISSN',
    label = 'ISSN',
            mode = 'manual',
    mode = 'manual',
            prefix = '//www.worldcat.org/issn/',
    prefix = '//www.worldcat.org/issn/',
            COinS = 'rft.issn',
    COinS = 'rft.issn',
            encode = false,
    encode = false,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['JFM'] = {
    ['JFM'] = {
            parameters = {'jfm', 'JFM'},  
    parameters = {'jfm', 'JFM'},  
            link = 'Jahrbuch über die Fortschritte der Mathematik',
    link = 'Jahrbuch über die Fortschritte der Mathematik',
            label = 'JFM',
    label = 'JFM',
            mode = 'external',
    mode = 'external',
            prefix = 'http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:',
    prefix = 'http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:',
            COinS = 'rft.jfm',
    COinS = 'rft.jfm',
            encode = true,
    encode = true,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['JSTOR'] = {
    ['JSTOR'] = {
            parameters = {'jstor', 'JSTOR'},  
    parameters = {'jstor', 'JSTOR'},  
            link = 'JSTOR',
    link = 'JSTOR',
            label = 'JSTOR',
    label = 'JSTOR',
            mode = 'external',
    mode = 'external',
            prefix = '//www.jstor.org/stable/', -- protocol relative tested 2013-09-04
    prefix = '//www.jstor.org/stable/', -- protocol relative tested 2013-09-04
            COinS = 'rft.jstor',
    COinS = 'rft.jstor',
            encode = true,
    encode = true,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['LCCN'] = {
    ['LCCN'] = {
            parameters = {'LCCN', 'lccn'},  
    parameters = {'LCCN', 'lccn'},  
            link = 'Library of Congress Control Number',
    link = 'Library of Congress Control Number',
            label = 'LCCN',
    label = 'LCCN',
            mode = 'manual',
    mode = 'manual',
            prefix = 'http://lccn.loc.gov/',
    prefix = 'http://lccn.loc.gov/',
            COinS = 'rft.lccn',
    COinS = 'rft.lccn',
            encode = false,
    encode = false,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['MR'] = {
    ['MR'] = {
            parameters = {'MR', 'mr'},  
    parameters = {'MR', 'mr'},  
            link = 'Mathematical Reviews',
    link = 'Mathematical Reviews',
            label = 'MR',
    label = 'MR',
            mode = 'external',
    mode = 'external',
            prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol relative tested 2013-09-04
    prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol relative tested 2013-09-04
            COinS = 'rft.mr',
    COinS = 'rft.mr',
            encode = true,
    encode = true,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['OCLC'] = {
    ['OCLC'] = {
            parameters = {'OCLC', 'oclc'},  
    parameters = {'OCLC', 'oclc'},  
            link = 'OCLC',
    link = 'OCLC',
            label = 'OCLC',
    label = 'OCLC',
            mode = 'external',
    mode = 'external',
            prefix = '//www.worldcat.org/oclc/',
    prefix = '//www.worldcat.org/oclc/',
            COinS = 'info:oclcnum',
    COinS = 'info:oclcnum',
            encode = true,
    encode = true,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['OL'] = {
    ['OL'] = {
            parameters = { 'ol', 'OL' },
    parameters = { 'ol', 'OL' },
            link = 'Open Library',
    link = 'Open Library',
            label = 'OL',
    label = 'OL',
            mode = 'manual',
    mode = 'manual',
            COinS = 'info:olnum',
    COinS = 'info:olnum',
            separator = '&nbsp;',
    separator = '&nbsp;',
            endode = true,
    endode = true,
        },
    },
        ['OSTI'] = {
    ['OSTI'] = {
            parameters = {'OSTI', 'osti'},  
    parameters = {'OSTI', 'osti'},  
            link = 'Office of Scientific and Technical Information',
    link = 'Office of Scientific and Technical Information',
            label = 'OSTI',
    label = 'OSTI',
            mode = 'external',
    mode = 'external',
            prefix = '//www.osti.gov/energycitations/product.biblio.jsp?osti_id=', -- protocol relative tested 2013-09-04
    prefix = '//www.osti.gov/energycitations/product.biblio.jsp?osti_id=', -- protocol relative tested 2013-09-04
            COinS = 'info:osti',
    COinS = 'info:osti',
            encode = true,
    encode = true,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['PMC'] = {
    ['PMC'] = {
            parameters = {'PMC', 'pmc'},  
    parameters = {'PMC', 'pmc'},  
            link = 'PubMed Central',
    link = 'PubMed Central',
            label = 'PMC',
    label = 'PMC',
            mode = 'manual', -- changed to support unlinking of PMC identifier when article is embargoed
    mode = 'manual', -- changed to support unlinking of PMC identifier when article is embargoed
            prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',  
    prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',  
            suffix = " ",
    suffix = " ",
            COinS = 'info:pmc',
    COinS = 'info:pmc',
            encode = true,
    encode = true,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['PMID'] = {
    ['PMID'] = {
            parameters = {'PMID', 'pmid'},  
    parameters = {'PMID', 'pmid'},  
            link = 'PubMed Identifier',
    link = 'PubMed Identifier',
            label = 'PMID',
    label = 'PMID',
            mode = 'manual', -- changed from external manual to support PMID validation
    mode = 'manual', -- changed from external manual to support PMID validation
            prefix = '//www.ncbi.nlm.nih.gov/pubmed/',
    prefix = '//www.ncbi.nlm.nih.gov/pubmed/',
            COinS = 'info:pmid',
    COinS = 'info:pmid',
            encode = false,
    encode = false,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['RFC'] = {
    ['RFC'] = {
            parameters = {'RFC', 'rfc'},  
    parameters = {'RFC', 'rfc'},  
            link = 'Request for Comments',
    link = 'Request for Comments',
            label = 'RFC',
    label = 'RFC',
            mode = 'external',
    mode = 'external',
            prefix = '//tools.ietf.org/html/rfc',
    prefix = '//tools.ietf.org/html/rfc',
            COinS = 'info:rfc',
    COinS = 'info:rfc',
            encode = false,
    encode = false,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['SSRN'] = {
    ['SSRN'] = {
            parameters = {'SSRN', 'ssrn'},  
    parameters = {'SSRN', 'ssrn'},  
            link = 'Social Science Research Network',
    link = 'Social Science Research Network',
            label = 'SSRN',
    label = 'SSRN',
            mode = 'external',
    mode = 'external',
            prefix = '//ssrn.com/abstract=', -- protocol relative tested 2013-09-04
    prefix = '//ssrn.com/abstract=', -- protocol relative tested 2013-09-04
            COinS = 'info:ssrn',
    COinS = 'info:ssrn',
            encode = true,
    encode = true,
            separator = '&nbsp;',
    separator = '&nbsp;',
        },
    },
        ['ZBL'] = {
    --[[ Hide unfinished cite newsgroup code so that long delayed update can take place
            parameters = {'ZBL', 'zbl'},  
    ['USENETID'] = {
            link = 'Zentralblatt MATH',
    parameters = {'id', 'ID'},  
            label = 'Zbl',
    link = 'Usenet',
            mode = 'external',
    label = 'Usenet:',
            prefix = 'http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:',
    mode = 'external',
            COinS = 'info:zbl',
    prefix = 'news:',
            encode = true,
    encode = false,
            separator = '&nbsp;',
    COinS = 'info:usenet',
        }
    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;',
    },
    }
    }


    --iso639-1 language codes and names.
    --iso639-1 language codes and names.
    citation_config.iso639_1 = {
    citation_config.iso639_1 = {
        ["aa"] = "Afar",
    ["aa"] = "Afar",
        ["ab"] = "Abkhazian",
    ["ab"] = "Abkhazian",
        ["ae"] = "Avestan",
    ["ae"] = "Avestan",
        ["af"] = "Afrikaans",
    ["af"] = "Afrikaans",
        ["ak"] = "Akan",
    ["ak"] = "Akan",
        ["am"] = "Amharic",
    ["am"] = "Amharic",
        ["an"] = "Aragonese",
    ["an"] = "Aragonese",
        ["ar"] = "Arabic",
    ["ar"] = "Arabic",
        ["as"] = "Assamese",
    ["as"] = "Assamese",
        ["av"] = "Avaric",
    ["av"] = "Avaric",
        ["ay"] = "Aymara",
    ["ay"] = "Aymara",
        ["az"] = "Azerbaijani",
    ["az"] = "Azerbaijani",
        ["ba"] = "Bashkir",
    ["ba"] = "Bashkir",
        ["be"] = "Belarusian",
    ["be"] = "Belarusian",
        ["bg"] = "Bulgarian",
    ["bg"] = "Bulgarian",
        ["bh"] = "Bihari languages",
    ["bh"] = "Bihari languages",
        ["bi"] = "Bislama",
    ["bi"] = "Bislama",
        ["bm"] = "Bambara",
    ["bm"] = "Bambara",
        ["bn"] = "Bengali",
    ["bn"] = "Bengali",
        ["bo"] = "Tibetan",
    ["bo"] = "Tibetan",
        ["br"] = "Breton",
    ["br"] = "Breton",
        ["bs"] = "Bosnian",
    ["bs"] = "Bosnian",
        ["ca"] = "Catalan",
    ["ca"] = "Catalan",
    -- ["ca"] = "Valencian",
    -- ["ca"] = "Valencian",
        ["ce"] = "Chechen",
    ["ce"] = "Chechen",
        ["ch"] = "Chamorro",
    ["ch"] = "Chamorro",
        ["co"] = "Corsican",
    ["co"] = "Corsican",
        ["cr"] = "Cree",
    ["cr"] = "Cree",
        ["cs"] = "Czech",
    ["cs"] = "Czech",
        ["cu"] = "Church Slavic",
    ["cu"] = "Church Slavic",
    -- ["cu"] = "Old Slavonic",
    -- ["cu"] = "Old Slavonic",
    -- ["cu"] = "Church Slavonic",
    -- ["cu"] = "Church Slavonic",
    -- ["cu"] = "Old Bulgarian",
    -- ["cu"] = "Old Bulgarian",
    -- ["cu"] = "Old Church Slavonic",
    -- ["cu"] = "Old Church Slavonic",
        ["cv"] = "Chuvash",
    ["cv"] = "Chuvash",
        ["cy"] = "Welsh",
    ["cy"] = "Welsh",
        ["da"] = "Danish",
    ["da"] = "Danish",
        ["de"] = "German",
    ["de"] = "German",
        ["dv"] = "Divehi",
    ["dv"] = "Divehi",
        ["dv"] = "Dhivehi",
    ["dv"] = "Dhivehi",
        ["dv"] = "Maldivian",
    ["dv"] = "Maldivian",
        ["dz"] = "Dzongkha",
    ["dz"] = "Dzongkha",
        ["ee"] = "Ewe",
    ["ee"] = "Ewe",
        ["el"] = "Modern Greek",
    ["el"] = "Modern Greek",
        ["en"] = "English",
    ["en"] = "English",
        ["eo"] = "Esperanto",
    ["eo"] = "Esperanto",
        ["es"] = "Spanish",
    ["es"] = "Spanish",
    -- ["es"] = "Castilian",
    -- ["es"] = "Castilian",
        ["et"] = "Estonian",
    ["et"] = "Estonian",
        ["eu"] = "Basque",
    ["eu"] = "Basque",
        ["fa"] = "Persian",
    ["fa"] = "Persian",
        ["ff"] = "Fulah",
    ["ff"] = "Fulah",
        ["fi"] = "Finnish",
    ["fi"] = "Finnish",
        ["fj"] = "Fijian",
    ["fj"] = "Fijian",
        ["fo"] = "Faroese",
    ["fo"] = "Faroese",
        ["fr"] = "French",
    ["fr"] = "French",
        ["fy"] = "Western Frisian",
    ["fy"] = "Western Frisian",
        ["ga"] = "Irish",
    ["ga"] = "Irish",
    -- ["gd"] = "Gaelic",
    -- ["gd"] = "Gaelic",
        ["gd"] = "Scottish Gaelic",
    ["gd"] = "Scottish Gaelic",
        ["gl"] = "Galician",
    ["gl"] = "Galician",
        ["gn"] = "Guarani",
    ["gn"] = "Guarani",
        ["gu"] = "Gujarati",
    ["gu"] = "Gujarati",
        ["gv"] = "Manx",
    ["gv"] = "Manx",
        ["ha"] = "Hausa",
    ["ha"] = "Hausa",
        ["he"] = "Hebrew",
    ["he"] = "Hebrew",
        ["hi"] = "Hindi",
    ["hi"] = "Hindi",
        ["ho"] = "Hiri Motu",
    ["ho"] = "Hiri Motu",
        ["hr"] = "Croatian",
    ["hr"] = "Croatian",
    -- ["ht"] = "Haitian",
    -- ["ht"] = "Haitian",
        ["ht"] = "Haitian Creole",
    ["ht"] = "Haitian Creole",
        ["hu"] = "Hungarian",
    ["hu"] = "Hungarian",
        ["hy"] = "Armenian",
    ["hy"] = "Armenian",
        ["hz"] = "Herero",
    ["hz"] = "Herero",
        ["ia"] = "Interlingua",
    ["ia"] = "Interlingua",
        ["id"] = "Indonesian",
    ["id"] = "Indonesian",
        ["ie"] = "Interlingue",
    ["ie"] = "Interlingue",
        ["ie"] = "Occidental",
    ["ie"] = "Occidental",
        ["ig"] = "Igbo",
    ["ig"] = "Igbo",
    -- ["ii"] = "Sichuan Yi",
    -- ["ii"] = "Sichuan Yi",
        ["ii"] = "Nuosu",
    ["ii"] = "Nuosu",
        ["ik"] = "Inupiaq",
    ["ik"] = "Inupiaq",
        ["io"] = "Ido",
    ["io"] = "Ido",
        ["is"] = "Icelandic",
    ["is"] = "Icelandic",
        ["it"] = "Italian",
    ["it"] = "Italian",
        ["iu"] = "Inuktitut",
    ["iu"] = "Inuktitut",
        ["ja"] = "Japanese",
    ["ja"] = "Japanese",
        ["jv"] = "Javanese",
    ["jv"] = "Javanese",
        ["ka"] = "Georgian",
    ["ka"] = "Georgian",
        ["kg"] = "Kongo",
    ["kg"] = "Kongo",
    -- ["ki"] = "Kikuyu",
    -- ["ki"] = "Kikuyu",
        ["ki"] = "Gikuyu",
    ["ki"] = "Gikuyu",
    -- ["kj"] = "Kuanyama",
    -- ["kj"] = "Kuanyama",
        ["kj"] = "Kwanyama",
    ["kj"] = "Kwanyama",
        ["kk"] = "Kazakh",
    ["kk"] = "Kazakh",
    -- ["kl"] = "Kalaallisut",
    -- ["kl"] = "Kalaallisut",
        ["kl"] = "Greenlandic",
    ["kl"] = "Greenlandic",
        ["km"] = "Central Khmer",
    ["km"] = "Central Khmer",
        ["kn"] = "Kannada",
    ["kn"] = "Kannada",
        ["ko"] = "Korean",
    ["ko"] = "Korean",
        ["kr"] = "Kanuri",
    ["kr"] = "Kanuri",
        ["ks"] = "Kashmiri",
    ["ks"] = "Kashmiri",
        ["ku"] = "Kurdish",
    ["ku"] = "Kurdish",
        ["kv"] = "Komi",
    ["kv"] = "Komi",
        ["kw"] = "Cornish",
    ["kw"] = "Cornish",
    -- ["ky"] = "Kirghiz",
    -- ["ky"] = "Kirghiz",
        ["ky"] = "Kyrgyz",
    ["ky"] = "Kyrgyz",
        ["la"] = "Latin",
    ["la"] = "Latin",
        ["lb"] = "Luxembourgish",
    ["lb"] = "Luxembourgish",
    -- ["lb"] = "Letzeburgesch",
    -- ["lb"] = "Letzeburgesch",
        ["lg"] = "Ganda",
    ["lg"] = "Ganda",
    -- ["li"] = "Limburgan",
    -- ["li"] = "Limburgan",
    -- ["li"] = "Limburger",
    -- ["li"] = "Limburger",
        ["li"] = "Limburgish",
    ["li"] = "Limburgish",
        ["ln"] = "Lingala",
    ["ln"] = "Lingala",
        ["lo"] = "Lao",
    ["lo"] = "Lao",
        ["lt"] = "Lithuanian",
    ["lt"] = "Lithuanian",
        ["lu"] = "Luba-Katanga",
    ["lu"] = "Luba-Katanga",
        ["lv"] = "Latvian",
    ["lv"] = "Latvian",
        ["mg"] = "Malagasy",
    ["mg"] = "Malagasy",
        ["mh"] = "Marshallese",
    ["mh"] = "Marshallese",
        ["mi"] = "Maori",
    ["mi"] = "Maori",
        ["mk"] = "Macedonian",
    ["mk"] = "Macedonian",
        ["ml"] = "Malayalam",
    ["ml"] = "Malayalam",
        ["mn"] = "Mongolian",
    ["mn"] = "Mongolian",
        ["mr"] = "Marathi",
    ["mr"] = "Marathi",
        ["ms"] = "Malay",
    ["ms"] = "Malay",
        ["mt"] = "Maltese",
    ["mt"] = "Maltese",
        ["my"] = "Burmese",
    ["my"] = "Burmese",
        ["na"] = "Nauru",
    ["na"] = "Nauru",
        ["nb"] = "Norwegian Bokmål",
    ["nb"] = "Norwegian Bokmål",
        ["nd"] = "North Ndebele",
    ["nd"] = "North Ndebele",
        ["ne"] = "Nepali",
    ["ne"] = "Nepali",
        ["ng"] = "Ndonga",
    ["ng"] = "Ndonga",
        ["nl"] = "Dutch",
    ["nl"] = "Dutch",
    -- ["nl"] = "Flemish",
    -- ["nl"] = "Flemish",
        ["nn"] = "Norwegian Nynorsk",
    ["nn"] = "Norwegian Nynorsk",
        ["no"] = "Norwegian",
    ["no"] = "Norwegian",
        ["nr"] = "South Ndebele",
    ["nr"] = "South Ndebele",
        ["nv"] = "Navajo",
    ["nv"] = "Navajo",
    -- ["nv"] = "Navaho",
    -- ["nv"] = "Navaho",
    -- ["ny"] = "Chichewa",
    -- ["ny"] = "Chichewa",
    -- ["ny"] = "Chewa",
    -- ["ny"] = "Chewa",
        ["ny"] = "Nyanja",
    ["ny"] = "Nyanja",
        ["oc"] = "Occitan",
    ["oc"] = "Occitan",
        ["oj"] = "Ojibwa",
    ["oj"] = "Ojibwa",
        ["om"] = "Oromo",
    ["om"] = "Oromo",
        ["or"] = "Oriya",
    ["or"] = "Oriya",
        ["os"] = "Ossetian",
    ["os"] = "Ossetian",
        ["os"] = "Ossetic",
    ["os"] = "Ossetic",
    -- ["pa"] = "Panjabi",
    -- ["pa"] = "Panjabi",
        ["pa"] = "Punjabi",
    ["pa"] = "Punjabi",
        ["pi"] = "Pali",
    ["pi"] = "Pali",
        ["pl"] = "Polish",
    ["pl"] = "Polish",
    -- ["ps"] = "Pushto",
    -- ["ps"] = "Pushto",
        ["ps"] = "Pashto",
    ["ps"] = "Pashto",
        ["pt"] = "Portuguese",
    ["pt"] = "Portuguese",
        ["qu"] = "Quechua",
    ["qu"] = "Quechua",
        ["rm"] = "Romansh",
    ["rm"] = "Romansh",
        ["rn"] = "Rundi",
    ["rn"] = "Rundi",
        ["ro"] = "Romanian",
    ["ro"] = "Romanian",
    -- ["ro"] = "Moldavian",
    -- ["ro"] = "Moldavian",
    -- ["ro"] = "Moldovan",
    -- ["ro"] = "Moldovan",
        ["ru"] = "Russian",
    ["ru"] = "Russian",
        ["rw"] = "Kinyarwanda",
    ["rw"] = "Kinyarwanda",
        ["sa"] = "Sanskrit",
    ["sa"] = "Sanskrit",
        ["sc"] = "Sardinian",
    ["sc"] = "Sardinian",
        ["sd"] = "Sindhi",
    ["sd"] = "Sindhi",
        ["se"] = "Northern Sami",
    ["se"] = "Northern Sami",
        ["sg"] = "Sango",
    ["sg"] = "Sango",
        ["si"] = "Sinhala",
    ["si"] = "Sinhala",
    -- ["si"] = "Sinhalese",
    -- ["si"] = "Sinhalese",
        ["sk"] = "Slovak",
    ["sk"] = "Slovak",
        ["sl"] = "Slovenian",
    ["sl"] = "Slovenian",
        ["sm"] = "Samoan",
    ["sm"] = "Samoan",
        ["sn"] = "Shona",
    ["sn"] = "Shona",
        ["so"] = "Somali",
    ["so"] = "Somali",
        ["sq"] = "Albanian",
    ["sq"] = "Albanian",
        ["sr"] = "Serbian",
    ["sr"] = "Serbian",
        ["ss"] = "Swati",
    ["ss"] = "Swati",
        ["st"] = "Southern Sotho",
    ["st"] = "Southern Sotho",
        ["su"] = "Sundanese",
    ["su"] = "Sundanese",
        ["sv"] = "Swedish",
    ["sv"] = "Swedish",
        ["sw"] = "Swahili",
    ["sw"] = "Swahili",
        ["ta"] = "Tamil",
    ["ta"] = "Tamil",
        ["te"] = "Telugu",
    ["te"] = "Telugu",
        ["tg"] = "Tajik",
    ["tg"] = "Tajik",
        ["th"] = "Thai",
    ["th"] = "Thai",
        ["ti"] = "Tigrinya",
    ["ti"] = "Tigrinya",
        ["tk"] = "Turkmen",
    ["tk"] = "Turkmen",
        ["tl"] = "Tagalog",
    ["tl"] = "Tagalog",
        ["tn"] = "Tswana",
    ["tn"] = "Tswana",
        ["to"] = "Tonga (Tonga Islands)",
    ["to"] = "Tonga (Tonga Islands)",
        ["tr"] = "Turkish",
    ["tr"] = "Turkish",
        ["ts"] = "Tsonga",
    ["ts"] = "Tsonga",
        ["tt"] = "Tatar",
    ["tt"] = "Tatar",
        ["tw"] = "Twi",
    ["tw"] = "Twi",
        ["ty"] = "Tahitian",
    ["ty"] = "Tahitian",
    -- ["ug"] = "Uighur",
    -- ["ug"] = "Uighur",
        ["ug"] = "Uyghur",
    ["ug"] = "Uyghur",
        ["uk"] = "Ukrainian",
    ["uk"] = "Ukrainian",
        ["ur"] = "Urdu",
    ["ur"] = "Urdu",
        ["uz"] = "Uzbek",
    ["uz"] = "Uzbek",
        ["ve"] = "Venda",
    ["ve"] = "Venda",
        ["vi"] = "Vietnamese",
    ["vi"] = "Vietnamese",
        ["vo"] = "Volapük",
    ["vo"] = "Volapük",
        ["wa"] = "Walloon",
    ["wa"] = "Walloon",
        ["wo"] = "Wolof",
    ["wo"] = "Wolof",
        ["xh"] = "Xhosa",
    ["xh"] = "Xhosa",
        ["yi"] = "Yiddish",
    ["yi"] = "Yiddish",
        ["yo"] = "Yoruba",
    ["yo"] = "Yoruba",
        ["za"] = "Zhuang",
    ["za"] = "Zhuang",
    -- ["za"] = "Chuang",
    -- ["za"] = "Chuang",
        ["zh"] = "Chinese",
    ["zh"] = "Chinese",
        ["zu"] = "Zulu",
    ["zu"] = "Zulu",
    }
    }
    return citation_config;
    return citation_config;

    Revision as of 10:58, 24 August 2014

    Documentation for this module may be created at Module:Citation/CS1/Configuration/doc

    citation_config = {};
    
    -- override <code>...</code> styling to remove color, border, and padding.  <code> css is specified here:
    -- https://git.wikimedia.org/blob/mediawiki%2Fcore.git/69cd73811f7aadd093050dbf20ed70ef0b42a713/skins%2Fcommon%2FcommonElements.css#L199
    local code_style="color:inherit; border:inherit; padding:inherit;";
    
    --[[
    List of namespaces that should not be included in citation
    error categories.  Same as setting notracking = true by default
    
    Note: Namespace names should use underscores instead of spaces.
    ]]
    citation_config.uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', 'File_talk', 'Template_talk',
    	'Help_talk', 'Category_talk', 'Portal_talk', 'Book_talk', 'Draft', 'Draft_talk', 'Education_Program_talk', 
    	'Module_talk', 'MediaWiki_talk' };
    
    --[[
    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.messages = {
      ['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',
      ['cartography'] = 'Cartography by $1',
      ['section'] = 'Section $1',
      ['inset'] = '$1 inset',
      ['written'] = 'Written at $1',
      ['in'] = 'In',
      ['et al'] = 'et al.', 
      
      ['subscription'] = '<span style="font-size:0.95em; font-size:90%; color:#555">(subscription required (<span title="Sources are not required to be available online. Online sources do not have to be freely available. The site may require a paid subscription." style="border-bottom:1px dotted;cursor:help">help</span>))</span>' ..
      	'[[Category:Pages containing links to subscription-only content]]', 
    
      ['registration']='<span style="font-size:0.95em; font-size:90%; color:#555">(registration required (<span title="Sources are not required to be available online. Online sources do not have to be freely available. The site may require registration." style="border-bottom:1px dotted;cursor:help">help</span>))</span>' ..
      	'[[Category:Pages with login required references or sources]]',
      
      ['language'] = '(in $1)', 
      ['via'] = " &ndash; via $1",
      ['event'] = 'Event occurs at',
      ['minutes'] = 'minutes in', 
    
      ['quoted-title'] = '"$1"',
      ['italic-title'] = "''$1''",
      ['trans-quoted-title'] = "&#91;$1&#93;",
      ['trans-italic-title'] = "&#91;''$1''&#93;",
      ['quoted-text'] = '"$1"',
    
      ['parameter'] = '<code style="'..code_style..'">&#124;$1=</code>',
      ['parameter-separator'] = ', ',
      ['parameter-final-separator'] = ', and ',
      ['parameter-pair-separator'] = ' and ',
    
      -- Error output
      -- .error class is specified at https://git.wikimedia.org/blob/mediawiki%2Fcore.git/9553bd02a5595da05c184f7521721fb1b79b3935/skins%2Fcommon%2Fshared.css#L538
      -- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display
      ['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',
      ['bare_url_no_origin'] = 'Bare url found but origin indicator is nil or empty',
    }
    
    -- Aliases table for commonly passed parameters
    citation_config.aliases = {
    	['AccessDate'] = {'access-date', 'accessdate'},
    	['Agency'] = 'agency',
    	['AirDate'] = {'air-date', 'airdate'},
    	['ArchiveDate'] = {'archive-date', 'archivedate'},
    	['ArchiveURL'] = {'archive-url', 'archiveurl'},
    	['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
    	['At'] = 'at',
    	['Authors'] = {'authors', 'people', 'host'},
    	['AuthorFormat'] = {'author-format', 'authorformat'},
    	['AuthorSeparator'] = 'author-separator',
    	['AuthorNameSeparator'] = 'author-name-separator',
    	['BookTitle'] = {'book-title', 'booktitle'},
    	['Callsign'] = {'call-sign', 'callsign'},				-- cite interview
    	['Cartography'] = 'cartography',
    	['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'notestitle'},	-- notestitle is deprecated; remove after 1 October 2014; used by old cite AV media notes
    	['ChapterLink'] = {'chapter-link', 'chapterlink'},
    	['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'section-url', 'sectionurl'},
    	['City'] = 'city',										-- cite interview
    	['Coauthors'] = {'coauthors', 'coauthor'},				-- coauthor and coauthors are deprecated; remove after 1 October 2014
    	['Cointerviewers'] = 'cointerviewers',					-- cointerviewers is deprecated; remove after 1 October 2014; used by cite interview
    	['Conference'] = {'conference', 'event'},
    	['ConferenceURL'] = {'conference-url', 'conferenceurl', 'event-url', 'eventurl'},
    	['Date'] = 'date',
    	['Day'] = 'day',
    	['DeadURL'] = {'dead-url', 'deadurl'},
    	['Degree'] = 'degree',
    	['DisplayAuthors'] = {'display-authors', 'displayauthors'},
    	['DisplayEditors'] = {'display-editors', 'displayeditors'},
    	['Docket'] = 'docket',
    	['DoiBroken'] = {'doi-broken', 'doi-broken-date', 'doi-inactive-date', 'DoiBroken', 'doi_brokendate', 'doi_inactivedate'},
    	['Edition'] = 'edition',
    	['Editors'] = 'editors',
    	['EditorFormat'] = {'editor-format', 'editorformat'},
    	['EditorSeparator'] = 'editor-separator',
    	['EditorNameSeparator'] = 'editor-name-separator',
    	['Embargo'] = {'Embargo', 'embargo'},
    	['Format'] = 'format',
    	['ID'] = {'id', 'ID', 'publisherid'},					-- publisherid is deprecated; remove after 1 October 2014; used by old cite AV media notes and old cite DVD notes
    	['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
    	['Inset'] = 'inset',
    	['Interviewer'] = 'interviewer',						-- cite interview
    	['Issue'] = {'issue', 'number'},
    	['Language'] = {'language', 'in'},
    	['LastAuthorAmp'] = {'last-author-amp', 'lastauthoramp'},
    	['LayDate'] = {'lay-date', 'laydate'},
    	['LaySource'] = {'lay-source', 'laysource'},
    	['LayURL'] = {'lay-url', 'lay-summary', 'layurl', 'laysummary'},
    	['Minutes'] = 'minutes',
    	['Month'] = 'month',
    	['NameSeparator'] = 'name-separator',
    	['Network'] = 'network',
    	['NoPP'] = {'no-pp', 'nopp'},
    	['NoTracking'] = {'template-doc-demo', 'template doc demo', 'no-cat', 'nocat', 
    		'no-tracking', 'notracking'},
    	['OrigYear'] = {'orig-year', 'origyear', 'titleyear'},	-- titleyear is deprecated; remove after 1 October 2014; used in old cite DVD notes
    	['Others'] = {'others', 'artist', 'director'},			-- artist and director are deprecated; remove after 1 October 2014; used in old cite AV media notes and old cite DVD notes
    	['Page'] = {'p', 'page'},
    	['Pages'] = {'pp', 'pages'},
    	['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
    		'website',  'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary'},
    	['Place'] = {'place', 'location'},
    	['PPrefix'] = {'p-prefix', 'PPrefix'},
    	['PPPrefix'] = {'pp-prefix', 'PPPrefix'},
    	['Program'] = 'program',								-- cite interview
    	['PostScript'] = 'postscript',
    	['PublicationDate'] = {'publicationdate', 'publication-date'},
    	['PublicationPlace'] = {'publication-place', 'publicationplace'},
    --[[ Hide unfinished cite newsgroup code so that long delayed update can take place
    	['PublisherName'] = {'publisher', 'distributor', 'institution', 'newsgroup'},
    ]]	['PublisherName'] = {'publisher', 'distributor', 'institution'},
    	['Quote'] = {'quote', 'quotation'},
    	['Ref'] = {'ref', 'Ref'},
    	['RegistrationRequired'] = 'registration',
    	['Scale'] = 'scale',
    	['Section'] = 'section',
    	['Season'] = 'season',
    	['Separator'] = 'separator',
    	['Series'] = {'series', 'version'},
    	['SeriesSeparator'] = 'series-separator',
    	['SeriesLink'] = {'series-link', 'serieslink'},
    	['SeriesNumber'] = {'series-number', 'series-no', 'seriesnumber', 'seriesno'},
    	['Station'] = 'station',
    	['SubscriptionRequired'] = 'subscription',
    	['Time'] = 'time',
    	['TimeCaption'] = {'time-caption', 'timecaption'},
    	['Title'] = 'title',
    	['TitleLink'] = {'title-link', 'episode-link', 'titlelink', 'episodelink', 'albumlink'},	-- albumlink is deprecated; remove after 1 October 2014; used by old cite AV media notes
    	['TitleNote'] = 'department',
    	['TitleType'] = {'type', 'medium'},
    	['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#", "subject#"},
    	['AuthorList-Link'] = {"author#-link", "author-link#", 
    		"author#link", "authorlink#", "subject-link#", "subject#link", "subject#-link", "subjectlink#"},
    	['AuthorList-Mask'] = {"author#-mask", "author-mask#", 
    		"author#mask", "authormask#"},
    	
    	['EditorList-First'] = {"editor#-first", 
    		"editor-first#", "editor#-given", "editor-given#", "EditorGiven#"},
    	['EditorList-Last'] = {"editor#-last", "editor-last#",
    		"editor#-surname", "editor-surname#", "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.defaults = {
    	['DeadURL'] = 'yes',
    	['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 style="'..code_style..'">&#124;accessdate=</code> requires <code style="'..code_style..'">&#124;url=</code>',
    		anchor = 'accessdate_missing_url',
    		category = 'Pages using citations with accessdate and no URL',
    		hidden = true },
    	archive_missing_date = {
    		message = '<code style="'..code_style..'">&#124;archiveurl=</code> requires <code style="'..code_style..'">&#124;archivedate=</code>',
    		anchor = 'archive_missing_date',
    		category = 'Pages with archiveurl citation errors',
    		hidden = false },
    	archive_missing_url = {
    		message = '<code style="'..code_style..'">&#124;archiveurl=</code> requires <code style="'..code_style..'">&#124;url=</code>',
    		anchor = 'archive_missing_url',
    		category = 'Pages with archiveurl citation errors',
    		hidden = false },
    	bad_arxiv = {
    		message = 'Check <code style="'..code_style..'">&#124;arxiv=</code> value',
    		anchor = 'bad_arxiv',
    		category = 'CS1 errors: arXiv',
    		hidden = false },
    	bad_authorlink = {
    		message = 'Check <code style="'..code_style..'">&#124;authorlink=</code> value',
    		anchor = 'bad_authorlink',
    		category = 'CS1 errors: authorlink',
    		hidden = false },
    	bad_date = {
    		message = 'Check date values in: <code style="'..code_style..'">$1</code>',
    		anchor = 'bad_date',
    		category = 'CS1 errors: dates',
    		hidden = true },
    	bad_doi = {
    		message = 'Check <code style="'..code_style..'">&#124;doi=</code> value',
    		anchor = 'bad_doi',
    		category = 'Pages with DOI errors',
    		hidden = false },
    	bad_isbn = {
    		message = 'Check <code style="'..code_style..'">&#124;isbn=</code> value',
    		anchor = 'bad_isbn',
    		category = 'Pages with ISBN errors',
    		hidden = false },
    	bad_issn = {
    		message = 'Check <code style="'..code_style..'">&#124;issn=</code> value',
    		anchor = 'bad_issn',
    		category = 'CS1 errors: ISSN',
    		hidden = false },
    	bad_lccn = {
    		message = 'Check <code style="'..code_style..'">&#124;lccn=</code> value',
    		anchor = 'bad_lccn',
    		category = 'CS1 errors: LCCN',
    		hidden = false },
    	bad_ol = {
    		message = 'Check <code style="'..code_style..'">&#124;ol=</code> value',
    		anchor = 'bad_ol',
    		category = 'Pages with OL errors',
    		hidden = false },
    	bad_pmc = {
    		message = 'Check <code style="'..code_style..'">&#124;pmc=</code> value',
    		anchor = 'bad_pmc',
    		category = 'CS1 errors: PMC',
    		hidden = false },
    	bad_pmid = {
    		message = 'Check <code style="'..code_style..'">&#124;pmid=</code> value',
    		anchor = 'bad_pmid',
    		category = 'CS1 errors: PMID',
    		hidden = false },
    	bad_url = {
    		message = 'Check <code style="'..code_style..'">&#124;url=</code> scheme',
    		anchor = 'bad_url',
    		category = 'Pages with URL errors',
    		hidden = false },
    	bare_url_missing_title = {
    		message = '$1 missing title',
    		anchor = 'bare_url_missing_title',
    		category = 'Pages with citations having bare URLs',
    		hidden = false },
    	citation_missing_title = {
    		message = 'Missing or empty <code style="'..code_style..'">&#124;title=</code>',
    		anchor = 'citation_missing_title',
    		category = 'Pages with citations lacking titles',
    		hidden = false },
    	cite_web_url = {										-- this error applies to cite web and to cite podcast
    		message = 'Missing or empty <code style="'..code_style..'">&#124;url=</code>',
    		anchor = 'cite_web_url',
    		category = 'Pages using web citations with no URL',
    		hidden = true },
    	coauthors_missing_author = {
    		message = '<code style="'..code_style..'">&#124;coauthors=</code> requires <code style="'..code_style..'">&#124;author=</code>',
    		anchor = 'coauthors_missing_author',
    		category = 'CS1 errors: coauthors without author',
    		hidden = false },
    	deprecated_params = {
    		message = 'Cite uses deprecated parameters',
    		anchor = 'deprecated_params',
    		category = 'Pages containing cite templates with deprecated parameters',
    		hidden = true },
    	empty_citation = {
    		message = 'Empty citation',
    		anchor = 'empty_citation',
    		category = 'Pages with empty citations',
    		hidden = false },
    	extra_pages = {
    		message = 'Extra <code style="'..code_style..'">&#124;pages=</code> or <code style="'..code_style..'">&#124;at=</code>',
    		anchor = 'extra_pages',
    		category = 'Pages with citations using conflicting page specifications',
    		hidden = false },
    	first_missing_last = {
    		message = '<code style="'..code_style..'">&#124;first$2=</code> missing <code style="'..code_style..'">&#124;last$2=</code> in $1',
    		anchor = 'first_missing_last',
    		category = 'CS1 errors: missing author or editor',
    		hidden = false },
    	format_missing_url = {
    		message = '<code style="'..code_style..'">&#124;format=</code> requires <code style="'..code_style..'">&#124;url=</code>',
    		anchor = 'format_missing_url',
    		category = 'Pages using citations with format and no URL',
    		hidden = true },
    	implict_etal_author = {
    		message = '<code style="'..code_style..'">&#124;displayauthors=</code> suggested',
    		anchor = 'displayauthors',
    		category = 'Pages using citations with old-style implicit et al.',
    		hidden = true },
    	implict_etal_editor = {
    		message = '<code style="'..code_style..'">&#124;displayeditors=</code> suggested',
    		anchor = 'displayeditors',
    		category = 'Pages using citations with old-style implicit et al. in editors',
    		hidden = true },
    	missing_name = {
    		message = 'Missing <code style="'..code_style..'">&#124;last$2=</code> in $1',
    		anchor = 'missing_name',
    		category = 'CS1 errors: missing author or editor',
    		hidden = false },
    	parameter_ignored = {
    		message = 'Unknown parameter <code style="'..code_style..'">&#124;$1=</code> ignored',
    		anchor = 'parameter_ignored',
    		category = 'Pages with citations using unsupported parameters',
    		hidden = false },
    	parameter_ignored_suggest = {
    		message = 'Unknown parameter <code style="'..code_style..'">&#124;$1=</code> ignored (<code style="'..code_style..'">&#124;$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 = '<code style="'..code_style..'">&#124;trans_chapter=</code> requires <code style="'..code_style..'">&#124;chapter=</code>',
    		anchor = 'trans_missing_chapter',
    		category = 'Pages with citations using translated terms without the original',
    		hidden = false },
    	trans_missing_title = {
    		message = '<code style="'..code_style..'">&#124;trans_title=</code> requires <code style="'..code_style..'">&#124;title=</code>',
    		anchor = 'trans_missing_title',
    		category = 'Pages with citations using translated terms without the original',
    		hidden = false },
    	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 = {
    	['ARXIV'] = {
    		parameters = {'arxiv', 'ARXIV'}, 
    		link = 'arXiv',
    		label = 'arXiv',
    		mode = 'manual',
    		prefix = '//arxiv.org/abs/', 						-- protocol relative tested 2013-09-04
    		encode = false,
    		COinS = 'info:arxiv',
    		separator = ':',
    	},
    	['ASIN'] = {
    		parameters = { 'asin', 'ASIN' },	   
    		link = 'Amazon Standard Identification Number',
    		label = 'ASIN',
    		mode = 'manual',
    		COinS = 'info:asin',
    		separator = '&nbsp;',
    		encode = false;
    	},
    	['BIBCODE'] = {
    		parameters = {'bibcode', 'BIBCODE'}, 
    		link = 'Bibcode',
    		label = 'Bibcode',
    		mode = 'external',
    		prefix = 'http://adsabs.harvard.edu/abs/',
    		encode = false,
    		COinS = 'info:bibcode',
    		separator = ':',
    	},
    	['DOI'] = {
    		parameters = { 'doi', 'DOI' },
    		link = 'Digital object identifier',
    		label = 'doi',
    		mode = 'manual',
    		prefix = 'http://dx.doi.org/',
    		COinS = 'info:doi',
    		separator = ':',
    		encode = true,
    	},
    	['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 = 'manual',
    		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 = '//www.jstor.org/stable/', 				-- protocol relative tested 2013-09-04
    		COinS = 'rft.jstor',
    		encode = true,
    		separator = '&nbsp;',
    	},
    	['LCCN'] = {
    		parameters = {'LCCN', 'lccn'}, 
    		link = 'Library of Congress Control Number',
    		label = 'LCCN',
    		mode = 'manual',
    		prefix = 'http://lccn.loc.gov/',
    		COinS = 'rft.lccn',
    		encode = false,
    		separator = '&nbsp;',
    	},
    	['MR'] = {
    		parameters = {'MR', 'mr'}, 
    		link = 'Mathematical Reviews',
    		label = 'MR',
    		mode = 'external',
    		prefix = '//www.ams.org/mathscinet-getitem?mr=', 	-- protocol relative tested 2013-09-04
    		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;',
    	},
    	['OL'] = {
    		parameters = { 'ol', 'OL' },
    		link = 'Open Library',
    		label = 'OL',
    		mode = 'manual',
    		COinS = 'info:olnum',
    		separator = '&nbsp;',
    		endode = true,
    	},
    	['OSTI'] = {
    		parameters = {'OSTI', 'osti'}, 
    		link = 'Office of Scientific and Technical Information',
    		label = 'OSTI',
    		mode = 'external',
    		prefix = '//www.osti.gov/energycitations/product.biblio.jsp?osti_id=',	-- protocol relative tested 2013-09-04
    		COinS = 'info:osti',
    		encode = true,
    		separator = '&nbsp;',
    	},
    	['PMC'] = {
    		parameters = {'PMC', 'pmc'}, 
    		link = 'PubMed Central',
    		label = 'PMC',
    		mode = 'manual',									-- changed to support unlinking of PMC identifier when article is embargoed
    		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 = 'manual',									-- changed from external manual to support PMID validation
    		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 = '//ssrn.com/abstract=', 					-- protocol relative tested 2013-09-04
    		COinS = 'info:ssrn',
    		encode = true,
    		separator = '&nbsp;',
    	},
    --[[ Hide unfinished cite newsgroup code so that long delayed update can take place
    	['USENETID'] = {
    		parameters = {'id', 'ID'}, 
    		link = 'Usenet',
    		label = 'Usenet:',
    		mode = 'external',
    		prefix = 'news:',
    		encode = false,
    		COinS = 'info:usenet',
    		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;',
    	},
    }
    
    --iso639-1 language codes and names.
    citation_config.iso639_1 = {
    	["aa"] = "Afar",
    	["ab"] = "Abkhazian",
    	["ae"] = "Avestan",
    	["af"] = "Afrikaans",
    	["ak"] = "Akan",
    	["am"] = "Amharic",
    	["an"] = "Aragonese",
    	["ar"] = "Arabic",
    	["as"] = "Assamese",
    	["av"] = "Avaric",
    	["ay"] = "Aymara",
    	["az"] = "Azerbaijani",
    	["ba"] = "Bashkir",
    	["be"] = "Belarusian",
    	["bg"] = "Bulgarian",
    	["bh"] = "Bihari languages",
    	["bi"] = "Bislama",
    	["bm"] = "Bambara",
    	["bn"] = "Bengali",
    	["bo"] = "Tibetan",
    	["br"] = "Breton",
    	["bs"] = "Bosnian",
    	["ca"] = "Catalan",
    --	["ca"] = "Valencian",
    	["ce"] = "Chechen",
    	["ch"] = "Chamorro",
    	["co"] = "Corsican",
    	["cr"] = "Cree",
    	["cs"] = "Czech",
    	["cu"] = "Church Slavic",
    --	["cu"] = "Old Slavonic",
    --	["cu"] = "Church Slavonic",
    --	["cu"] = "Old Bulgarian",
    --	["cu"] = "Old Church Slavonic",
    	["cv"] = "Chuvash",
    	["cy"] = "Welsh",
    	["da"] = "Danish",
    	["de"] = "German",
    	["dv"] = "Divehi",
    	["dv"] = "Dhivehi",
    	["dv"] = "Maldivian",
    	["dz"] = "Dzongkha",
    	["ee"] = "Ewe",
    	["el"] = "Modern Greek",
    	["en"] = "English",
    	["eo"] = "Esperanto",
    	["es"] = "Spanish",
    --	["es"] = "Castilian",
    	["et"] = "Estonian",
    	["eu"] = "Basque",
    	["fa"] = "Persian",
    	["ff"] = "Fulah",
    	["fi"] = "Finnish",
    	["fj"] = "Fijian",
    	["fo"] = "Faroese",
    	["fr"] = "French",
    	["fy"] = "Western Frisian",
    	["ga"] = "Irish",
    --	["gd"] = "Gaelic",
    	["gd"] = "Scottish Gaelic",
    	["gl"] = "Galician",
    	["gn"] = "Guarani",
    	["gu"] = "Gujarati",
    	["gv"] = "Manx",
    	["ha"] = "Hausa",
    	["he"] = "Hebrew",
    	["hi"] = "Hindi",
    	["ho"] = "Hiri Motu",
    	["hr"] = "Croatian",
    --	["ht"] = "Haitian",
    	["ht"] = "Haitian Creole",
    	["hu"] = "Hungarian",
    	["hy"] = "Armenian",
    	["hz"] = "Herero",
    	["ia"] = "Interlingua",
    	["id"] = "Indonesian",
    	["ie"] = "Interlingue",
    	["ie"] = "Occidental",
    	["ig"] = "Igbo",
    --	["ii"] = "Sichuan Yi",
    	["ii"] = "Nuosu",
    	["ik"] = "Inupiaq",
    	["io"] = "Ido",
    	["is"] = "Icelandic",
    	["it"] = "Italian",
    	["iu"] = "Inuktitut",
    	["ja"] = "Japanese",
    	["jv"] = "Javanese",
    	["ka"] = "Georgian",
    	["kg"] = "Kongo",
    --	["ki"] = "Kikuyu",
    	["ki"] = "Gikuyu",
    --	["kj"] = "Kuanyama",
    	["kj"] = "Kwanyama",
    	["kk"] = "Kazakh",
    --	["kl"] = "Kalaallisut",
    	["kl"] = "Greenlandic",
    	["km"] = "Central Khmer",
    	["kn"] = "Kannada",
    	["ko"] = "Korean",
    	["kr"] = "Kanuri",
    	["ks"] = "Kashmiri",
    	["ku"] = "Kurdish",
    	["kv"] = "Komi",
    	["kw"] = "Cornish",
    --	["ky"] = "Kirghiz",
    	["ky"] = "Kyrgyz",
    	["la"] = "Latin",
    	["lb"] = "Luxembourgish",
    --	["lb"] = "Letzeburgesch",
    	["lg"] = "Ganda",
    --	["li"] = "Limburgan",
    --	["li"] = "Limburger",
    	["li"] = "Limburgish",
    	["ln"] = "Lingala",
    	["lo"] = "Lao",
    	["lt"] = "Lithuanian",
    	["lu"] = "Luba-Katanga",
    	["lv"] = "Latvian",
    	["mg"] = "Malagasy",
    	["mh"] = "Marshallese",
    	["mi"] = "Maori",
    	["mk"] = "Macedonian",
    	["ml"] = "Malayalam",
    	["mn"] = "Mongolian",
    	["mr"] = "Marathi",
    	["ms"] = "Malay",
    	["mt"] = "Maltese",
    	["my"] = "Burmese",
    	["na"] = "Nauru",
    	["nb"] = "Norwegian Bokmål",
    	["nd"] = "North Ndebele",
    	["ne"] = "Nepali",
    	["ng"] = "Ndonga",
    	["nl"] = "Dutch",
    --	["nl"] = "Flemish",
    	["nn"] = "Norwegian Nynorsk",
    	["no"] = "Norwegian",
    	["nr"] = "South Ndebele",
    	["nv"] = "Navajo",
    --	["nv"] = "Navaho",
    --	["ny"] = "Chichewa",
    --	["ny"] = "Chewa",
    	["ny"] = "Nyanja",
    	["oc"] = "Occitan",
    	["oj"] = "Ojibwa",
    	["om"] = "Oromo",
    	["or"] = "Oriya",
    	["os"] = "Ossetian",
    	["os"] = "Ossetic",
    --	["pa"] = "Panjabi",
    	["pa"] = "Punjabi",
    	["pi"] = "Pali",
    	["pl"] = "Polish",
    --	["ps"] = "Pushto",
    	["ps"] = "Pashto",
    	["pt"] = "Portuguese",
    	["qu"] = "Quechua",
    	["rm"] = "Romansh",
    	["rn"] = "Rundi",
    	["ro"] = "Romanian",
    --	["ro"] = "Moldavian",
    --	["ro"] = "Moldovan",
    	["ru"] = "Russian",
    	["rw"] = "Kinyarwanda",
    	["sa"] = "Sanskrit",
    	["sc"] = "Sardinian",
    	["sd"] = "Sindhi",
    	["se"] = "Northern Sami",
    	["sg"] = "Sango",
    	["si"] = "Sinhala",
    --	["si"] = "Sinhalese",
    	["sk"] = "Slovak",
    	["sl"] = "Slovenian",
    	["sm"] = "Samoan",
    	["sn"] = "Shona",
    	["so"] = "Somali",
    	["sq"] = "Albanian",
    	["sr"] = "Serbian",
    	["ss"] = "Swati",
    	["st"] = "Southern Sotho",
    	["su"] = "Sundanese",
    	["sv"] = "Swedish",
    	["sw"] = "Swahili",
    	["ta"] = "Tamil",
    	["te"] = "Telugu",
    	["tg"] = "Tajik",
    	["th"] = "Thai",
    	["ti"] = "Tigrinya",
    	["tk"] = "Turkmen",
    	["tl"] = "Tagalog",
    	["tn"] = "Tswana",
    	["to"] = "Tonga (Tonga Islands)",
    	["tr"] = "Turkish",
    	["ts"] = "Tsonga",
    	["tt"] = "Tatar",
    	["tw"] = "Twi",
    	["ty"] = "Tahitian",
    --	["ug"] = "Uighur",
    	["ug"] = "Uyghur",
    	["uk"] = "Ukrainian",
    	["ur"] = "Urdu",
    	["uz"] = "Uzbek",
    	["ve"] = "Venda",
    	["vi"] = "Vietnamese",
    	["vo"] = "Volapük",
    	["wa"] = "Walloon",
    	["wo"] = "Wolof",
    	["xh"] = "Xhosa",
    	["yi"] = "Yiddish",
    	["yo"] = "Yoruba",
    	["za"] = "Zhuang",
    --	["za"] = "Chuang",
    	["zh"] = "Chinese",
    	["zu"] = "Zulu",
    }
    return citation_config;