Difference between revisions of "Module:Citation/CS1/Configuration"

From Wikispooks
Jump to navigation Jump to search
m (1 revision)
 
m (1 revision imported)
(One intermediate revision by the same user not shown)
Line 1: Line 1:
citation_config = {};
 
  
--[[
+
local citation_config = {};
List of namespaces that should not be included in citation
+
 
error categories.  Same as setting notracking = true by default
+
-- 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;";
 +
 
 +
--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------
 +
 
 +
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.
 
Note: Namespace names should use underscores instead of spaces.
 +
 
]]
 
]]
citation_config.uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', 'File_talk', 'Template_talk',
+
local 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',  
 
'Help_talk', 'Category_talk', 'Portal_talk', 'Book_talk', 'Draft', 'Draft_talk', 'Education_Program_talk',  
 
'Module_talk', 'MediaWiki_talk' };
 
'Module_talk', 'MediaWiki_talk' };
  
--[[
+
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases'}; -- list of Lua patterns found in page names of pages we should not categorize
 +
 
 +
--[[--------------------------< M E S S A G E S >--------------------------------------------------------------
 +
 
 
Translation table
 
Translation table
  
Line 17: Line 26:
 
This is separated from the main body to aid in future translations of this
 
This is separated from the main body to aid in future translations of this
 
module.
 
module.
 +
 
]]
 
]]
citation_config.messages = {
+
 
 +
local messages = {
 
   ['published'] = 'published $1',
 
   ['published'] = 'published $1',
 
   ['lay summary'] = 'Lay summary',
 
   ['lay summary'] = 'Lay summary',
Line 31: Line 42:
 
   ['editors'] = 'eds.',  
 
   ['editors'] = 'eds.',  
 
   ['edition'] = '($1 ed.)',  
 
   ['edition'] = '($1 ed.)',  
   ['episode'] = 'episode',
+
   ['episode'] = 'Episode $1',
   ['season'] = 'season',  
+
   ['season'] = 'Season $1',  
   ['series'] = 'series',
+
   ['series'] = 'Series $1',
 
   ['cartography'] = 'Cartography by $1',
 
   ['cartography'] = 'Cartography by $1',
   ['section'] = 'Section $1',
+
   ['section'] = '§ $1',
 +
  ['sections'] = '§§ $1',
 
   ['inset'] = '$1 inset',
 
   ['inset'] = '$1 inset',
 
   ['written'] = 'Written at $1',
 
   ['written'] = 'Written at $1',
Line 52: Line 64:
 
   ['minutes'] = 'minutes in',  
 
   ['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>&#124;$1=</code>',
 
 
   ['parameter-separator'] = ', ',
 
   ['parameter-separator'] = ', ',
 
   ['parameter-final-separator'] = ', and ',
 
   ['parameter-final-separator'] = ', and ',
 
   ['parameter-pair-separator'] = ' and ',
 
   ['parameter-pair-separator'] = ' and ',
  
  -- 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
 
   ['help page link'] = 'Help:CS1 errors',
 
   ['help page link'] = 'Help:CS1 errors',
Line 79: Line 80:
 
}
 
}
  
-- Aliases table for commonly passed parameters
+
--[[--------------------------< P R E S E N T A T I O N >------------------------------------------------------
citation_config.aliases = {
+
 
    ['AccessDate'] = 'accessdate',
+
Fixed presentation markup.  Originally part of citation_config.messages it has been moved into its own, more semantically
    ['Agency'] = 'agency',
+
correct place.
    ['AirDate'] = 'airdate',
+
 
    ['ArchiveDate'] = {'archive-date', 'archivedate' },
+
]]
    ['ArchiveURL'] = {'archive-url', 'archiveurl' },
+
local presentation =  
    ['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
+
{
    ['At'] = 'at',
+
-- Error output
    ['Authors'] = {'authors', 'people', 'host'},
+
-- .error class is specified at https://git.wikimedia.org/blob/mediawiki%2Fcore.git/9553bd02a5595da05c184f7521721fb1b79b3935/skins%2Fcommon%2Fshared.css#L538
    ['AuthorFormat'] = {"author-format", "authorformat" },
+
-- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display
    ['AuthorSeparator'] = 'author-separator',
+
['hidden-error'] = '<span style="display:none;font-size:100%" class="error citation-comment">$1</span>',
    ['AuthorNameSeparator'] = 'author-name-separator',
+
['visible-error'] = '<span style="font-size:100%" class="error citation-comment">$1</span>',
    ['BookTitle'] = 'booktitle',
+
 
['Callsign'] = 'callsign', -- cite interview
+
['accessdate'] = '<span class="reference-accessdate">$1$2</span>', -- to allow editors to hide accessdate using personal css
    ['Cartography'] = 'cartography',
+
 
    ['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'notestitle'}, -- notestitle is deprecated used by old cite AV media notes; remove after 1 October 2014;
+
['bdi'] = '<bdi$1>$2</bdi>', -- bidirectional isolation used with |script-title= and the like
    ['ChapterLink'] = 'chapterlink',
+
 
    ['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'sectionurl' },
+
['format'] = ' <span style="font-size:85%;">($1)</span>', -- for |format=, |chapter-format=, etc
['City'] = 'city', -- cite interview
+
 
    ['Coauthors'] = {'coauthors', 'coauthor' },
+
['italic-title'] = "''$1''",
    ['Cointerviewers'] = 'cointerviewers', -- cite interview
+
 
    ['Conference'] = {'conference', 'event' },
+
['kern-left'] = '<span style="padding-left:0.2em;">$1</span>$2', -- spacing to use when title contains leading single or double quote mark
    ['ConferenceURL'] = {'conference-url', 'conferenceurl', 'eventurl' },
+
['kern-right'] = '$1<span style="padding-right:0.2em;">$2</span>', -- spacing to use when title contains trailing single or double quote mark
    ['Date'] = 'date',
 
    ['Day'] = 'day',
 
    ['DeadURL'] = 'deadurl',
 
    ['Degree'] = 'degree',
 
    ['DisplayAuthors'] = {"display-authors", "displayauthors"},
 
    ['DisplayEditors'] = {"display-editors", "displayeditors"},
 
    ['Docket'] = 'docket',
 
    ['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', 'publisherid'}, -- publisherid is deprecated; used by old cite AV media notes and old cite DVD notes; remove after 1 October 2014;
 
    ['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
 
    ['Inset'] = 'inset',
 
    ['Interviewer'] = 'interviewer', -- cite interview
 
    ['Issue'] = {'issue', 'number'},
 
    ['Language'] = {'language', 'in'},
 
    ['LastAuthorAmp'] = 'lastauthoramp',
 
    ['LayDate'] = 'laydate',
 
    ['LaySource'] = 'laysource',
 
    ['LayURL'] = {'layurl', 'laysummary'},
 
    ['Minutes'] = 'minutes',
 
    ['Month'] = 'month',
 
    ['NameSeparator'] = 'name-separator',
 
    ['Network'] = 'network',
 
    ['NoPP'] = 'nopp',
 
    ['NoTracking'] = {"template doc demo", 'nocat',
 
        'notracking', "no-tracking"},
 
    ['OrigYear'] = {'origyear', 'titleyear'}, -- titleyear is deprecated; used in old cite DVD notes; remove after 1 October 2014
 
    ['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
 
    ['Page'] = {'p', 'page'},
 
    ['Pages'] = {'pp', 'pages'},
 
    ['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
 
        'website',  'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary'},
 
    ['Place'] = {'place', 'location'},
 
    ['PPrefix'] = 'PPrefix',
 
    ['PPPrefix'] = 'PPPrefix',
 
['Program'] = 'program', -- cite interview
 
    ['PostScript'] = 'postscript',
 
    ['PublicationDate'] = {'publicationdate', 'publication-date' },
 
    ['PublicationPlace'] = {'publication-place', 'publicationplace' },
 
    ['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'] = 'serieslink',
 
    ['SeriesNumber'] = {'seriesnumber', 'seriesno'},
 
    ['Station'] = 'station',
 
    ['SubscriptionRequired'] = 'subscription',
 
    ['Time'] = 'time',
 
    ['TimeCaption'] = 'timecaption',
 
    ['Title'] = 'title',
 
    ['TitleLink'] = {'titlelink', 'episodelink', 'albumlink' }, -- albumlink is deprecated; used by old cite AV media notes; remove after 1 October 2014
 
    ['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#",
+
['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span>
        "first#", "given#"},
+
['nowrap2'] = '<span class="nowrap">$1</span> $2', -- for nowrapping portions of an item: <span ...>dd mmmm</span> yyyy (note white space)
    ['AuthorList-Last'] = {"author#-last", "author-last#",  
+
        "last#", "surname#", "Author#", "author#", "authors#", "subject#"},
+
['parameter'] = '<code style="'..code_style..'">&#124;$1=</code>',
    ['AuthorList-Link'] = {"author#-link", "author-link#",  
+
 
        "author#link", "authorlink#", "subjectlink#"},
+
['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content
    ['AuthorList-Mask'] = {"author#-mask", "author-mask#",  
+
['quoted-title'] = '"$1"',
        "author#mask", "authormask#"},
+
 
   
+
['trans-italic-title'] = "&#91;''$1''&#93;",
    ['EditorList-First'] = {"editor#-first",  
+
['trans-quoted-title'] = "&#91;$1&#93;",
        "editor-first#", "EditorGiven#"},
+
}
    ['EditorList-Last'] = {"editor#-last", "editor-last#",
+
 
        "EditorSurname#", "Editor#", "editor#", "editors#"},
+
--[[--------------------------< A L I A S E S >----------------------------------------------------------------
    ['EditorList-Link'] = {"editor#-link", "editor-link#",  
+
 
        "editor#link", "editorlink#"},
+
Aliases table for commonly passed parameters
    ['EditorList-Mask'] = {"editor#-mask", "editor-mask#",  
+
 
        "editor#mask", "editormask#"},
+
]]
   
+
 
 +
local aliases = {
 +
['AccessDate'] = {'access-date', 'accessdate'},
 +
['Agency'] = 'agency',
 +
['AirDate'] = {'air-date', 'airdate'},
 +
['ArchiveDate'] = {'archive-date', 'archivedate'},
 +
['ArchiveFormat'] = 'archive-format',
 +
['ArchiveURL'] = {'archive-url', 'archiveurl'},
 +
['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
 +
['At'] = 'at',
 +
['Authors'] = {'authors', 'people', 'host', 'credits'},
 +
['AuthorFormat'] = {'author-format', 'authorformat'}, -- deprecated in favor of NameListFormat;
 +
['AuthorSeparator'] = 'author-separator', -- deprecated
 +
['AuthorNameSeparator'] = 'author-name-separator', -- deprecated
 +
['Began'] = 'began', -- cite episode and cite series
 +
['BookTitle'] = {'book-title', 'booktitle'},
 +
['Callsign'] = {'call-sign', 'callsign'}, -- cite interview
 +
['Cartography'] = 'cartography',
 +
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'},
 +
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'section-format'};
 +
['ChapterLink'] = {'chapter-link', 'chapterlink'}, -- deprecated; remove after 1 January 2015?
 +
['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'section-url', 'sectionurl'},
 +
['City'] = 'city', -- cite interview
 +
['Class'] = 'class', -- cite arxiv and arxiv identifiers
 +
['Coauthors'] = {'coauthors', 'coauthor'}, -- coauthor and coauthors are deprecated; remove after 1 January 2015?
 +
['Conference'] = {'conference', 'event'},
 +
['ConferenceFormat'] = {'conference-format', 'event-format'},
 +
['ConferenceURL'] = {'conference-url', 'conferenceurl', 'event-url', 'eventurl'},
 +
['Date'] = {'date', 'air-date', 'airdate'},
 +
['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', 'doi_brokendate', 'doi_inactivedate'},
 +
['Edition'] = 'edition',
 +
['Editors'] = 'editors',
 +
['EditorFormat'] = {'editor-format', 'editorformat'}, -- deprecated in favor of NameListFormat;
 +
['EditorSeparator'] = 'editor-separator', -- deprecated
 +
['EditorNameSeparator'] = 'editor-name-separator', -- deprecated
 +
['Embargo'] = 'embargo',
 +
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia'}, -- this one only used by citation
 +
['Ended'] = 'ended', -- cite episode and cite series
 +
['Episode'] = 'episode', -- cite serial only TODO: make available to cite episode?
 +
['Format'] = 'format',
 +
['ID'] = {'id', 'ID'},
 +
['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
 +
['Inset'] = 'inset',
 +
['Issue'] = {'issue', 'number'},
 +
['Language'] = {'language', 'in'},
 +
['LastAuthorAmp'] = {'last-author-amp', 'lastauthoramp'},
 +
['LayDate'] = {'lay-date', 'laydate'},
 +
['LayFormat'] = 'lay-format',
 +
['LaySource'] = {'lay-source', 'laysource'},
 +
['LayURL'] = {'lay-url', 'lay-summary', 'layurl', 'laysummary'},
 +
['MailingList'] = {'mailinglist', 'mailing-list'}, -- cite mailing list only
 +
['Map'] = 'map', -- cite map only
 +
['MapFormat'] = 'map-format', -- cite map only
 +
['MapURL'] = {'mapurl', 'map-url'}, -- cite map only
 +
['MessageID'] = 'message-id',
 +
['Minutes'] = 'minutes',
 +
['Mode'] = 'mode',
 +
['Month'] = 'month', -- deprecated; remove after 1 January 2015?
 +
['NameListFormat'] = {'name-list-format', 'author-format', 'authorformat', 'editor-format', 'editorformat'},
 +
['NameSeparator'] = 'name-separator', -- deprecated
 +
['Network'] = 'network',
 +
['NoPP'] = {'no-pp', 'nopp'},
 +
['NoTracking'] = {'template-doc-demo', 'template doc demo', 'no-cat', 'nocat',
 +
'no-tracking', 'notracking'},
 +
['OrigYear'] = {'orig-year', 'origyear'},
 +
['Others'] = {'others', 'interviewer', 'interviewers'},
 +
['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',
 +
['Program'] = 'program', -- cite interview
 +
['PostScript'] = 'postscript',
 +
['PublicationDate'] = {'publicationdate', 'publication-date'},
 +
['PublicationPlace'] = {'publication-place', 'publicationplace'},
 +
['PublisherName'] = {'publisher', 'distributor', 'institution', 'newsgroup'},
 +
['Quote'] = {'quote', 'quotation'},
 +
['Ref'] = {'ref', 'Ref'},
 +
['RegistrationRequired'] = 'registration',
 +
['Scale'] = 'scale',
 +
['ScriptTitle'] = 'script-title',
 +
['Section'] = 'section',
 +
['Season'] = 'season',
 +
['Sections'] = 'sections', -- cite map only
 +
['Separator'] = 'separator', -- deprecated in favor of Mode
 +
['Series'] = {'series', 'version'},
 +
['SeriesSeparator'] = 'series-separator',
 +
['SeriesLink'] = {'series-link', 'serieslink'},
 +
['SeriesNumber'] = {'series-number', 'series-no', 'seriesnumber', 'seriesno'},
 +
['Sheet'] = 'sheet', -- cite map only
 +
['Sheets'] = 'sheets', -- cite map only
 +
['Station'] = 'station',
 +
['SubscriptionRequired'] = 'subscription',
 +
['Time'] = 'time',
 +
['TimeCaption'] = {'time-caption', 'timecaption'},
 +
['Title'] = 'title',
 +
['TitleLink'] = {'title-link', 'episode-link', 'titlelink', 'episodelink'},
 +
['TitleNote'] = 'department',
 +
['TitleType'] = {'type', 'medium'},
 +
['TransChapter'] = {'trans-chapter', 'trans_chapter'},
 +
['TransMap'] = 'trans-map', -- cite map only
 +
['Transcript'] = 'transcript',
 +
['TranscriptFormat'] = 'transcript-format',
 +
['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#", "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#"},
 
}
 
}
 +
 +
--[[--------------------------< D E F A U L T S >--------------------------------------------------------------
  
 
-- Default parameter values
 
-- Default parameter values
citation_config.defaults = {
+
 
    ['DeadURL'] = 'yes',
+
]]
    ['AuthorSeparator'] = ';',
+
 
    ['EditorSeparator'] = ';',
+
local defaults = {
    ['NameSeparator'] = ',',
+
['DeadURL'] = 'yes',
    ['PPrefix'] = "p.&nbsp;",
+
['PPrefix'] = "p.&nbsp;",
    ['PPPrefix'] = "pp.&nbsp;",  
+
['PPPrefix'] = "pp.&nbsp;",
 
}
 
}
  
--[[
+
--[[--------------------------< M A I N T E N A N C E _ C A T E G O R I E S >----------------------------------
 +
 
 +
Here we name maintenance categories to be used in maintenance messages.
 +
 
 +
]]
 +
 
 +
local maint_cats = {
 +
['ASIN'] = 'CS1 maint: ASIN uses ISBN',
 +
['date_year'] = 'CS1 maint: Date and year',
 +
['disp_auth_ed'] = 'CS1 maint: display-$1', -- $1 is authors or editors
 +
['embargo'] = 'CS1 maint: PMC embargo expired',
 +
['english'] = 'CS1 maint: English language specified',
 +
['etal'] = 'CS1 maint: Explicit use of et al.',
 +
['unknown_lang'] = 'CS1 maint: Unrecognized language',
 +
['untitled'] = 'CS1 maint: Untitled periodical',
 +
}
 +
 
 +
--[[--------------------------< P R O P E R T I E S _ C A T E G O R I E S >------------------------------------
 +
 
 +
Here we name properties categories
 +
 
 +
]]
 +
 
 +
local prop_cats = {
 +
['foreign_lang_source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is language name, $2 is ISO639-1 code
 +
['script'] = 'CS1 uses foreign language script', -- when language specified by |script-title=xx: doesn't have its own category
 +
['script_with_name'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code
 +
}
 +
 
 +
 
 +
 
 +
--[[--------------------------< T I T L E _ T Y P E S >--------------------------------------------------------
 +
 
 +
Here we map a template's CitationClass to TitleType
 +
 
 +
]]
 +
 
 +
local title_types = {
 +
['AV-media-notes'] = 'Media notes',
 +
['DVD-notes'] = 'Media notes',
 +
['mailinglist'] = 'Mailing list',
 +
['map'] = 'Map',
 +
['podcast'] = 'Podcast',
 +
['pressrelease'] = 'Press release',
 +
['report'] = 'Report',
 +
['techreport'] = 'Technical report',
 +
['thesis'] = 'Thesis',
 +
}
 +
 
 +
--[[--------------------------< E R R O R _ C O N D I T I O N S >----------------------------------------------
 +
 
 
Error condition table
 
Error condition table
  
Line 215: Line 320:
  
 
Anchor changes require identical changes to matching anchor in Help:CS1 errors
 
Anchor changes require identical changes to matching anchor in Help:CS1 errors
 +
 
]]
 
]]
  
citation_config.error_conditions = {
+
local 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 },
 +
arxiv_missing = {
 +
message = '<code style="'..code_style..'">&#124;arxiv=</code> required',
 +
anchor = 'arxiv_missing',
 +
category = 'CS1 errors: arXiv', -- same as bad arxiv
 +
hidden = false },
 +
arxiv_params_not_supported = {
 +
message = 'Unsupported parameter(s) in cite arXiv',
 +
anchor = 'arxiv_params_not_supported',
 +
category = 'CS1 errors: arXiv', -- same as bad arxiv
 +
hidden = false },
 +
bad_arxiv = {
 +
message = 'Check <code style="'..code_style..'">&#124;arxiv=</code> value',
 +
anchor = 'bad_arxiv',
 +
category = 'CS1 errors: arXiv',
 +
hidden = false },
 +
bad_asin = {
 +
message = 'Check <code style="'..code_style..'">&#124;asin=</code> value',
 +
anchor = 'bad_asin',
 +
category ='CS1 errors: ASIN',
 
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 = false },
 
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 = 'CS1 errors: DOI',
 
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 },
 +
bad_message_id = {
 +
message = 'Check <code style="'..code_style..'">&#124;message-id=</code> value',
 +
anchor = 'bad_message_id',
 +
category = 'CS1 errors: message-id',
 
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 = 'CS1 errors: OL',
 
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 287: Line 418:
 
anchor = 'bare_url_missing_title',
 
anchor = 'bare_url_missing_title',
 
category = 'Pages with citations having bare URLs',
 
category = 'Pages with citations having bare URLs',
 +
hidden = false },
 +
chapter_ignored = {
 +
message = '<code style="'..code_style..'">&#124;chapter=</code> ignored',
 +
anchor = 'chapter_ignored',
 +
category = 'CS1 errors: chapter ignored',
 
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',
 
hidden = false },
 
hidden = false },
 
deprecated_params = {
 
deprecated_params = {
message = 'Cite uses deprecated parameters',
+
message = 'Cite uses deprecated parameter <code style="'..code_style..'">&#124;$1=</code>',
 
anchor = 'deprecated_params',
 
anchor = 'deprecated_params',
 
category = 'Pages containing cite templates with deprecated parameters',
 
category = 'Pages containing cite templates with deprecated parameters',
Line 314: Line 450:
 
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;$1=</code> requires <code style="'..code_style..'">&#124;$2=</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 },
 
implict_etal_author = {
 
message = '<code>&#124;displayauthors=</code> suggested',
 
anchor = 'displayauthors',
 
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 },
 +
invalid_param_val = {
 +
message = 'Invalid <code style="'..code_style..'">&#124;$1=$2</code>',
 +
anchor = 'invalid_param_val',
 +
category = 'CS1 errors: invalid parameter value',
 +
hidden = false },
 +
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 500:
 
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',
 +
hidden = false },
 +
vancouver = {
 +
message = 'Vancouver style error',
 +
anchor = 'vancouver',
 +
category = 'CS1 errors: Vancouver style',
 
hidden = false },
 
hidden = false },
 
wikilink_in_url = {
 
wikilink_in_url = {
Line 370: Line 521:
 
}
 
}
  
citation_config.id_handlers = {
+
--[[--------------------------< I D _ H A N D L E R S >--------------------------------------------------------
    ['ARXIV'] = {
+
 
        parameters = {'arxiv', 'ARXIV'},
+
The following contains a list of values for various defined identifiers.  For each identifier we specify a
        link = 'arXiv',
+
variety of information necessary to properly render the identifier in the citation.
        label = 'arXiv',
+
 
        mode = 'external',
+
parameters: a list of parameter aliases for this identifier
        prefix = '//arxiv.org/abs/', -- protocol relative tested 2013-09-04
+
link: Wikipedia article name
        encode = false,
+
label: the alternate name to apply to link
        COinS = 'info:arxiv',
+
mode: 'manual' when there is a specific function in the code to handle the identifier;
        separator = ':',
+
'external' for identifiers that link outside of Wikipedia;
    },
+
prefix: the first part of a url that will be concatenated with a second part which usually contains the identifier
    ['ASIN'] = {
+
encode: true if uri should be percent encoded; otherwise false
        parameters = { 'asin', 'ASIN' },     
+
COinS: into rft.id
        link = 'Amazon Standard Identification Number',
+
separator: character or text between label and the identifier in the rendered citation
        label = 'ASIN',
+
]]
        mode = 'manual',
+
 
        COinS = 'info:asin',
+
local id_handlers = {
        separator = '&nbsp;',
+
['ARXIV'] = {
        encode = false;
+
parameters = {'arxiv', 'ARXIV', 'eprint'},  
    },
+
link = 'arXiv',
    ['BIBCODE'] = {
+
label = 'arXiv',
        parameters = {'bibcode', 'BIBCODE'},  
+
mode = 'manual',
        link = 'Bibcode',
+
prefix = '//arxiv.org/abs/', -- protocol relative tested 2013-09-04
        label = 'Bibcode',
+
encode = false,
        mode = 'external',
+
COinS = 'info:arxiv',
        prefix = 'http://adsabs.harvard.edu/abs/',
+
separator = ':',
        encode = false,
+
},
        COinS = 'info:bibcode',
+
['ASIN'] = {
        separator = ':',
+
parameters = { 'asin', 'ASIN' },  
    },
+
link = 'Amazon Standard Identification Number',
    ['DOI'] = {
+
label = 'ASIN',
        parameters = { 'doi', 'DOI' },
+
mode = 'manual',
        link = 'Digital object identifier',
+
COinS = 'info:asin',
        label = 'doi',
+
separator = '&nbsp;',
        mode = 'manual',
+
encode = false;
        prefix = 'http://dx.doi.org/',
+
},
        COinS = 'info:doi',
+
['BIBCODE'] = {
        separator = ':',
+
parameters = {'bibcode', 'BIBCODE'},  
        encode = true,
+
link = 'Bibcode',
    },
+
label = 'Bibcode',
    ['ISBN'] = {
+
mode = 'external',
        parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'},
+
prefix = 'http://adsabs.harvard.edu/abs/',
        link = 'International Standard Book Number',
+
encode = false,
        label = 'ISBN',
+
COinS = 'info:bibcode',
        mode = 'manual',
+
separator = ':',
        prefix = 'Special:BookSources/',
+
},
        COinS = 'rft.isbn',
+
['DOI'] = {
        separator = '&nbsp;',
+
parameters = { 'doi', 'DOI' },
    },
+
link = 'Digital object identifier',
    ['ISSN'] = {
+
label = 'doi',
        parameters = {'issn', 'ISSN'},  
+
mode = 'manual',
        link = 'International Standard Serial Number',
+
prefix = '//dx.doi.org/',
        label = 'ISSN',
+
COinS = 'info:doi',
        mode = 'manual',
+
separator = ':',
        prefix = '//www.worldcat.org/issn/',
+
encode = true,
        COinS = 'rft.issn',
+
},
        encode = false,
+
['ISBN'] = {
        separator = '&nbsp;',
+
parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'},  
    },
+
link = 'International Standard Book Number',
    ['JFM'] = {
+
label = 'ISBN',
        parameters = {'jfm', 'JFM'},  
+
mode = 'manual',
        link = 'Jahrbuch über die Fortschritte der Mathematik',
+
prefix = 'Special:BookSources/',
        label = 'JFM',
+
COinS = 'rft.isbn',
        mode = 'external',
+
separator = '&nbsp;',
        prefix = 'http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:',
+
},
        COinS = 'rft.jfm',
+
['ISSN'] = {
        encode = true,
+
parameters = {'issn', 'ISSN'},  
        separator = '&nbsp;',
+
link = 'International Standard Serial Number',
    },
+
label = 'ISSN',
    ['JSTOR'] = {
+
mode = 'manual',
        parameters = {'jstor', 'JSTOR'},  
+
prefix = '//www.worldcat.org/issn/',
        link = 'JSTOR',
+
COinS = 'rft.issn',
        label = 'JSTOR',
+
encode = false,
        mode = 'external',
+
separator = '&nbsp;',
        prefix = '//www.jstor.org/stable/', -- protocol relative tested 2013-09-04
+
},
        COinS = 'rft.jstor',
+
['JFM'] = {
        encode = true,
+
parameters = {'jfm', 'JFM'},  
        separator = '&nbsp;',
+
link = 'Jahrbuch über die Fortschritte der Mathematik',
    },
+
label = 'JFM',
    ['LCCN'] = {
+
mode = 'external',
        parameters = {'LCCN', 'lccn'},  
+
prefix = '//zbmath.org/?format=complete&q=an:',
        link = 'Library of Congress Control Number',
+
COinS = 'rft.jfm',
        label = 'LCCN',
+
encode = true,
        mode = 'manual',
+
separator = '&nbsp;',
        prefix = 'http://lccn.loc.gov/',
+
},
        COinS = 'rft.lccn',
+
['JSTOR'] = {
        encode = false,
+
parameters = {'jstor', 'JSTOR'},  
        separator = '&nbsp;',
+
link = 'JSTOR',
    },
+
label = 'JSTOR',
    ['MR'] = {
+
mode = 'external',
        parameters = {'MR', 'mr'},  
+
prefix = '//www.jstor.org/stable/', -- protocol relative tested 2013-09-04
        link = 'Mathematical Reviews',
+
COinS = 'rft.jstor',
        label = 'MR',
+
encode = false,
        mode = 'external',
+
separator = '&nbsp;',
        prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol relative tested 2013-09-04
+
},
        COinS = 'rft.mr',
+
['LCCN'] = {
        encode = true,
+
parameters = {'LCCN', 'lccn'},  
        separator = '&nbsp;',
+
link = 'Library of Congress Control Number',
    },
+
label = 'LCCN',
    ['OCLC'] = {
+
mode = 'manual',
        parameters = {'OCLC', 'oclc'},  
+
prefix = 'http://lccn.loc.gov/',
        link = 'OCLC',
+
COinS = 'rft.lccn',
        label = 'OCLC',
+
encode = false,
        mode = 'external',
+
separator = '&nbsp;',
        prefix = '//www.worldcat.org/oclc/',
+
},
        COinS = 'info:oclcnum',
+
['MR'] = {
        encode = true,
+
parameters = {'MR', 'mr'},  
        separator = '&nbsp;',
+
link = 'Mathematical Reviews',
    },
+
label = 'MR',
    ['OL'] = {
+
mode = 'external',
        parameters = { 'ol', 'OL' },
+
prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol relative tested 2013-09-04
        link = 'Open Library',
+
COinS = 'rft.mr',
        label = 'OL',
+
encode = true,
        mode = 'manual',
+
separator = '&nbsp;',
        COinS = 'info:olnum',
+
},
        separator = '&nbsp;',
+
['OCLC'] = {
        endode = true,
+
parameters = {'OCLC', 'oclc'},  
    },
+
link = 'OCLC',
    ['OSTI'] = {
+
label = 'OCLC',
        parameters = {'OSTI', 'osti'},  
+
mode = 'external',
        link = 'Office of Scientific and Technical Information',
+
prefix = '//www.worldcat.org/oclc/',
        label = 'OSTI',
+
COinS = 'info:oclcnum',
        mode = 'external',
+
encode = true,
        prefix = '//www.osti.gov/energycitations/product.biblio.jsp?osti_id=', -- protocol relative tested 2013-09-04
+
separator = '&nbsp;',
        COinS = 'info:osti',
+
},
        encode = true,
+
['OL'] = {
        separator = '&nbsp;',
+
parameters = { 'ol', 'OL' },
    },
+
link = 'Open Library',
    ['PMC'] = {
+
label = 'OL',
        parameters = {'PMC', 'pmc'},  
+
mode = 'manual',
        link = 'PubMed Central',
+
COinS = 'info:olnum',
        label = 'PMC',
+
separator = '&nbsp;',
        mode = 'manual', -- changed to support unlinking of PMC identifier when article is embargoed
+
endode = true,
        prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',  
+
},
        suffix = " ",
+
['OSTI'] = {
        COinS = 'info:pmc',
+
parameters = {'OSTI', 'osti'},  
        encode = true,
+
link = 'Office of Scientific and Technical Information',
        separator = '&nbsp;',
+
label = 'OSTI',
    },
+
mode = 'external',
    ['PMID'] = {
+
prefix = '//www.osti.gov/energycitations/product.biblio.jsp?osti_id=', -- protocol relative tested 2013-09-04
        parameters = {'PMID', 'pmid'},  
+
COinS = 'info:osti',
        link = 'PubMed Identifier',
+
encode = true,
        label = 'PMID',
+
separator = '&nbsp;',
        mode = 'manual', -- changed from external manual to support PMID validation
+
},
        prefix = '//www.ncbi.nlm.nih.gov/pubmed/',
+
['PMC'] = {
        COinS = 'info:pmid',
+
parameters = {'PMC', 'pmc'},  
        encode = false,
+
link = 'PubMed Central',
        separator = '&nbsp;',
+
label = 'PMC',
    },
+
mode = 'manual', -- changed to support unlinking of PMC identifier when article is embargoed
    ['RFC'] = {
+
prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',  
        parameters = {'RFC', 'rfc'},  
+
suffix = " ",
        link = 'Request for Comments',
+
COinS = 'info:pmc',
        label = 'RFC',
+
encode = true,
        mode = 'external',
+
separator = '&nbsp;',
        prefix = '//tools.ietf.org/html/rfc',
+
},
        COinS = 'info:rfc',
+
['PMID'] = {
        encode = false,
+
parameters = {'PMID', 'pmid'},  
        separator = '&nbsp;',
+
link = 'PubMed Identifier',
    },
+
label = 'PMID',
    ['SSRN'] = {
+
mode = 'manual', -- changed from external manual to support PMID validation
        parameters = {'SSRN', 'ssrn'},  
+
prefix = '//www.ncbi.nlm.nih.gov/pubmed/',
        link = 'Social Science Research Network',
+
COinS = 'info:pmid',
        label = 'SSRN',
+
encode = false,
        mode = 'external',
+
separator = '&nbsp;',
        prefix = '//ssrn.com/abstract=', -- protocol relative tested 2013-09-04
+
},
        COinS = 'info:ssrn',
+
['RFC'] = {
        encode = true,
+
parameters = {'RFC', 'rfc'},  
        separator = '&nbsp;',
+
link = 'Request for Comments',
    },
+
label = 'RFC',
    ['ZBL'] = {
+
mode = 'external',
        parameters = {'ZBL', 'zbl'},  
+
prefix = '//tools.ietf.org/html/rfc',
        link = 'Zentralblatt MATH',
+
COinS = 'info:rfc',
        label = 'Zbl',
+
encode = false,
        mode = 'external',
+
separator = '&nbsp;',
        prefix = 'http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:',
+
},
        COinS = 'info:zbl',
+
['SSRN'] = {
        encode = true,
+
parameters = {'SSRN', 'ssrn'},
        separator = '&nbsp;',
+
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;',
 +
},
 +
['USENETID'] = {
 +
parameters = {'message-id'},
 +
link = 'Usenet',
 +
label = 'Usenet:',
 +
mode = 'manual',
 +
prefix = 'news:',
 +
encode = false,
 +
COinS = 'info:usenet',
 +
separator = '&nbsp;',
 +
},
 +
['ZBL'] = {
 +
parameters = {'ZBL', 'zbl'},
 +
link = 'Zentralblatt MATH',
 +
label = 'Zbl',
 +
mode = 'external',
 +
prefix = '//zbmath.org/?format=complete&q=an:',
 +
COinS = 'info:zbl',
 +
encode = true,
 +
separator = '&nbsp;',
 +
},
 
}
 
}
  
--iso639-1 language codes and names.
+
return {
citation_config.iso639_1 = {
+
aliases = aliases,
    ["aa"]  = "Afar",
+
defaults = defaults,
    ["ab"]  = "Abkhazian",
+
error_conditions = error_conditions,
    ["ae"]  = "Avestan",
+
id_handlers = id_handlers,
    ["af"]  = "Afrikaans",
+
maint_cats = maint_cats,
    ["ak"]  = "Akan",
+
messages = messages,
    ["am"]  = "Amharic",
+
presentation = presentation,
    ["an"]  = "Aragonese",
+
prop_cats = prop_cats,
    ["ar"]  = "Arabic",
+
title_types = title_types,
    ["as"]  = "Assamese",
+
uncategorized_namespaces = uncategorized_namespaces,
    ["av"]  = "Avaric",
+
uncategorized_subpages = uncategorized_subpages,
    ["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;
 

Revision as of 17:22, 13 May 2015

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


local 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;";

--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------

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.

]]
local 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' };

local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases'};		-- list of Lua patterns found in page names of pages we should not categorize

--[[--------------------------< M E S S A G E S >--------------------------------------------------------------

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.

]]

local 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 $1',
  ['season'] = 'Season $1', 
  ['series'] = 'Series $1',
  ['cartography'] = 'Cartography by $1',
  ['section'] = '§ $1',
  ['sections'] = '§§ $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', 

  ['parameter-separator'] = ', ',
  ['parameter-final-separator'] = ', and ',
  ['parameter-pair-separator'] = ' and ',

  -- 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',
}

--[[--------------------------< P R E S E N T A T I O N >------------------------------------------------------

Fixed presentation markup.  Originally part of citation_config.messages it has been moved into its own, more semantically
correct place.

]]
local presentation = 
	{
	-- 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>',

	['accessdate'] = '<span class="reference-accessdate">$1$2</span>',			-- to allow editors to hide accessdate using personal css

	['bdi'] = '<bdi$1>$2</bdi>',												-- bidirectional isolation used with |script-title= and the like

	['format'] = ' <span style="font-size:85%;">($1)</span>',					-- for |format=, |chapter-format=, etc

	['italic-title'] = "''$1''",

	['kern-left'] = '<span style="padding-left:0.2em;">$1</span>$2',			-- spacing to use when title contains leading single or double quote mark
	['kern-right'] = '$1<span style="padding-right:0.2em;">$2</span>',			-- spacing to use when title contains trailing single or double quote mark

	['nowrap1'] = '<span class="nowrap">$1</span>',								-- for nowrapping an item: <span ...>yyyy-mm-dd</span>
	['nowrap2'] = '<span class="nowrap">$1</span> $2',							-- for nowrapping portions of an item: <span ...>dd mmmm</span> yyyy (note white space)
	
	['parameter'] = '<code style="'..code_style..'">&#124;$1=</code>',

	['quoted-text'] = '<q>$1</q>',												-- for wrapping |quote= content
	['quoted-title'] = '"$1"',

	['trans-italic-title'] = "&#91;''$1''&#93;",
	['trans-quoted-title'] = "&#91;$1&#93;",
	}

--[[--------------------------< A L I A S E S >----------------------------------------------------------------

Aliases table for commonly passed parameters

]]

local aliases = {
	['AccessDate'] = {'access-date', 'accessdate'},
	['Agency'] = 'agency',
	['AirDate'] = {'air-date', 'airdate'},
	['ArchiveDate'] = {'archive-date', 'archivedate'},
	['ArchiveFormat'] = 'archive-format',
	['ArchiveURL'] = {'archive-url', 'archiveurl'},
	['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
	['At'] = 'at',
	['Authors'] = {'authors', 'people', 'host', 'credits'},
	['AuthorFormat'] = {'author-format', 'authorformat'},						-- deprecated in favor of NameListFormat;
	['AuthorSeparator'] = 'author-separator',									-- deprecated
	['AuthorNameSeparator'] = 'author-name-separator',							-- deprecated
	['Began'] = 'began',														-- cite episode and cite series
	['BookTitle'] = {'book-title', 'booktitle'},
	['Callsign'] = {'call-sign', 'callsign'},									-- cite interview
	['Cartography'] = 'cartography',
	['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'},
	['ChapterFormat'] = {'chapter-format', 'contribution-format', 'section-format'};
	['ChapterLink'] = {'chapter-link', 'chapterlink'},							-- deprecated; remove after 1 January 2015?
	['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'section-url', 'sectionurl'},
	['City'] = 'city',															-- cite interview
	['Class'] = 'class',														-- cite arxiv and arxiv identifiers
	['Coauthors'] = {'coauthors', 'coauthor'},									-- coauthor and coauthors are deprecated; remove after 1 January 2015?
	['Conference'] = {'conference', 'event'},
	['ConferenceFormat'] = {'conference-format', 'event-format'},
	['ConferenceURL'] = {'conference-url', 'conferenceurl', 'event-url', 'eventurl'},
	['Date'] = {'date', 'air-date', 'airdate'},
	['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', 'doi_brokendate', 'doi_inactivedate'},
	['Edition'] = 'edition',
	['Editors'] = 'editors',
	['EditorFormat'] = {'editor-format', 'editorformat'},						-- deprecated in favor of NameListFormat;
	['EditorSeparator'] = 'editor-separator',									-- deprecated
	['EditorNameSeparator'] = 'editor-name-separator',							-- deprecated
	['Embargo'] = 'embargo',
	['Encyclopedia'] = {'encyclopedia', 'encyclopaedia'},						-- this one only used by citation
	['Ended'] = 'ended',														-- cite episode and cite series
	['Episode'] = 'episode',													-- cite serial only TODO: make available to cite episode?
	['Format'] = 'format',
	['ID'] = {'id', 'ID'},
	['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
	['Inset'] = 'inset',
	['Issue'] = {'issue', 'number'},
	['Language'] = {'language', 'in'},
	['LastAuthorAmp'] = {'last-author-amp', 'lastauthoramp'},
	['LayDate'] = {'lay-date', 'laydate'},
	['LayFormat'] = 'lay-format',
	['LaySource'] = {'lay-source', 'laysource'},
	['LayURL'] = {'lay-url', 'lay-summary', 'layurl', 'laysummary'},
	['MailingList'] = {'mailinglist', 'mailing-list'},							-- cite mailing list only
	['Map'] = 'map',															-- cite map only
	['MapFormat'] = 'map-format',												-- cite map only
	['MapURL'] = {'mapurl', 'map-url'},											-- cite map only
	['MessageID'] = 'message-id',
	['Minutes'] = 'minutes',
	['Mode'] = 'mode',
	['Month'] = 'month',														-- deprecated; remove after 1 January 2015?
	['NameListFormat'] = {'name-list-format', 'author-format', 'authorformat', 'editor-format', 'editorformat'},
	['NameSeparator'] = 'name-separator',										-- deprecated
	['Network'] = 'network',
	['NoPP'] = {'no-pp', 'nopp'},
	['NoTracking'] = {'template-doc-demo', 'template doc demo', 'no-cat', 'nocat', 
		'no-tracking', 'notracking'},
	['OrigYear'] = {'orig-year', 'origyear'},
	['Others'] = {'others', 'interviewer', 'interviewers'},
	['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',
	['Program'] = 'program',													-- cite interview
	['PostScript'] = 'postscript',
	['PublicationDate'] = {'publicationdate', 'publication-date'},
	['PublicationPlace'] = {'publication-place', 'publicationplace'},
	['PublisherName'] = {'publisher', 'distributor', 'institution', 'newsgroup'},
	['Quote'] = {'quote', 'quotation'},
	['Ref'] = {'ref', 'Ref'},
	['RegistrationRequired'] = 'registration',
	['Scale'] = 'scale',
	['ScriptTitle'] = 'script-title',
	['Section'] = 'section',
	['Season'] = 'season',
	['Sections'] = 'sections',													-- cite map only
	['Separator'] = 'separator',												-- deprecated in favor of Mode
	['Series'] = {'series', 'version'},
	['SeriesSeparator'] = 'series-separator',
	['SeriesLink'] = {'series-link', 'serieslink'},
	['SeriesNumber'] = {'series-number', 'series-no', 'seriesnumber', 'seriesno'},
	['Sheet'] = 'sheet',														-- cite map only
	['Sheets'] = 'sheets',														-- cite map only
	['Station'] = 'station',
	['SubscriptionRequired'] = 'subscription',
	['Time'] = 'time',
	['TimeCaption'] = {'time-caption', 'timecaption'},
	['Title'] = 'title',
	['TitleLink'] = {'title-link', 'episode-link', 'titlelink', 'episodelink'},
	['TitleNote'] = 'department',
	['TitleType'] = {'type', 'medium'},
	['TransChapter'] = {'trans-chapter', 'trans_chapter'},
	['TransMap'] = 'trans-map',													-- cite map only
	['Transcript'] = 'transcript',
	['TranscriptFormat'] = 'transcript-format',
	['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#", "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#"},
}

--[[--------------------------< D E F A U L T S >--------------------------------------------------------------

-- Default parameter values

]]

local defaults = {
	['DeadURL'] = 'yes',
	['PPrefix'] = "p.&nbsp;",
	['PPPrefix'] = "pp.&nbsp;",	
}

--[[--------------------------< M A I N T E N A N C E _ C A T E G O R I E S >----------------------------------

Here we name maintenance categories to be used in maintenance messages.

]]

local maint_cats = {
	['ASIN'] = 'CS1 maint: ASIN uses ISBN',
	['date_year'] = 'CS1 maint: Date and year',
	['disp_auth_ed'] = 'CS1 maint: display-$1',									-- $1 is authors or editors
	['embargo'] = 'CS1 maint: PMC embargo expired',
	['english'] = 'CS1 maint: English language specified',
	['etal'] = 'CS1 maint: Explicit use of et al.',
	['unknown_lang'] = 'CS1 maint: Unrecognized language',
	['untitled'] = 'CS1 maint: Untitled periodical',
	}

--[[--------------------------< P R O P E R T I E S _ C A T E G O R I E S >------------------------------------

Here we name properties categories

]]

local prop_cats = {
	['foreign_lang_source'] = 'CS1 $1-language sources ($2)',					-- |language= categories; $1 is language name, $2 is ISO639-1 code
	['script'] = 'CS1 uses foreign language script',							-- when language specified by |script-title=xx: doesn't have its own category
	['script_with_name'] = 'CS1 uses $1-language script ($2)',					-- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code
	}



--[[--------------------------< T I T L E _ T Y P E S >--------------------------------------------------------

Here we map a template's CitationClass to TitleType

]]

local title_types = {
	['AV-media-notes'] = 'Media notes',
	['DVD-notes'] = 'Media notes',
	['mailinglist'] = 'Mailing list',
	['map'] = 'Map',
	['podcast'] = 'Podcast',
	['pressrelease'] = 'Press release',
	['report'] = 'Report',
	['techreport'] = 'Technical report',
	['thesis'] = 'Thesis',
	}

--[[--------------------------< E R R O R _ C O N D I T I O N S >----------------------------------------------

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

]]

local 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 },
	arxiv_missing = {
		message = '<code style="'..code_style..'">&#124;arxiv=</code> required',
		anchor = 'arxiv_missing',
		category = 'CS1 errors: arXiv',											-- same as bad arxiv
		hidden = false },
	arxiv_params_not_supported = {
		message = 'Unsupported parameter(s) in cite arXiv',
		anchor = 'arxiv_params_not_supported',
		category = 'CS1 errors: arXiv',											-- same as bad arxiv
		hidden = false },
	bad_arxiv = {
		message = 'Check <code style="'..code_style..'">&#124;arxiv=</code> value',
		anchor = 'bad_arxiv',
		category = 'CS1 errors: arXiv',
		hidden = false },
	bad_asin = {
		message = 'Check <code style="'..code_style..'">&#124;asin=</code> value',
		anchor = 'bad_asin',
		category ='CS1 errors: ASIN',
		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 = false },
	bad_doi = {
		message = 'Check <code style="'..code_style..'">&#124;doi=</code> value',
		anchor = 'bad_doi',
		category = 'CS1 errors: DOI',
		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_message_id = {
		message = 'Check <code style="'..code_style..'">&#124;message-id=</code> value',
		anchor = 'bad_message_id',
		category = 'CS1 errors: message-id',
		hidden = false },
	bad_ol = {
		message = 'Check <code style="'..code_style..'">&#124;ol=</code> value',
		anchor = 'bad_ol',
		category = 'CS1 errors: OL',
		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 },
	chapter_ignored = {
		message = '<code style="'..code_style..'">&#124;chapter=</code> ignored',
		anchor = 'chapter_ignored',
		category = 'CS1 errors: chapter ignored',
		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 parameter <code style="'..code_style..'">&#124;$1=</code>',
		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;$1=</code> requires <code style="'..code_style..'">&#124;$2=</code>',
		anchor = 'format_missing_url',
		category = 'Pages using citations with format and no URL',
		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 },
	invalid_param_val = {
		message = 'Invalid <code style="'..code_style..'">&#124;$1=$2</code>',
		anchor = 'invalid_param_val',
		category = 'CS1 errors: invalid parameter value',
		hidden = false },
	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 },
	vancouver = {
		message = 'Vancouver style error',
		anchor = 'vancouver',
		category = 'CS1 errors: Vancouver style',
		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 },
}

--[[--------------------------< I D _ H A N D L E R S >--------------------------------------------------------

The following contains a list of values for various defined identifiers.  For each identifier we specify a
variety of information necessary to properly render the identifier in the citation.

	parameters: a list of parameter aliases for this identifier
	link: Wikipedia article name
	label: the alternate name to apply to link
	mode: 	'manual' when there is a specific function in the code to handle the identifier;
			'external' for identifiers that link outside of Wikipedia;
	prefix: the first part of a url that will be concatenated with a second part which usually contains the identifier
	encode: true if uri should be percent encoded; otherwise false
	COinS: into rft.id
	separator: character or text between label and the identifier in the rendered citation
]]

local id_handlers = {
	['ARXIV'] = {
		parameters = {'arxiv', 'ARXIV', 'eprint'}, 
		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 = '//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 = '//zbmath.org/?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 = false,
		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;',
	},
	['USENETID'] = {
		parameters = {'message-id'},
		link = 'Usenet',
		label = 'Usenet:',
		mode = 'manual',
		prefix = 'news:',
		encode = false,
		COinS = 'info:usenet',
		separator = '&nbsp;',
	},
	['ZBL'] = {
		parameters = {'ZBL', 'zbl'}, 
		link = 'Zentralblatt MATH',
		label = 'Zbl',
		mode = 'external',
		prefix = '//zbmath.org/?format=complete&q=an:',
		COinS = 'info:zbl',
		encode = true,
		separator = '&nbsp;',
	},
}

return 	{
	aliases = aliases,
	defaults = defaults,
	error_conditions = error_conditions,
	id_handlers = id_handlers,
	maint_cats = maint_cats,
	messages = messages,
	presentation = presentation,
	prop_cats = prop_cats,
	title_types = title_types,
	uncategorized_namespaces = uncategorized_namespaces,
	uncategorized_subpages = uncategorized_subpages,
	}