Module:Citation/CS1/Configuration: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
m (1 revision imported) |
m (bump pmid;) |
||
Line 2: | Line 2: | ||
--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------ |
--[[--------------------------< 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. |
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. |
||
Line 8: | Line 9: | ||
]] |
]] |
||
local uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', |
local uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', |
||
'File_talk', 'Template_talk', 'Help_talk', 'Category_talk', 'Portal_talk', |
|||
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases'}; -- list of Lua patterns found in page names of pages we should not categorize |
|||
'Book_talk', 'Draft_talk', 'Education_Program_talk', 'Module_talk', 'MediaWiki_talk' }; |
|||
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases', '/[^/]*[Ll]og', '/[Aa]rchive'}; -- list of Lua patterns found in page names of pages we should not categorize |
|||
Line 33: | Line 36: | ||
['editor'] = 'ed.', |
['editor'] = 'ed.', |
||
['editors'] = 'eds.', |
['editors'] = 'eds.', |
||
['edition'] = '($1 |
['edition'] = '($1 ed.)', |
||
['episode'] = 'Episode $1', |
['episode'] = 'Episode $1', |
||
['et al'] = 'et |
['et al'] = 'et al.', |
||
['in'] = 'In', -- edited works |
['in'] = 'In', -- edited works |
||
['inactive'] = 'inactive', |
['inactive'] = 'inactive', |
||
Line 49: | Line 52: | ||
['retrieved'] = 'Retrieved $1', |
['retrieved'] = 'Retrieved $1', |
||
['season'] = 'Season $1', |
['season'] = 'Season $1', |
||
['section'] = '§ |
['section'] = '§ $1', |
||
['sections'] = '§§ |
['sections'] = '§§ $1', |
||
['series'] = '$1 $2', -- $1 is sepc, $2 is series |
['series'] = '$1 $2', -- $1 is sepc, $2 is series |
||
['seriesnum'] = 'Series $1', |
['seriesnum'] = 'Series $1', |
||
Line 84: | Line 87: | ||
['help page label'] = 'help', |
['help page label'] = 'help', |
||
-- categories |
|||
['cat wikilink'] = '[[Category:$1]]', -- $1 is the category name |
|||
[':cat wikilink'] = '[[:Category:$1|link]]', -- category name as maintenance message wikilink; $1 is the category name |
|||
-- Internal errors (should only occur if configuration is bad) |
-- Internal errors (should only occur if configuration is bad) |
||
['undefined_error'] = 'Called with an undefined error condition', |
['undefined_error'] = 'Called with an undefined error condition', |
||
[' |
['unknown_ID_key'] = 'Unrecognized ID key', -- an ID key in id_handlers not found in ~/Identifiers func_map{} |
||
['unknown_ID_mode'] = 'Unrecognized ID mode', |
|||
['unknown_argument_map'] = 'Argument map not defined for this variable', |
['unknown_argument_map'] = 'Argument map not defined for this variable', |
||
['bare_url_no_origin'] = 'Bare URL found but origin indicator is nil or empty', |
['bare_url_no_origin'] = 'Bare URL found but origin indicator is nil or empty', |
||
Line 102: | Line 108: | ||
local et_al_patterns = { |
local et_al_patterns = { |
||
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.\"']*$", -- variations on the 'et al' theme |
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.\"']*$", -- variations on the 'et al' theme |
||
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][ |
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][AaIi][Ee]?[%.\"']*$", -- variations on the 'et alia', 'et alii' and 'et aliae' themes (false positive 'et aliie' unlikely to match) |
||
"[;,]? *%f[%a]and [Oo]thers", -- |
"[;,]? *%f[%a]and [Oo]thers", -- an alternative to et al. |
||
"%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]", -- a wikilinked form |
"%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]", -- a wikilinked form |
||
"%(%( *[Ee][Tt]%.? *[Aa][Ll]%.? *%)%)", -- a double-bracketed form (to counter partial removal of ((...)) syntax) |
|||
"[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]", -- a bracketed form |
"[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]", -- a bracketed form |
||
} |
} |
||
Line 133: | Line 140: | ||
--[[--------------------------< P R E S E N T A T I O N > |
--[[--------------------------< P R E S E N T A T I O N >------------------------ |
||
Fixed presentation markup. Originally part of citation_config.messages it has |
Fixed presentation markup. Originally part of citation_config.messages it has |
||
correct place. |
been moved into its own, more semantically correct place. |
||
]] |
]] |
||
Line 157: | Line 164: | ||
['format'] = ' <span class="cs1-format">($1)</span>', -- for |format=, |chapter-format=, etc. |
['format'] = ' <span class="cs1-format">($1)</span>', -- for |format=, |chapter-format=, etc. |
||
-- various access levels, for |access=, |doi-access=, |arxiv=, ... |
|||
-- narrow no-break space   may work better than nowrap CSS. Or not? Browser support? |
|||
['ext-link-access-signal'] = '<span class="$1" title="$2">$3</span>', -- external link with appropriate lock icon |
['ext-link-access-signal'] = '<span class="$1" title="$2">$3</span>', -- external link with appropriate lock icon |
||
Line 208: | Line 215: | ||
['trans-italic-title'] = "[''$1'']", |
['trans-italic-title'] = "[''$1'']", |
||
['trans-quoted-title'] = "[$1]", |
['trans-quoted-title'] = "[$1]", -- for |trans-title= and |trans-quote= |
||
['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; for bold journal cites; for other cites ['vol'] in messages{} |
['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; for bold journal cites; for other cites ['vol'] in messages{} |
||
} |
} |
||
--[[--------------------------< A L I A S E S > |
--[[--------------------------< A L I A S E S >--------------------------------- |
||
Aliases table for commonly passed parameters. |
Aliases table for commonly passed parameters. |
||
Parameter names on the right side in the |
Parameter names on the right side in the assignments in this table must have been |
||
before they will be recognized as valid parameter names |
defined in the Whitelist before they will be recognized as valid parameter names |
||
]] |
]] |
||
Line 234: | Line 241: | ||
['Cartography'] = 'cartography', |
['Cartography'] = 'cartography', |
||
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'}, |
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'}, |
||
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format', |
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format', |
||
'article-format', 'section-format'}; |
|||
['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url', 'chapterurl', 'contributionurl', 'sectionurl'}, -- Used by InternetArchiveBot |
|||
[' |
['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', |
||
'section-url', 'chapterurl', 'contributionurl', 'sectionurl'}, -- Used by InternetArchiveBot |
|||
['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access', |
|||
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot |
|||
['Class'] = 'class', -- cite arxiv and arxiv identifiers |
['Class'] = 'class', -- cite arxiv and arxiv identifiers |
||
['Collaboration'] = 'collaboration', |
['Collaboration'] = 'collaboration', |
||
['Conference'] = {'conference', 'event'}, |
['Conference'] = {'conference', 'event'}, |
||
['ConferenceFormat'] = |
['ConferenceFormat'] = 'conference-format', |
||
['ConferenceURL'] = {'conference |
['ConferenceURL'] = {'conference-url', 'conferenceurl'}, -- Used by InternetArchiveBot |
||
['Date'] = {'date', 'air-date', 'airdate'}, -- air-date and airdate for cite episode and cite serial only |
['Date'] = {'date', 'air-date', 'airdate'}, -- air-date and airdate for cite episode and cite serial only |
||
['Degree'] = 'degree', |
['Degree'] = 'degree', |
||
['DF'] = 'df', |
['DF'] = 'df', |
||
['DisplayAuthors'] = {'display-authors', 'display-subjects |
['DisplayAuthors'] = {'display-authors', 'display-subjects'}, |
||
['DisplayContributors'] = 'display-contributors', |
['DisplayContributors'] = 'display-contributors', |
||
['DisplayEditors'] = 'display-editors', |
['DisplayEditors'] = 'display-editors', |
||
Line 253: | Line 263: | ||
['DoiBroken'] = 'doi-broken-date', |
['DoiBroken'] = 'doi-broken-date', |
||
['Edition'] = 'edition', |
['Edition'] = 'edition', |
||
['Editors'] = 'editors', |
|||
['Embargo'] = 'pmc-embargo-date', |
['Embargo'] = 'pmc-embargo-date', |
||
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'dictionary'}, -- cite encyclopedia only |
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'dictionary'}, -- cite encyclopedia only |
||
Line 259: | Line 268: | ||
['Format'] = 'format', |
['Format'] = 'format', |
||
['ID'] = {'id', 'ID'}, |
['ID'] = {'id', 'ID'}, |
||
['IgnoreISBN'] = 'ignore-isbn-error', |
|||
['Inset'] = 'inset', |
['Inset'] = 'inset', |
||
['Issue'] = {'issue', 'number'}, |
['Issue'] = {'issue', 'number'}, |
||
['Language'] = {'language', 'lang'}, |
['Language'] = {'language', 'lang'}, |
||
['LastAuthorAmp'] = {'last-author-amp', 'lastauthoramp'}, |
|||
['LayDate'] = {'lay-date', 'laydate'}, |
['LayDate'] = {'lay-date', 'laydate'}, |
||
['LayFormat'] = 'lay-format', |
['LayFormat'] = 'lay-format', |
||
Line 279: | Line 286: | ||
['Newsgroup'] = 'newsgroup', -- cite newsgroup only |
['Newsgroup'] = 'newsgroup', -- cite newsgroup only |
||
['NoPP'] = {'no-pp', 'nopp'}, |
['NoPP'] = {'no-pp', 'nopp'}, |
||
['NoTracking'] = {'no-tracking', 'template-doc-demo |
['NoTracking'] = {'no-tracking', 'template-doc-demo'}, |
||
['Number'] = 'number', -- this case only for cite techreport |
['Number'] = 'number', -- this case only for cite techreport |
||
['OrigDate'] = {'orig-date', 'orig-year', 'origyear'}, |
['OrigDate'] = {'orig-date', 'orig-year', 'origyear'}, |
||
Line 296: | Line 303: | ||
['Ref'] = 'ref', |
['Ref'] = 'ref', |
||
['Scale'] = 'scale', |
['Scale'] = 'scale', |
||
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry' |
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry', |
||
'script-article', 'script-section'}, |
|||
['ScriptMap'] = 'script-map', |
['ScriptMap'] = 'script-map', |
||
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper' |
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper', |
||
'script-periodical', 'script-website', 'script-work'}, |
|||
['ScriptQuote'] = 'script-quote', |
['ScriptQuote'] = 'script-quote', |
||
['ScriptTitle'] = 'script-title', -- Used by InternetArchiveBot |
['ScriptTitle'] = 'script-title', -- Used by InternetArchiveBot |
||
Line 305: | Line 314: | ||
['Series'] = {'series', 'version'}, |
['Series'] = {'series', 'version'}, |
||
['SeriesLink'] = {'series-link', 'serieslink'}, |
['SeriesLink'] = {'series-link', 'serieslink'}, |
||
['SeriesNumber'] = {'series-number', 'series-no |
['SeriesNumber'] = {'series-number', 'series-no', 'seriesno'}, |
||
['Sheet'] = 'sheet', -- cite map only |
['Sheet'] = 'sheet', -- cite map only |
||
['Sheets'] = 'sheets', -- cite map only |
['Sheets'] = 'sheets', -- cite map only |
||
Line 315: | Line 324: | ||
['TitleNote'] = 'department', |
['TitleNote'] = 'department', |
||
['TitleType'] = {'type', 'medium'}, |
['TitleType'] = {'type', 'medium'}, |
||
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution' |
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution', |
||
'trans-entry', 'trans-section'}, |
|||
['Transcript'] = 'transcript', |
['Transcript'] = 'transcript', |
||
['TranscriptFormat'] = 'transcript-format', |
['TranscriptFormat'] = 'transcript-format', |
||
['TranscriptURL'] = {'transcript-url', 'transcripturl'}, -- Used by InternetArchiveBot |
['TranscriptURL'] = {'transcript-url', 'transcripturl'}, -- Used by InternetArchiveBot |
||
['TransMap'] = 'trans-map', -- cite map only |
['TransMap'] = 'trans-map', -- cite map only |
||
['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper' |
['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper', |
||
'trans-periodical', 'trans-website', 'trans-work'}, |
|||
['TransQuote'] = 'trans-quote', |
['TransQuote'] = 'trans-quote', |
||
['TransTitle'] = 'trans-title', -- Used by InternetArchiveBot |
['TransTitle'] = 'trans-title', -- Used by InternetArchiveBot |
||
Line 332: | Line 343: | ||
['Year'] = 'year', |
['Year'] = 'year', |
||
['AuthorList-First'] = {"first#", "author-first#", "author#-first", "given#" |
['AuthorList-First'] = {"first#", "author-first#", "author#-first", "given#", |
||
"author-given#", "author#-given"}, |
|||
['AuthorList-Last'] = {"last#", "author-last#", "author#-last", "surname#", "author-surname#", "author#-surname", "author#", "subject#", 'host#'}, |
|||
['AuthorList- |
['AuthorList-Last'] = {"last#", "author-last#", "author#-last", "surname#", |
||
"author-surname#", "author#-surname", "author#", "subject#", 'host#'}, |
|||
['AuthorList-Link'] = {"author-link#", "author#-link", "subject-link#", |
|||
"subject#-link", "authorlink#", "author#link"}, |
|||
['AuthorList-Mask'] = {"author-mask#", "author#-mask", "subject-mask#", "subject#-mask"}, |
|||
['ContributorList-First'] = {'contributor-first#', 'contributor#-first' |
['ContributorList-First'] = {'contributor-first#', 'contributor#-first', |
||
'contributor-given#', 'contributor#-given'}, |
|||
['ContributorList-Last'] = {'contributor-last#', 'contributor#-last', |
|||
'contributor-surname#', 'contributor#-surname', 'contributor#'}, |
|||
['ContributorList-Link'] = {'contributor-link#', 'contributor#-link'}, |
['ContributorList-Link'] = {'contributor-link#', 'contributor#-link'}, |
||
['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-mask'}, |
['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-mask'}, |
||
['EditorList-First'] = {"editor-first#", "editor#-first", "editor-given#", "editor#-given"}, |
['EditorList-First'] = {"editor-first#", "editor#-first", "editor-given#", "editor#-given"}, |
||
['EditorList-Last'] = {"editor-last#", "editor#-last", "editor-surname#" |
['EditorList-Last'] = {"editor-last#", "editor#-last", "editor-surname#", |
||
"editor#-surname", "editor#"}, |
|||
['EditorList-Link'] = {"editor-link#", "editor#-link", "editorlink#", "editor#link"}, -- unhyphenated forms to be deprecated |
|||
['EditorList-Link'] = {"editor-link#", "editor#-link"}, |
|||
['EditorList-Mask'] = {"editor-mask#", "editor#-mask"}, |
['EditorList-Mask'] = {"editor-mask#", "editor#-mask"}, |
||
['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first' |
['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first', |
||
'interviewer-given#', 'interviewer#-given'}, |
|||
['InterviewerList-Last'] = {'interviewer-last#', 'interviewer#-last', |
|||
'interviewer-surname#', 'interviewer#-surname', 'interviewer#'}, |
|||
['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link'}, |
['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link'}, |
||
['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'}, |
['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'}, |
||
['TranslatorList-First'] = {'translator-first#', 'translator#-first' |
['TranslatorList-First'] = {'translator-first#', 'translator#-first', |
||
'translator-given#', 'translator#-given'}, |
|||
['TranslatorList-Last'] = {'translator-last#', 'translator#-last', |
|||
'translator-surname#', 'translator#-surname', 'translator#'}, |
|||
['TranslatorList-Link'] = {'translator-link#', 'translator#-link'}, |
['TranslatorList-Link'] = {'translator-link#', 'translator#-link'}, |
||
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'}, |
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'}, |
||
Line 359: | Line 380: | ||
--[[--------------------------< P U N C T _ S K I P > |
--[[--------------------------< P U N C T _ S K I P >--------------------------- |
||
builds a table of parameter names that the extraneous terminal punctuation check should not check. |
builds a table of parameter names that the extraneous terminal punctuation check should not check. |
||
Line 371: | Line 392: | ||
'AuthorList-Mask', 'ContributorList-Mask', 'EditorList-Mask', 'InterviewerList-Mask', 'TranslatorList-Mask', -- name-list mask may have name separators |
'AuthorList-Mask', 'ContributorList-Mask', 'EditorList-Mask', 'InterviewerList-Mask', 'TranslatorList-Mask', -- name-list mask may have name separators |
||
'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous |
'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous |
||
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- |
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- URL-holding parameters |
||
} |
} |
||
Line 390: | Line 411: | ||
end |
end |
||
--[[-----------< S P E C I A L C A S E T R A N S L A T I O N S >------------ |
|||
This table is primarily here to support internationalization. Translations in |
|||
--[[--------------------------< S P E C I A L C A S E T R A N S L A T I O N S >---------------------------- |
|||
this table are used, for example, when an error message, category name, etc., |
|||
is extracted from the English alias key. There may be other cases where |
|||
This table is primarily here to support internationalization. Translations in this table are used, for example, |
|||
when an error message, category name, etc., is extracted from the English alias key. There may be other cases where |
|||
this translation table may be useful. |
this translation table may be useful. |
||
Line 412: | Line 433: | ||
['translators'] = 'translators', |
['translators'] = 'translators', |
||
-- Lua patterns to match pseudo-titles used by Internet Archive bot and others as |
-- Lua patterns to match pseudo-titles used by Internet Archive bot and others as placeholder for unknown |title= value |
||
['archived_copy'] = { -- used with CS1 maint: Archive[d] copy as title |
['archived_copy'] = { -- used with CS1 maint: Archive[d] copy as title |
||
['en'] = '^archived?%s+copy$', -- for English; translators: keep this because templates imported from en.wiki |
['en'] = '^archived?%s+copy$', -- for English; translators: keep this because templates imported from en.wiki |
||
Line 421: | Line 442: | ||
-- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language |
-- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language |
||
['generic_titles'] = { |
['generic_titles'] = { |
||
-- patterns in this table should be lowercase only |
|||
{ |
|||
-- leave ['local'] nil except when there is a matching generic title in your language |
|||
['en'] = {'^wayback%s+machine$', false}, -- patterns in this table to be lowercase only |
|||
{['en'] = {'^wayback%s+machine$', false}, ['local'] = nil}, |
|||
['local'] = nil, -- leave this nil except when there is a matching generic title in your language |
|||
}, |
|||
{['en'] = {'are you a robot', true}, ['local'] = nil}, |
{['en'] = {'are you a robot', true}, ['local'] = nil}, |
||
{['en'] = {'hugedomains.com', true}, ['local'] = nil}, |
{['en'] = {'hugedomains.com', true}, ['local'] = nil}, |
||
{['en'] = {'^[%(%[{<]?no +title[>}%]%)]?$', false}, ['local'] = nil}, |
{['en'] = {'^[%(%[{<]?no +title[>}%]%)]?$', false}, ['local'] = nil}, |
||
{['en'] = {'page not found', true}, ['local'] = nil}, |
{['en'] = {'page not found', true}, ['local'] = nil}, |
||
{['en'] = {'subscribe to read', true}, ['local'] = nil}, |
|||
{['en'] = {'^[%(%[{<]?unknown[>}%]%)]?$', false}, ['local'] = nil}, |
{['en'] = {'^[%(%[{<]?unknown[>}%]%)]?$', false}, ['local'] = nil}, |
||
{['en'] = {'website is for sale', true}, ['local'] = nil}, |
{['en'] = {'website is for sale', true}, ['local'] = nil}, |
||
Line 438: | Line 459: | ||
--[[--------------------------< D A T E _ N A M E S >---------------------------------------------------------- |
--[[--------------------------< D A T E _ N A M E S >---------------------------------------------------------- |
||
This table of tables lists local language date names and fallback English date names. |
This table of tables lists local language date names and fallback English date names. |
||
will look first in the local table for valid date names. |
The code in Date_validation will look first in the local table for valid date names. |
||
will look in the English table. |
If date names are not found in the local table, the code will look in the English table. |
||
Because citations can be copied to the local wiki from en.wiki, the English is |
Because citations can be copied to the local wiki from en.wiki, the English is |
||
function date_name_xlate() is used. |
required when the date-name translation function date_name_xlate() is used. |
||
In these tables, season numbering is defined by |
In these tables, season numbering is defined by |
||
Extended Date/Time Format (EDTF) Specification (https://www.loc.gov/standards/datetime/) |
|||
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard defines various divisions using |
|||
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard |
|||
numbers 21-41. CS1|2 only supports generic seasons. EDTF does support the distinction between north and south |
|||
defines various divisions using numbers 21-41. CS1|2 only supports generic seasons. |
|||
hemispere seasons but CS1|2 has no way to make that distinction. |
|||
EDTF does support the distinction between north and south hemispere seasons |
|||
but CS1|2 has no way to make that distinction. |
|||
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each) |
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each) |
||
The standard does not address 'named' dates so, for the purposes of CS1|2, |
The standard does not address 'named' dates so, for the purposes of CS1|2, |
||
Easter and Christmas are defined here as 98 and 99, which should be out of the |
|||
should be out of the ISO 8601 (EDTF) range of uses for a while. |
|||
ISO 8601 (EDTF) range of uses for a while. |
|||
]] |
]] |
||
Line 524: | Line 548: | ||
--[[ |
--[[-----------------< V O L U M E , I S S U E , P A G E S >------------------ |
||
These tables hold cite class values (from the template invocation) and identify those templates that support |
These tables hold cite class values (from the template invocation) and identify those templates that support |
||
Line 537: | Line 561: | ||
--[[--------------------------< K E Y W O R D S > |
--[[--------------------------< K E Y W O R D S >------------------------------- |
||
These tables hold keywords for those parameters that have defined sets of acceptable keywords. |
These tables hold keywords for those parameters that have defined sets of acceptable keywords. |
||
Line 543: | Line 567: | ||
]] |
]] |
||
--[[ |
--[[-------------------< K E Y W O R D S T A B L E >-------------------------- |
||
this is a list of keywords; each key in the list is associated with a table of |
this is a list of keywords; each key in the list is associated with a table of |
||
different languages. |
synonymous keywords possibly from different languages. |
||
for I18N: add local-language keywords to value table; do not change the key. |
for I18N: add local-language keywords to value table; do not change the key. |
||
For example, adding the German keyword 'ja': |
|||
['affirmative'] = {'yes', 'true', 'y', 'ja'}, |
['affirmative'] = {'yes', 'true', 'y', 'ja'}, |
||
Because CS1|2 templates from en.wiki articles are often copied to other local wikis, |
Because CS1|2 templates from en.wiki articles are often copied to other local wikis, |
||
keywords remain in these tables. |
it is recommended that the English keywords remain in these tables. |
||
]] |
]] |
||
local keywords = { |
local keywords = { |
||
['amp'] = {'&', 'amp', 'ampersand'}, |
['amp'] = {'&', 'amp', 'ampersand'}, -- |name-list-style= |
||
['and'] = {'and', 'serial'}, |
['and'] = {'and', 'serial'}, -- |name-list-style= |
||
['affirmative'] = {'yes', 'true', 'y'}, -- |
['affirmative'] = {'yes', 'true', 'y'}, -- |no-tracking=, |no-pp= -- Used by InternetArchiveBot |
||
['afterword'] = {'afterword'}, -- |contribution= |
['afterword'] = {'afterword'}, -- |contribution= |
||
['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Used by InternetArchiveBot |
['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Used by InternetArchiveBot |
||
Line 589: | Line 614: | ||
--[[ |
--[[------------------------< X L A T E _ K E Y W O R D S >--------------------- |
||
this function builds a list, keywords_xlate{}, of the keywords found in keywords{} where the values from keywords{} |
this function builds a list, keywords_xlate{}, of the keywords found in keywords{} where the values from keywords{} |
||
Line 618: | Line 643: | ||
--[[ |
--[[----------------< M A K E _ K E Y W O R D S _ L I S T >--------------------- |
||
this function assembles, for parameter-value validation, the list of keywords appropriate to that parameter. |
this function assembles, for parameter-value validation, the list of keywords appropriate to that parameter. |
||
Line 638: | Line 663: | ||
--[[ |
--[[----------------< K E Y W O R D S _ L I S T S >----------------------------- |
||
this is a list of lists of valid keywords for the various parameters in [key]. |
this is a list of lists of valid keywords for the various parameters in [key]. |
||
are the canonical en.wiki parameter names though |
Generally the keys in this table are the canonical en.wiki parameter names though |
||
some are contrived because of use in multiple differently named parameters: |
|||
parameters: ['yes_true_y'], ['id-access']. |
|||
['yes_true_y'], ['id-access']. |
|||
The function make_keywords_list() extracts the individual keywords from the |
The function make_keywords_list() extracts the individual keywords from the |
||
appropriate list in keywords{}. |
|||
The lists in this table are used to validate the keyword assignment for the |
The lists in this table are used to validate the keyword assignment for the |
||
parameters named in this table's keys. |
|||
]] |
]] |
||
Line 663: | Line 691: | ||
--[[ |
--[[---------------------< S T R I P M A R K E R S >---------------------------- |
||
Common pattern definition location for stripmarkers so that we don't have to go |
Common pattern definition location for stripmarkers so that we don't have to go |
||
MediaWiki changes their form. |
hunting for them if (when) MediaWiki changes their form. |
||
]] |
]] |
||
Line 676: | Line 704: | ||
--[[ |
--[[------------< I N V I S I B L E _ C H A R A C T E R S >--------------------- |
||
This table holds non-printing or invisible characters indexed either by name or |
This table holds non-printing or invisible characters indexed either by name or |
||
representations of UTF-8 codes. The table |
by Unicode group. Values are decimal representations of UTF-8 codes. The table |
||
is organized as a table of tables because the Lua pairs keyword returns table |
|||
table data in an arbitrary order. Here, we want to process the table from top to bottom because the entries at |
|||
data in an arbitrary order. Here, we want to process the table from top to bottom |
|||
the top of the table are also found in the ranges specified by the entries at the bottom of the table. |
|||
because the entries at the top of the table are also found in the ranges specified |
|||
by the entries at the bottom of the table. |
|||
Also here is a pattern that recognizes stripmarkers that begin and end with the |
Also here is a pattern that recognizes stripmarkers that begin and end with the |
||
stripmarker is not an error but some others are |
delete characters. The nowiki stripmarker is not an error but some others are |
||
because the parameter values that include them become part of the template's |
|||
template's metadata before stripmarker replacement. |
|||
metadata before stripmarker replacement. |
|||
]] |
]] |
||
Line 710: | Line 741: | ||
--[[ |
--[[ |
||
Indic script makes use of zero width joiner as a character modifier so zwj |
Indic script makes use of zero width joiner as a character modifier so zwj |
||
pattern covers all of the unicode characters |
characters must be left in. This pattern covers all of the unicode characters |
||
for these languages: |
|||
Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf |
Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf |
||
Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf |
Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf |
||
Line 736: | Line 768: | ||
--[[ |
--[[----------------------< L A N G U A G E S U P P O R T >------------------- |
||
These tables and constants support various language-specific functionality. |
These tables and constants support various language-specific functionality. |
||
Line 749: | Line 781: | ||
local languages = mw.language.fetchLanguageNames (this_wiki_code, 'all'); -- get a list of language names known to Wikimedia; used for |language= and interwiki tests |
local languages = mw.language.fetchLanguageNames (this_wiki_code, 'all'); -- get a list of language names known to Wikimedia; used for |language= and interwiki tests |
||
local inter_wiki_map = {}; -- map of |
local inter_wiki_map = {}; -- map of interwiki prefixes that are language-code prefixes |
||
for k, v in pairs (mw.site.interwikiMap ('local')) do -- spin through the base |
for k, v in pairs (mw.site.interwikiMap ('local')) do -- spin through the base interwiki map (limited to local) |
||
if languages[v["prefix"]] then -- if the prefix matches a known language code |
if languages[v["prefix"]] then -- if the prefix matches a known language code |
||
inter_wiki_map[v["prefix"]] = true; -- add it to our local map |
inter_wiki_map[v["prefix"]] = true; -- add it to our local map |
||
Line 759: | Line 791: | ||
--[[ |
--[[--------------------< S C R I P T _ L A N G _ C O D E S >------------------- |
||
This table is used to hold ISO 639-1 two-character and ISO 639-3 three-character |
This table is used to hold ISO 639-1 two-character and ISO 639-3 three-character |
||
to |script-title= and |script-chapter= |
language codes that apply only to |script-title= and |script-chapter= |
||
]] |
]] |
||
local script_lang_codes = { |
local script_lang_codes = { |
||
'am', 'ar', 'be', 'bg', 'bn', 'bo', 'bs', 'dv', 'dz', 'el', 'fa', |
'am', 'ar', 'be', 'bg', 'bn', 'bo', 'bs', 'dv', 'dz', 'el', 'fa', 'gu', |
||
'he', 'hi', 'hy', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lo', |
|||
'mk', 'ml', 'mn', 'mr', 'my', 'ne', 'or', 'ota', 'ps', 'ru', 'sd', 'si', |
|||
' |
'sr', 'ta', 'te', 'tg', 'th', 'ti', 'ug', 'uk', 'ur', 'uz', 'yi', 'zh' |
||
}; |
}; |
||
--[[ |
--[[---------------< L A N G U A G E R E M A P P I N G >---------------------- |
||
These tables hold language information that is different (correct) from MediaWiki's definitions |
These tables hold language information that is different (correct) from MediaWiki's definitions |
||
Line 828: | Line 860: | ||
--[[ |
--[[---------------< P R O P E R T I E S _ C A T E G O R I E S >---------------- |
||
Properties categories. These are used for investigating qualities of citations. |
|||
Here we name properties categories |
|||
]] |
]] |
||
Line 847: | Line 879: | ||
--[[ |
--[[-------------------< T I T L E _ T Y P E S >-------------------------------- |
||
Here we map a template's CitationClass to TitleType (default values for |type= parameter) |
Here we map a template's CitationClass to TitleType (default values for |type= parameter) |
||
Line 866: | Line 898: | ||
--[[ |
--[[===================<< E R R O R M E S S A G I N G >>====================== |
||
]] |
]] |
||
--[[ |
--[[----------< E R R O R M E S S A G E S U P P L I M E N T S >------------- |
||
I18N for those messages that are supplemented with additional specific text that |
I18N for those messages that are supplemented with additional specific text that |
||
the error |
describes the reason for the error |
||
TODO: merge this with special_case_translations{}? |
TODO: merge this with special_case_translations{}? |
||
Line 901: | Line 933: | ||
--[[ |
--[[--------------< E R R O R _ C O N D I T I O N S >--------------------------- |
||
Error condition table. This table has two sections: errors at the top, maintenance |
Error condition table. This table has two sections: errors at the top, maintenance |
||
does not have a 'message' (message=nil) |
at the bottom. Maint 'messaging' does not have a 'message' (message=nil) |
||
The following contains a list of IDs for various error conditions defined in the |
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 |
|||
text message to display, an error category to include, and whether the error message should be wrapped as a hidden comment. |
|||
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 |
Anchor changes require identical changes to matching anchor in Help:CS1 errors |
||
TODO: rename error_conditions{} to something more generic; create separate error |
TODO: rename error_conditions{} to something more generic; create separate error |
||
and maint tables inside that? |
|||
]] |
]] |
||
Line 919: | Line 953: | ||
message = '<code class="cs1-code">|access-date=</code> requires <code class="cs1-code">|url=</code>', |
message = '<code class="cs1-code">|access-date=</code> requires <code class="cs1-code">|url=</code>', |
||
anchor = 'accessdate_missing_url', |
anchor = 'accessdate_missing_url', |
||
category = ' |
category = 'CS1 errors: access-date without URL', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 931: | Line 965: | ||
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|archive-date=</code>', |
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|archive-date=</code>', |
||
anchor = 'archive_missing_date', |
anchor = 'archive_missing_date', |
||
category = ' |
category = 'CS1 errors: archive-url', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 937: | Line 971: | ||
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|url=</code>', |
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|url=</code>', |
||
anchor = 'archive_missing_url', |
anchor = 'archive_missing_url', |
||
category = ' |
category = 'CS1 errors: archive-url', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 943: | Line 977: | ||
message = '<code class="cs1-code">|archive-url=</code> is malformed: $1', -- $1 is error message detail |
message = '<code class="cs1-code">|archive-url=</code> is malformed: $1', -- $1 is error message detail |
||
anchor = 'archive_url', |
anchor = 'archive_url', |
||
category = ' |
category = 'CS1 errors: archive-url', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 983: | Line 1,017: | ||
}, |
}, |
||
err_bad_date = { |
err_bad_date = { |
||
message = 'Check date values in: $1', -- $1 is a parameter name list |
|||
message = 'Check date values in: $1', -- $1 is parameter name |
|||
anchor = 'bad_date', |
anchor = 'bad_date', |
||
category = 'CS1 errors: dates', |
category = 'CS1 errors: dates', |
||
Line 1,023: | Line 1,056: | ||
anchor = 'bad_jfm', |
anchor = 'bad_jfm', |
||
category = 'CS1 errors: JFM', |
category = 'CS1 errors: JFM', |
||
hidden = false |
|||
}, |
|||
err_bad_jstor = { |
|||
message = 'Check <code class="cs1-code">|jstor=</code> value', |
|||
anchor = 'bad_jstor', |
|||
category = 'CS1 errors: JSTOR', |
|||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,035: | Line 1,074: | ||
anchor = 'bad_mr', |
anchor = 'bad_mr', |
||
category = 'CS1 errors: MR', |
category = 'CS1 errors: MR', |
||
hidden = false |
|||
}, |
|||
err_bad_oclc = { |
|||
message = 'Check <code class="cs1-code">|oclc=</code> value', |
|||
anchor = 'bad_oclc', |
|||
category = 'CS1 errors: OCLC', |
|||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,041: | Line 1,086: | ||
anchor = 'bad_ol', |
anchor = 'bad_ol', |
||
category = 'CS1 errors: OL', |
category = 'CS1 errors: OL', |
||
hidden = false |
|||
}, |
|||
err_bad_osti = { |
|||
message = 'Check <code class="cs1-code">|osti=</code> value', |
|||
anchor = 'bad_osti', |
|||
category = 'CS1 errors: OSTI', |
|||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,061: | Line 1,112: | ||
hidden = false |
hidden = false |
||
}, |
}, |
||
err_bad_rfc = { |
|||
message = 'Check <code class="cs1-code">| |
message = 'Check <code class="cs1-code">|rfc=</code> value', |
||
anchor = ' |
anchor = 'bad_rfc', |
||
category = 'CS1 errors: |
category = 'CS1 errors: RFC', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
err_bad_s2cid = { |
|||
message = 'Check <code class="cs1-code">|s2cid=</code> value', |
message = 'Check <code class="cs1-code">|s2cid=</code> value', |
||
anchor = 'bad_s2cid', |
anchor = 'bad_s2cid', |
||
Line 1,088: | Line 1,139: | ||
message = 'Check $1 value', -- $1 is parameter name |
message = 'Check $1 value', -- $1 is parameter name |
||
anchor = 'bad_url', |
anchor = 'bad_url', |
||
category = ' |
category = 'CS1 errors: URL', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,100: | Line 1,151: | ||
message = 'Check <code class="cs1-code">|zbl=</code> value', |
message = 'Check <code class="cs1-code">|zbl=</code> value', |
||
anchor = 'bad_zbl', |
anchor = 'bad_zbl', |
||
category = 'CS1 errors: |
category = 'CS1 errors: Zbl', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,106: | Line 1,157: | ||
message = '$1 missing title', -- $1 is parameter name |
message = '$1 missing title', -- $1 is parameter name |
||
anchor = 'bare_url_missing_title', |
anchor = 'bare_url_missing_title', |
||
category = ' |
category = 'CS1 errors: bare URL', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,124: | Line 1,175: | ||
message = 'Missing or empty <code class="cs1-code">|$1=</code>', -- $1 is parameter name |
message = 'Missing or empty <code class="cs1-code">|$1=</code>', -- $1 is parameter name |
||
anchor = 'citation_missing_title', |
anchor = 'citation_missing_title', |
||
category = ' |
category = 'CS1 errors: missing title', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,136: | Line 1,187: | ||
message = 'Missing or empty <code class="cs1-code">|url=</code>', |
message = 'Missing or empty <code class="cs1-code">|url=</code>', |
||
anchor = 'cite_web_url', |
anchor = 'cite_web_url', |
||
category = ' |
category = 'CS1 errors: requires URL', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,178: | Line 1,229: | ||
message = 'Empty citation', |
message = 'Empty citation', |
||
anchor = 'empty_citation', |
anchor = 'empty_citation', |
||
category = ' |
category = 'CS1 errors: empty citation', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,186: | Line 1,237: | ||
category = 'CS1 errors: explicit use of et al.', |
category = 'CS1 errors: explicit use of et al.', |
||
hidden = false |
hidden = false |
||
}, |
|||
err_extra_text_edition = { |
|||
message = '<code class="cs1-code">|edition=</code> has extra text', |
|||
anchor = 'extra_text_edition', |
|||
category = 'CS1 errors: extra text: edition', |
|||
hidden = false, |
|||
}, |
|||
err_extra_text_pages = { -- TODO make message dependent on triggering parameter i.e. p/pp/page/pages? |
|||
message = '<code class="cs1-code">|page(s)=</code> has extra text', |
|||
anchor = 'extra_text_pages', |
|||
category = 'CS1 errors: extra text: pages', |
|||
hidden = false, |
|||
}, |
}, |
||
err_first_missing_last = { |
err_first_missing_last = { |
||
message = '<code class="cs1-code">|$1=</code> missing <code class="cs1-code">|$2=</code>', -- $1 is first alias, $2 is matching last alias |
message = '<code class="cs1-code">|$1=</code> missing <code class="cs1-code">|$2=</code>', -- $1 is first alias, $2 is matching last alias |
||
anchor = 'first_missing_last', |
anchor = 'first_missing_last', |
||
category = 'CS1 errors: missing name', |
category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,196: | Line 1,259: | ||
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|$2=</code>', -- $1 is format parameter $2 is url parameter |
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|$2=</code>', -- $1 is format parameter $2 is url parameter |
||
anchor = 'format_missing_url', |
anchor = 'format_missing_url', |
||
category = ' |
category = 'CS1 errors: format without URL', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,250: | Line 1,313: | ||
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored', -- $1 is parameter name |
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored', -- $1 is parameter name |
||
anchor = 'parameter_ignored', |
anchor = 'parameter_ignored', |
||
category = ' |
category = 'CS1 errors: unsupported parameter', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,256: | Line 1,319: | ||
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored (<code class="cs1-code">|$2=</code> suggested)', -- $1 is unknown parameter $2 is suggested parameter name |
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored (<code class="cs1-code">|$2=</code> suggested)', -- $1 is unknown parameter $2 is suggested parameter name |
||
anchor = 'parameter_ignored_suggest', |
anchor = 'parameter_ignored_suggest', |
||
category = ' |
category = 'CS1 errors: unsupported parameter', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,262: | Line 1,325: | ||
message = 'More than one of $1 specified', -- $1 is error message detail |
message = 'More than one of $1 specified', -- $1 is error message detail |
||
anchor = 'redundant_parameters', |
anchor = 'redundant_parameters', |
||
category = ' |
category = 'CS1 errors: redundant parameter', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,274: | Line 1,337: | ||
message = '<code class="cs1-code">|ssrn=</code> required', |
message = '<code class="cs1-code">|ssrn=</code> required', |
||
anchor = 'ssrn_missing', |
anchor = 'ssrn_missing', |
||
category = 'CS1 errors: |
category = 'CS1 errors: SSRN', -- same as bad arxiv |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,280: | Line 1,343: | ||
message = 'Text "$1" ignored', -- $1 is ignored text |
message = 'Text "$1" ignored', -- $1 is ignored text |
||
anchor = 'text_ignored', |
anchor = 'text_ignored', |
||
category = ' |
category = 'CS1 errors: unrecognized parameter', |
||
hidden = false |
hidden = false |
||
}, |
}, |
||
Line 1,293: | Line 1,356: | ||
anchor = 'param_unknown_empty', |
anchor = 'param_unknown_empty', |
||
category = 'CS1 errors: empty unknown parameters', |
category = 'CS1 errors: empty unknown parameters', |
||
hidden = |
hidden = false |
||
}, |
}, |
||
err_vancouver = { |
err_vancouver = { |
||
Line 1,309: | Line 1,372: | ||
--[[--------------------------< M A I N T > |
--[[--------------------------< M A I N T >------------------------------------- |
||
maint messages do not have a message (message = nil); otherwise the structure |
maint messages do not have a message (message = nil); otherwise the structure |
||
is the same as error messages |
|||
]] |
]] |
||
maint_asin = { |
maint_asin = { |
||
message = nil, |
message = nil, |
||
Line 1,336: | Line 1,399: | ||
message = nil, |
message = nil, |
||
anchor = 'bot:_unknown', |
anchor = 'bot:_unknown', |
||
category = 'CS1 maint: |
category = 'CS1 maint: bot: original URL status unknown', |
||
hidden = true, |
hidden = true, |
||
}, |
}, |
||
Line 1,373: | Line 1,436: | ||
anchor = 'extra_punct', |
anchor = 'extra_punct', |
||
category = 'CS1 maint: extra punctuation', |
category = 'CS1 maint: extra punctuation', |
||
hidden = true, |
|||
}, |
|||
maint_extra_text = { |
|||
message = nil, |
|||
anchor = 'extra_text', |
|||
category = 'CS1 maint: extra text', |
|||
hidden = true, |
hidden = true, |
||
}, |
}, |
||
Line 1,421: | Line 1,478: | ||
anchor = 'mult_names', |
anchor = 'mult_names', |
||
category = 'CS1 maint: multiple names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table |
category = 'CS1 maint: multiple names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table |
||
hidden = true, |
|||
}, |
|||
maint_nocat = { |
|||
message = nil, |
|||
anchor = 'maint_nocat', |
|||
category = 'CS1 maint: nocat', |
|||
hidden = true, |
hidden = true, |
||
}, |
}, |
||
Line 1,462: | Line 1,513: | ||
message = nil, |
message = nil, |
||
anchor = 'unfit', |
anchor = 'unfit', |
||
category = 'CS1 maint: unfit |
category = 'CS1 maint: unfit URL', |
||
hidden = true, |
hidden = true, |
||
}, |
}, |
||
Line 1,480: | Line 1,531: | ||
message = nil, |
message = nil, |
||
anchor = 'zbl', |
anchor = 'zbl', |
||
category = 'CS1 maint: |
category = 'CS1 maint: Zbl', |
||
hidden = true, |
hidden = true, |
||
}, |
}, |
||
Line 1,488: | Line 1,539: | ||
--[[--------------------------< I D _ H A N D L E R S >-------------------------------------------------------- |
--[[--------------------------< I D _ H A N D L E R S >-------------------------------------------------------- |
||
The following contains a list of values for various defined identifiers. For each |
The following contains a list of values for various defined identifiers. For each |
||
variety of information necessary to properly render the |
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; first in the list is the canonical form |
parameters: a list of parameter aliases for this identifier; first in the list is the canonical form |
||
link: Wikipedia article name |
link: Wikipedia article name |
||
redirect: a local redirect to a local Wikipedia article name; at en.wiki, 'ISBN (identifier)' is a redirect to 'International Standard Book Number' |
redirect: a local redirect to a local Wikipedia article name; at en.wiki, 'ISBN (identifier)' is a redirect to 'International Standard Book Number' |
||
q: |
q: Wikidata q number for the identifier |
||
label: the label preceeding the identifier; label is linked to a |
label: the label preceeding the identifier; label is linked to a Wikipedia article (in this order): |
||
redirect from id_handlers['<id>'].redirect when use_identifier_redirects is true |
redirect from id_handlers['<id>'].redirect when use_identifier_redirects is true |
||
Wikidata-supplied article name for the local wiki from id_handlers['<id>'].q |
|||
local article name from id_handlers['<id>'].link |
local article name from id_handlers['<id>'].link |
||
prefix: the first part of a URL that will be concatenated with a second part which usually contains 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 |
|||
suffix: optional third part to be added after the identifier |
suffix: optional third part to be added after the identifier |
||
encode: true if |
encode: true if URI should be percent-encoded; otherwise false |
||
COinS: identifier link or keyword for use in COinS: |
COinS: identifier link or keyword for use in COinS: |
||
for identifiers registered at info-uri.info use: info:.... |
for identifiers registered at info-uri.info use: info:.... |
||
for identifiers that have COinS keywords, use the keyword: rft.isbn, rft.issn, rft.eissn |
for identifiers that have COinS keywords, use the keyword: rft.isbn, rft.issn, rft.eissn |
||
for others make a |
for others make a URL using the value in prefix/suffix and #label, use the keyword: pre (not checked; any text other than 'info' or 'rft' works here) |
||
set to nil to leave the identifier out of the COinS |
set to nil to leave the identifier out of the COinS |
||
separator: character or text between label and the identifier in the rendered citation |
separator: character or text between label and the identifier in the rendered citation |
||
id_limit: for those identifiers with established limits, this property holds the upper limit |
id_limit: for those identifiers with established limits, this property holds the upper limit |
||
access: use this parameter to set the access level for all instances of this identifier. |
access: use this parameter to set the access level for all instances of this identifier. |
||
the value must be a valid access level for an identifier (see ['id-access'] in this file). |
|||
custom_access: to enable custom access level for an identifier, set this parameter |
custom_access: to enable custom access level for an identifier, set this parameter |
||
to the parameter that should control it (normally 'id-access') |
|||
]] |
]] |
||
Line 1,524: | Line 1,574: | ||
q = 'Q118398', |
q = 'Q118398', |
||
label = 'arXiv', |
label = 'arXiv', |
||
prefix = '//arxiv.org/abs/', -- protocol-relative tested 2013-09-04 |
|||
mode = 'manual', |
|||
prefix = '//arxiv.org/abs/', -- protocol relative tested 2013-09-04 |
|||
encode = false, |
encode = false, |
||
COinS = 'info:arxiv', |
COinS = 'info:arxiv', |
||
Line 1,537: | Line 1,586: | ||
q = 'Q1753278', |
q = 'Q1753278', |
||
label = 'ASIN', |
label = 'ASIN', |
||
mode = 'manual', |
|||
prefix = '//www.amazon.', |
prefix = '//www.amazon.', |
||
COinS = nil, -- no COinS for this id (needs thinking on implementation because |asin-tld=) |
COinS = nil, -- no COinS for this id (TODO: needs thinking on implementation because |asin-tld=) |
||
separator = ' ', |
separator = ' ', |
||
encode = false; |
encode = false; |
||
Line 1,549: | Line 1,597: | ||
q = 'Q25754', |
q = 'Q25754', |
||
label = 'Bibcode', |
label = 'Bibcode', |
||
mode = 'manual', |
|||
prefix = 'https://ui.adsabs.harvard.edu/abs/', |
prefix = 'https://ui.adsabs.harvard.edu/abs/', |
||
encode = false, |
encode = false, |
||
Line 1,562: | Line 1,609: | ||
q = 'Q19835482', |
q = 'Q19835482', |
||
label = 'bioRxiv', |
label = 'bioRxiv', |
||
mode = 'manual', |
|||
prefix = '//doi.org/', |
prefix = '//doi.org/', |
||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
Line 1,575: | Line 1,621: | ||
q = 'Q2715061', |
q = 'Q2715061', |
||
label = 'CiteSeerX', |
label = 'CiteSeerX', |
||
mode = 'manual', -- manual for custom validation of the "doi" |
|||
prefix = '//citeseerx.ist.psu.edu/viewdoc/summary?doi=', |
prefix = '//citeseerx.ist.psu.edu/viewdoc/summary?doi=', |
||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
Line 1,588: | Line 1,633: | ||
q = 'Q25670', |
q = 'Q25670', |
||
label = 'doi', |
label = 'doi', |
||
mode = 'manual', |
|||
prefix = '//doi.org/', |
prefix = '//doi.org/', |
||
COinS = 'info:doi', |
COinS = 'info:doi', |
||
Line 1,597: | Line 1,641: | ||
['EISSN'] = { |
['EISSN'] = { |
||
parameters = {'eissn', 'EISSN'}, |
parameters = {'eissn', 'EISSN'}, |
||
link = ' |
link = 'International Standard Serial Number#Electronic ISSN', |
||
redirect = 'eISSN (identifier)', |
redirect = 'eISSN (identifier)', |
||
q = 'Q46339674', |
q = 'Q46339674', |
||
label = 'eISSN', |
label = 'eISSN', |
||
mode = 'manual', |
|||
prefix = '//www.worldcat.org/issn/', |
prefix = '//www.worldcat.org/issn/', |
||
COinS = 'rft.eissn', |
COinS = 'rft.eissn', |
||
Line 1,613: | Line 1,656: | ||
q = 'Q3126718', |
q = 'Q3126718', |
||
label = 'hdl', |
label = 'hdl', |
||
mode = 'manual', |
|||
prefix = '//hdl.handle.net/', |
prefix = '//hdl.handle.net/', |
||
COinS = 'info:hdl', |
COinS = 'info:hdl', |
||
Line 1,626: | Line 1,668: | ||
q = 'Q33057', |
q = 'Q33057', |
||
label = 'ISBN', |
label = 'ISBN', |
||
mode = 'manual', |
|||
prefix = 'Special:BookSources/', |
prefix = 'Special:BookSources/', |
||
COinS = 'rft.isbn', |
COinS = 'rft.isbn', |
||
Line 1,637: | Line 1,678: | ||
q = 'Q1666938', |
q = 'Q1666938', |
||
label = 'ISMN', |
label = 'ISMN', |
||
mode = 'manual', |
|||
prefix = '', -- not currently used; |
prefix = '', -- not currently used; |
||
COinS = 'nil', -- nil because we can't use pre or rft or info: |
COinS = 'nil', -- nil because we can't use pre or rft or info: |
||
Line 1,648: | Line 1,688: | ||
q = 'Q131276', |
q = 'Q131276', |
||
label = 'ISSN', |
label = 'ISSN', |
||
mode = 'manual', |
|||
prefix = '//www.worldcat.org/issn/', |
prefix = '//www.worldcat.org/issn/', |
||
COinS = 'rft.issn', |
COinS = 'rft.issn', |
||
Line 1,660: | Line 1,699: | ||
q = '', |
q = '', |
||
label = 'JFM', |
label = 'JFM', |
||
mode = 'manual', |
|||
prefix = '//zbmath.org/?format=complete&q=an:', |
prefix = '//zbmath.org/?format=complete&q=an:', |
||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
Line 1,672: | Line 1,710: | ||
q = 'Q1420342', |
q = 'Q1420342', |
||
label = 'JSTOR', |
label = 'JSTOR', |
||
prefix = '//www.jstor.org/stable/', -- protocol-relative tested 2013-09-04 |
|||
mode = 'external', |
|||
prefix = '//www.jstor.org/stable/', -- protocol relative tested 2013-09-04 |
|||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
encode = false, |
encode = false, |
||
Line 1,685: | Line 1,722: | ||
q = 'Q620946', |
q = 'Q620946', |
||
label = 'LCCN', |
label = 'LCCN', |
||
prefix = '//lccn.loc.gov/', -- protocol-relative tested 2015-12-28 |
|||
mode = 'manual', |
|||
prefix = '//lccn.loc.gov/', -- protocol relative tested 2015-12-28 |
|||
COinS = 'info:lccn', |
COinS = 'info:lccn', |
||
encode = false, |
encode = false, |
||
Line 1,697: | Line 1,733: | ||
q = 'Q211172', |
q = 'Q211172', |
||
label = 'MR', |
label = 'MR', |
||
prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol-relative tested 2013-09-04 |
|||
mode = 'manual', |
|||
prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol relative tested 2013-09-04 |
|||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
encode = true, |
encode = true, |
||
Line 1,709: | Line 1,744: | ||
q = 'Q190593', |
q = 'Q190593', |
||
label = 'OCLC', |
label = 'OCLC', |
||
mode = 'manual', |
|||
prefix = '//www.worldcat.org/oclc/', |
prefix = '//www.worldcat.org/oclc/', |
||
COinS = 'info:oclcnum', |
COinS = 'info:oclcnum', |
||
encode = true, |
encode = true, |
||
separator = ' ', |
separator = ' ', |
||
id_limit = 9999999999, -- 10-digits |
|||
}, |
}, |
||
['OL'] = { |
['OL'] = { |
||
Line 1,721: | Line 1,756: | ||
q = 'Q1201876', |
q = 'Q1201876', |
||
label = 'OL', |
label = 'OL', |
||
mode = 'manual', |
|||
prefix = '//openlibrary.org/', |
prefix = '//openlibrary.org/', |
||
COinS = nil, |
COinS = nil, -- no COinS for this id (TODO: needs thinking on implementation because /authors/books/works/OL) |
||
separator = ' ', |
separator = ' ', |
||
encode = true, |
encode = true, |
||
Line 1,734: | Line 1,768: | ||
q = 'Q2015776', |
q = 'Q2015776', |
||
label = 'OSTI', |
label = 'OSTI', |
||
prefix = '//www.osti.gov/biblio/', -- protocol-relative tested 2018-09-12 |
|||
mode = 'external', |
|||
prefix = '//www.osti.gov/biblio/', -- protocol relative tested 2018-09-12 |
|||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
encode = true, |
encode = true, |
||
separator = ' ', |
separator = ' ', |
||
id_limit = 23000000, |
|||
custom_access = 'osti-access', |
custom_access = 'osti-access', |
||
}, |
}, |
||
Line 1,747: | Line 1,781: | ||
q = 'Q229883', |
q = 'Q229883', |
||
label = 'PMC', |
label = 'PMC', |
||
mode = 'manual', |
|||
prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC', |
prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC', |
||
suffix = |
suffix = '', |
||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
encode = true, |
encode = true, |
||
Line 1,760: | Line 1,793: | ||
link = 'PubMed Identifier', |
link = 'PubMed Identifier', |
||
redirect = 'PMID (identifier)', |
redirect = 'PMID (identifier)', |
||
q = '', |
q = 'Q2082879', |
||
label = 'PMID', |
label = 'PMID', |
||
mode = 'manual', |
|||
prefix = '//pubmed.ncbi.nlm.nih.gov/', |
prefix = '//pubmed.ncbi.nlm.nih.gov/', |
||
COinS = 'info:pmid', |
COinS = 'info:pmid', |
||
encode = false, |
encode = false, |
||
separator = ' ', |
separator = ' ', |
||
id_limit = |
id_limit = 33700000, |
||
}, |
}, |
||
['RFC'] = { |
['RFC'] = { |
||
Line 1,775: | Line 1,807: | ||
q = 'Q212971', |
q = 'Q212971', |
||
label = 'RFC', |
label = 'RFC', |
||
mode = 'external', |
|||
prefix = '//tools.ietf.org/html/rfc', |
prefix = '//tools.ietf.org/html/rfc', |
||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
encode = false, |
encode = false, |
||
separator = ' ', |
separator = ' ', |
||
id_limit = 9000, |
|||
access = 'free', -- free to read |
access = 'free', -- free to read |
||
}, |
}, |
||
Line 1,787: | Line 1,819: | ||
redirect = 'SBN (identifier)', |
redirect = 'SBN (identifier)', |
||
label = 'SBN', |
label = 'SBN', |
||
mode = 'manual', |
|||
prefix = 'Special:BookSources/0-', -- prefix has leading zero necessary to make 9-digit sbn a 10-digit isbn |
prefix = 'Special:BookSources/0-', -- prefix has leading zero necessary to make 9-digit sbn a 10-digit isbn |
||
COinS = nil, -- nil because we can't use pre or rft or info: |
COinS = nil, -- nil because we can't use pre or rft or info: |
||
Line 1,798: | Line 1,829: | ||
q = 'Q7550801', |
q = 'Q7550801', |
||
label = 'SSRN', |
label = 'SSRN', |
||
prefix = '//ssrn.com/abstract=', -- protocol-relative tested 2013-09-04 |
|||
mode = 'manual', |
|||
prefix = '//ssrn.com/abstract=', -- protocol relative tested 2013-09-04 |
|||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
encode = true, |
encode = true, |
||
Line 1,812: | Line 1,842: | ||
q = 'Q22908627', |
q = 'Q22908627', |
||
label = 'S2CID', |
label = 'S2CID', |
||
mode = 'manual', |
|||
prefix = 'https://api.semanticscholar.org/CorpusID:', |
prefix = 'https://api.semanticscholar.org/CorpusID:', |
||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
encode = false, |
encode = false, |
||
separator = ' ', |
separator = ' ', |
||
id_limit = |
id_limit = 235000000, |
||
custom_access = 's2cid-access', |
custom_access = 's2cid-access', |
||
}, |
}, |
||
Line 1,826: | Line 1,855: | ||
q = 'Q193162', |
q = 'Q193162', |
||
label = 'Usenet:', |
label = 'Usenet:', |
||
mode = 'manual', |
|||
prefix = 'news:', |
prefix = 'news:', |
||
encode = false, |
encode = false, |
||
Line 1,838: | Line 1,866: | ||
q = 'Q190269', |
q = 'Q190269', |
||
label = 'Zbl', |
label = 'Zbl', |
||
mode = 'manual', |
|||
prefix = '//zbmath.org/?format=complete&q=an:', |
prefix = '//zbmath.org/?format=complete&q=an:', |
||
COinS = 'pre', -- use prefix value |
COinS = 'pre', -- use prefix value |
||
Line 1,847: | Line 1,874: | ||
--[[--------------------------< E X P O R T S > |
--[[--------------------------< E X P O R T S >--------------------------------- |
||
]] |
]] |
||