Module:Citation/CS1/Configuration: Difference between revisions
No edit summary Tag: Reverted |
No edit summary Tag: Manual revert |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
--[[--------------------------< 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 | List of namespaces that should not be included in citation error categories. | ||
Same as setting notracking = true by default. | Same as setting notracking = true by default. | ||
Note: Namespace names should use underscores instead of spaces. | |||
]] | ]] | ||
local | local uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', | ||
'File_talk', 'Template_talk', 'Help_talk', 'Category_talk', 'Portal_talk', | |||
'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 | 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 | ||
--[[--------------------------< M E S S A G E S >-------------------------------------------------------------- | --[[--------------------------< M E S S A G E S >-------------------------------------------------------------- | ||
| Line 69: | Line 29: | ||
['archived-dead'] = 'Archived from $1 on $2', | ['archived-dead'] = 'Archived from $1 on $2', | ||
['archived-live'] = '$1 from the original on $2', | ['archived-live'] = '$1 from the original on $2', | ||
['archived-missing'] = 'Archived from the original$1 on $2', | |||
['archived-unfit'] = 'Archived from the original on ', | ['archived-unfit'] = 'Archived from the original on ', | ||
['archived'] = 'Archived', | ['archived'] = 'Archived', | ||
| Line 82: | Line 43: | ||
['inset'] = '$1 inset', | ['inset'] = '$1 inset', | ||
['interview'] = 'Interviewed by $1', | ['interview'] = 'Interviewed by $1', | ||
['lay summary'] = 'Lay summary', | |||
['mismatch'] = '<code class="cs1-code">|$1=</code> / <code class="cs1-code">|$2=</code> mismatch', -- $1 is year param name; $2 is date param name | ['mismatch'] = '<code class="cs1-code">|$1=</code> / <code class="cs1-code">|$2=</code> mismatch', -- $1 is year param name; $2 is date param name | ||
['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]: $1', | ['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]: $1', | ||
| Line 99: | Line 61: | ||
['vol'] = '$1 Vol. $2', -- $1 is sepc; bold journal style volume is in presentation{} | ['vol'] = '$1 Vol. $2', -- $1 is sepc; bold journal style volume is in presentation{} | ||
['vol-no'] = '$1 Vol. $2 | ['vol-no'] = '$1 Vol. $2 no. $3', -- sepc, volume, issue | ||
['issue'] = '$1 No. $2', -- $1 is sepc | ['issue'] = '$1 No. $2', -- $1 is sepc | ||
['j-vol'] = '$1 $2', -- sepc, volume; bold journal volume is in presentation{} | ['j-vol'] = '$1 $2', -- sepc, volume; bold journal volume is in presentation{} | ||
['j-issue'] = ' ($1)', | ['j-issue'] = ' ($1)', | ||
['nopp'] = '$1 $2'; -- page(s) without prefix; $1 is sepc | ['nopp'] = '$1 $2'; -- page(s) without prefix; $1 is sepc | ||
| Line 131: | Line 89: | ||
-- categories | -- categories | ||
['cat wikilink'] = '[[Category:$1]]', -- $1 is the category name | ['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 | [':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 | ['unknown_ID_key'] = 'Unrecognized ID key', -- an ID key in id_handlers not found in ~/Identifiers func_map{} | ||
['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 181: | Line 107: | ||
local et_al_patterns = { | local et_al_patterns = { | ||
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%. | "[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.\"']*$", -- variations on the 'et al' theme | ||
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][AaIi][Ee]?[%. | "[;,]? *[\"']*%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", -- an alternative to et al. | "[;,]? *%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]%.? *%)%)", | "%(%( *[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 | ||
} | } | ||
--[[--------------------------< | --[[--------------------------< E D I T O R _ M A R K U P _ P A T T E R N S >---------------------------------- | ||
This table provides Lua patterns for the phrase "ed" and variants in name text | |||
(author, editor, etc.). The main module uses these to identify and emit the | |||
'extra_text_names' message. (It is not the only series of patterns for this message.) | |||
]] | ]] | ||
local editor_markup_patterns = { -- these patterns match annotations at end of name | |||
'%f[%(%[][%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]?$', -- (ed) or (eds): leading '(', case insensitive 'ed', optional 's', '.' and/or ')' | |||
'[,%.%s]%f[e]eds?%.?$', -- ed or eds: without '('or ')'; case sensitive (ED could be initials Ed could be name) | |||
'%f[%(%[][%(%[]%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?%s*[%)%]]?$', -- (editor) or (editors): leading '(', case insensitive, optional '.' and/or ')' | |||
'[,%.%s]%f[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?$', -- editor or editors: without '('or ')'; case insensitive | |||
-- these patterns match annotations at beginning of name | |||
'^eds?[%.,;]', -- ed. or eds.: lower case only, optional 's', requires '.' | |||
'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', -- (ed) or (eds): also sqare brackets, case insensitive, optional 's', '.' | |||
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%A', -- (editor or (editors: also square brackets, case insensitive, optional brackets, 's' | |||
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Ee][Dd]%A', -- (edited: also square brackets, case insensitive, optional brackets | |||
local presentation = | -- these patterns match annotations that are the 'name' | ||
'^[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?$', -- editor or editors; case insensitive | |||
} | |||
--[[--------------------------< 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 | -- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display | ||
['hidden-error'] = '<span class="cs1-hidden-error citation-comment">$1</span>', | ['hidden-error'] = '<span class="cs1-hidden-error error citation-comment">$1</span>', | ||
['visible-error'] = '<span class="cs1-visible-error citation-comment">$1</span>', | ['visible-error'] = '<span class="cs1-visible-error error citation-comment">$1</span>', | ||
['hidden-maint'] = '<span class="cs1-maint citation-comment">$1</span>', | ['hidden-maint'] = '<span class="cs1-maint citation-comment">$1</span>', | ||
| Line 208: | Line 160: | ||
['bdi'] = '<bdi$1>$2</bdi>', -- bidirectional isolation used with |script-title= and the like | ['bdi'] = '<bdi$1>$2</bdi>', -- bidirectional isolation used with |script-title= and the like | ||
['cite'] = '<cite class="$1">$2</cite>'; -- | ['cite'] = '<cite class="$1">$2</cite>'; -- |ref= not set so no id="..." attribute | ||
['cite-id'] = '<cite id="$1" class="$2">$3</cite>'; -- for use | ['cite-id'] = '<cite id="$1" class="$2">$3</cite>'; -- for use when |ref= is set | ||
['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=, ... | -- various access levels, for |access=, |doi-access=, |arxiv=, ... | ||
| Line 219: | Line 169: | ||
['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 | ||
['free'] = {class=' | ['free'] = {class='cs1-lock-free', title='Freely accessible'}, -- classes defined in Module:Citation/CS1/styles.css | ||
['registration'] = {class=' | ['registration'] = {class='cs1-lock-registration', title='Free registration required'}, | ||
['limited'] = {class=' | ['limited'] = {class='cs1-lock-limited', title='Free access subject to limited trial, subscription normally required'}, | ||
['subscription'] = {class=' | ['subscription'] = {class='cs1-lock-subscription', title='Paid subscription required'}, | ||
['interwiki-icon'] = '<span class="$1" title="$2">$3</span>', | ['interwiki-icon'] = '<span class="$1" title="$2">$3</span>', | ||
| Line 229: | Line 179: | ||
['italic-title'] = "''$1''", | ['italic-title'] = "''$1''", | ||
['kern-left'] = '<span class="cs1-kern-left"></span>$ | ['kern-left'] = '<span class="cs1-kern-left">$1</span>$2', -- spacing to use when title contains leading single or double quote mark | ||
['kern-right'] = '$1<span class="cs1-kern-right"></span>', | ['kern-right'] = '$1<span class="cs1-kern-right">$2</span>', -- spacing to use when title contains trailing single or double quote mark | ||
-- these for simple wikilinked titles [["text]], [[text"]] and [["text"]] | |||
-- span wraps entire wikilink | |||
['kern-wl-left'] = '<span class="cs1-kern-wl-left">$1</span>', -- when title contains leading single or double quote mark | |||
['kern-wl-right'] = '<span class="cs1-kern-wl-left">$1</span>', -- when title contains trailing single or double quote mark | |||
['kern-wl-both'] = '<span class="cs1-kern-wl-left cs1-kern-wl-right">$1</span>', -- when title contains leading and trailing single or double quote marks | |||
['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span> | ['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span> | ||
| Line 238: | Line 194: | ||
['parameter'] = '<code class="cs1-code">|$1=</code>', | ['parameter'] = '<code class="cs1-code">|$1=</code>', | ||
['ps_cs1'] = '.'; -- CS1 style postscript (terminal) character | ['ps_cs1'] = '.'; -- CS1 style postscript (terminal) character | ||
['ps_cs2'] = ''; -- CS2 style postscript (terminal) character (empty string) | ['ps_cs2'] = ''; -- CS2 style postscript (terminal) character (empty string) | ||
['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content | ['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content | ||
['quoted-title'] = ' | ['quoted-title'] = '\'$1\'', | ||
['sep_cs1'] = '.', -- CS1 element separator | ['sep_cs1'] = '.', -- CS1 element separator | ||
| Line 250: | Line 206: | ||
['sep_nl_and'] = ' and ', -- used as last nl sep when |name-list-style=and and list has 2 items | ['sep_nl_and'] = ' and ', -- used as last nl sep when |name-list-style=and and list has 2 items | ||
['sep_nl_end'] = '; and ', -- used as last nl sep when |name-list-style=and and list has 3+ names | ['sep_nl_end'] = '; and ', -- used as last nl sep when |name-list-style=and and list has 3+ names | ||
['sep_name'] = ' | ['sep_name'] = ' ', -- CS1|2 style last/first separator is <comma><space> | ||
['sep_nl_vanc'] = ',', -- Vancouver style name-list separator between authors is a comma | ['sep_nl_vanc'] = ',', -- Vancouver style name-list separator between authors is a comma | ||
['sep_name_vanc'] = ' ', -- Vancouver style last/first separator is a space | ['sep_name_vanc'] = ' ', -- Vancouver style last/first separator is a space | ||
| Line 279: | Line 235: | ||
['ArchiveFormat'] = 'archive-format', | ['ArchiveFormat'] = 'archive-format', | ||
['ArchiveURL'] = {'archive-url', 'archiveurl'}, -- Used by InternetArchiveBot | ['ArchiveURL'] = {'archive-url', 'archiveurl'}, -- Used by InternetArchiveBot | ||
['ASINTLD'] = 'asin-tld', | ['ASINTLD'] = 'asin-tld', | ||
['At'] = 'at', -- Used by InternetArchiveBot | ['At'] = 'at', -- Used by InternetArchiveBot | ||
['Authors'] = {'people', 'credits'}, | ['Authors'] = {'authors', 'people', 'credits'}, | ||
['BookTitle'] = {'book-title', 'booktitle'}, | ['BookTitle'] = {'book-title', 'booktitle'}, | ||
['Cartography'] = 'cartography', | ['Cartography'] = 'cartography', | ||
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'}, | ['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'}, | ||
['ChapterWikilink'] = {'chapter-wikilink'}, | |||
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format', | ['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format', | ||
'article-format', 'section-format'}; | 'article-format', 'section-format'}; | ||
['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url'}, -- Used by InternetArchiveBot | ['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', | ||
'section-url', 'chapterurl'}, -- Used by InternetArchiveBot | |||
['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access', | ['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access', | ||
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot | 'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot | ||
['Class'] = 'class', -- cite arxiv and arxiv | ['Class'] = 'class', -- cite arxiv and arxiv identifiers | ||
['Collaboration'] = 'collaboration', | ['Collaboration'] = 'collaboration', | ||
['Conference'] = {'conference', 'event'}, | ['Conference'] = {'conference', 'event'}, | ||
| Line 315: | Line 272: | ||
['Issue'] = {'issue', 'number'}, | ['Issue'] = {'issue', 'number'}, | ||
['Language'] = {'language', 'lang'}, | ['Language'] = {'language', 'lang'}, | ||
['LayDate'] = 'lay-date', | |||
['LayFormat'] = 'lay-format', | |||
['LaySource'] = 'lay-source', | |||
['LayURL'] = 'lay-url', | |||
['MailingList'] = {'mailing-list', 'mailinglist'}, -- cite mailing list only | ['MailingList'] = {'mailing-list', 'mailinglist'}, -- cite mailing list only | ||
['Map'] = 'map', -- cite map only | ['Map'] = 'map', -- cite map only | ||
| Line 345: | Line 306: | ||
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry', | ['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry', | ||
'script-article', 'script-section'}, | 'script-article', 'script-section'}, | ||
['ScriptMap'] = 'script-map', | ['ScriptMap'] = 'script-map', | ||
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper', | ['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper', | ||
| Line 363: | Line 323: | ||
['Title'] = 'title', -- Used by InternetArchiveBot | ['Title'] = 'title', -- Used by InternetArchiveBot | ||
['TitleLink'] = {'title-link', 'episode-link', 'episodelink'}, -- Used by InternetArchiveBot | ['TitleLink'] = {'title-link', 'episode-link', 'episodelink'}, -- Used by InternetArchiveBot | ||
['TitleNote'] = | ['TitleNote'] = 'department', | ||
['TitleType'] = {'type', 'medium'}, | ['TitleType'] = {'type', 'medium'}, | ||
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution', | ['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution', | ||
| Line 369: | Line 329: | ||
['Transcript'] = 'transcript', | ['Transcript'] = 'transcript', | ||
['TranscriptFormat'] = 'transcript-format', | ['TranscriptFormat'] = 'transcript-format', | ||
['TranscriptURL'] = 'transcript-url', | ['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', | ||
| Line 385: | Line 344: | ||
['Year'] = 'year', | ['Year'] = 'year', | ||
['AuthorList-First'] = {"first#", "author-first#", "author#-first", " | ['AuthorList-First'] = {"first#", "author-first#", "author#-first", "given#", | ||
" | "author-given#", "author#-given"}, | ||
['AuthorList-Last'] = {"last#", "author-last#", "author#-last", "surname#", | |||
['AuthorList-Last'] = {"last#", "author-last#", "author#-last", " | "author-surname#", "author#-surname", "author#", "subject#", 'host#'}, | ||
['AuthorList-Link'] = {"author-link#", "author#-link", "subject-link#", | ['AuthorList-Link'] = {"author-link#", "author#-link", "subject-link#", | ||
"subject#-link", "authorlink#", "author#link"}, | "subject#-link", "authorlink#", "author#link"}, | ||
| Line 430: | Line 387: | ||
]] | ]] | ||
local | local punct_skip = {}; | ||
local meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value | |||
'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters | 'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters | ||
'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', | 'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous | ||
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'MapURL', 'TranscriptURL', 'URL', | 'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- URL-holding parameters | ||
} | } | ||
for _, meta_param in ipairs (meta_params) do -- for each meta parameter key | for _, meta_param in ipairs (meta_params) do -- for each meta parameter key | ||
local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name | local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name | ||
if 'string' == type (params) then | if 'string' == type (params) then | ||
punct_skip[params] = 1; -- just a single parameter | |||
else | else | ||
for _, param in ipairs (params) do -- get the parameter name | for _, param in ipairs (params) do -- get the parameter name | ||
punct_skip[param] = 1; -- add the parameter name to the skip table | |||
local count; | local count; | ||
param, count = param:gsub ('#', ''); -- remove enumerator marker from enumerated parameters | param, count = param:gsub ('#', ''); -- remove enumerator marker from enumerated parameters | ||
if 0 ~= count then -- if removed | if 0 ~= count then -- if removed | ||
punct_skip[param] = 1; -- add param name without enumerator marker | |||
end | end | ||
end | end | ||
end | end | ||
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 | |||
this table are used, for example, when an error message, category name, etc., | |||
this table used | is extracted from the English alias key. There may be other cases where | ||
this translation table may be useful. | |||
]] | ]] | ||
local special_case_translation = { | |||
['AuthorList'] = 'authors list', -- used to assemble maintenance category names | |||
['ContributorList'] = 'contributors list', -- translation of these names plus translation of the base mainenance category names in maint_cats{} table below | |||
local special_case_translation = { | |||
['AuthorList'] = 'authors list', -- used to assemble maintenance category names | |||
['ContributorList'] = 'contributors list', -- translation of these names plus translation of the base | |||
['EditorList'] = 'editors list', -- must match the names of the actual categories | ['EditorList'] = 'editors list', -- must match the names of the actual categories | ||
['InterviewerList'] = 'interviewers list', -- this group or translations used by name_has_ed_markup() and name_has_mult_names() | ['InterviewerList'] = 'interviewers list', -- this group or translations used by name_has_ed_markup() and name_has_mult_names() | ||
| Line 525: | Line 437: | ||
-- Lua patterns to match generic titles; usually created by bots or reference filling tools | -- Lua patterns to match generic titles; usually created by bots or reference filling tools | ||
-- 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'] = { | ||
-- patterns in this table should be lowercase only | |||
-- leave ['local'] nil except when there is a matching generic title in your language | -- leave ['local'] nil except when there is a matching generic title in your language | ||
-- generic titles must be lowercase | |||
-- boolean 'true' for plain-text searches; 'false' for pattern searches | -- boolean 'true' for plain-text searches; 'false' for pattern searches | ||
{['en'] = {'^wayback%s+machine$', false}, ['local'] = nil}, | |||
{['en'] = {'are you a robot', true}, ['local'] = nil}, | |||
{['en'] = {'hugedomains.com', true}, ['local'] = nil}, | |||
{['en'] = {'^[%(%[{<]?no +title[>}%]%)]?$', false}, ['local'] = nil}, | |||
{['en'] = {'page not found', true}, ['local'] = nil}, | |||
{['en'] = {'subscribe to read', true}, ['local'] = nil}, | |||
{['en'] = {'^[%(%[{<]?unknown[>}%]%)]?$', false}, ['local'] = nil}, | |||
{['en'] = {'website is for sale', true}, ['local'] = nil}, | |||
{['en'] = {'^404', true}, ['local'] = nil}, | |||
{['en'] = {'internet archive wayback machine', true}, ['local'] = nil}, | |||
{['en'] = {'log into facebook', true}, ['local'] = nil}, | |||
{['en'] = {'redirecting...', true}, ['local'] = nil}, | |||
{['en'] = {'webcite query result', true}, ['local'] = nil}, | |||
{['en'] = {'wikiwix\'s cache', true}, ['local'] = nil}, | |||
} | |||
} | } | ||
| Line 634: | Line 481: | ||
Easter and Christmas are defined here as 98 and 99, which should be out of the | Easter and Christmas are defined here as 98 and 99, which should be out of the | ||
ISO 8601 (EDTF) range of uses for a while. | ISO 8601 (EDTF) range of uses for a while. | ||
]] | ]] | ||
local date_names = { | local date_names = { | ||
['en'] = { -- English | ['en'] = { -- English | ||
| Line 658: | Line 492: | ||
['named'] = {['Easter'] = 98, ['Christmas'] = 99}, | ['named'] = {['Easter'] = 98, ['Christmas'] = 99}, | ||
}, | }, | ||
['local'] = { -- replace these English date names with the local language equivalents | ['local'] = { -- replace these English date names with the local language equivalents | ||
['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12}, | ['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12}, | ||
| Line 666: | Line 499: | ||
['named'] = {['Easter'] = 98, ['Christmas'] = 99}, | ['named'] = {['Easter'] = 98, ['Christmas'] = 99}, | ||
}, | }, | ||
[' | ['inv_local_l'] = {}, -- used in date reformatting; copy of date_names['local'].long where k/v are inverted: [1]='<local name>' etc. | ||
[' | ['inv_local_s'] = {}, -- used in date reformatting; copy of date_names['local'].short where k/v are inverted: [1]='<local name>' etc. | ||
['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- used to convert local language digits to Western 0-9 | ['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- used to convert local language digits to Western 0-9 | ||
['xlate_digits'] = {}, | ['xlate_digits'] = {}, | ||
} | } | ||
for name, i in pairs (date_names['local'].long) do -- this table is ['name'] = i | |||
date_names['inv_local_l'][i] = name; -- invert to get [i] = 'name' for conversions from ymd | |||
date_names[' | |||
end | end | ||
for name, i in pairs (date_names['local'].short) do -- this table is ['name'] = i | |||
date_names['inv_local_s'][i] = name; -- invert to get [i] = 'name' for conversions from ymd | |||
end | end | ||
| Line 721: | Line 532: | ||
'{{ *([Mm]DY) *[|}]', -- 0 | '{{ *([Mm]DY) *[|}]', -- 0 | ||
} | } | ||
local function get_date_format () | local function get_date_format () | ||
local content = mw.title.getCurrentTitle():getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625 | |||
for _, pattern in ipairs (df_template_patterns) do -- loop through the patterns looking for {{Use dmy dates}} or {{Use mdy dates}} or any of their redirects | for _, pattern in ipairs (df_template_patterns) do -- loop through the patterns looking for {{Use dmy dates}} or {{Use mdy dates}} or any of their redirects | ||
local start, _, match = content:find(pattern); -- match is the three letters indicating desired date format | local start, _, match = content:find(pattern); -- match is the three letters indicating desired date format | ||
if match then | if match then | ||
content = content:match ('%b{}', start); -- get the whole template | |||
if | if content:match ('| *cs1%-dates *= *[lsy][sy]?') then -- look for |cs1-dates=publication date length access-/archive-date length | ||
return match:lower() .. '-' .. | return match:lower() .. '-' .. content:match ('| *cs1%-dates *= *([lsy][sy]?)'); | ||
else | else | ||
return match:lower() .. '-all'; -- no |cs1-dates= k/v pair; return value appropriate for use in |df= | return match:lower() .. '-all'; -- no |cs1-dates= k/v pair; return value appropriate for use in |df= | ||
| Line 745: | Line 548: | ||
end | end | ||
local global_df; | local global_df = get_date_format (); | ||
| Line 760: | Line 563: | ||
local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'} | local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'} | ||
--[[ | --[[ | ||
| Line 787: | Line 574: | ||
bad_ppatterns = { -- patterns for |page= and |pages= | bad_ppatterns = { -- patterns for |page= and |pages= | ||
'^[Pp][PpGg]?%.?[ %d]', | '^[Pp][PpGg]?%.?[ %d]', | ||
'^[Pp]ages?', | '^[Pp]ages?', | ||
'^[Pp]gs.?', | '^[Pp]gs.?', | ||
}, | }, | ||
vpatterns = { -- patterns for |volume= | |||
'^volumes?', | '^volumes?', | ||
'^vols?[%.:=]?', | '^vols?[%.:=]?' | ||
}, | |||
'^issues?', | ipatterns = { -- patterns for |issue= | ||
'^issues?', | |||
'^iss[%.:=]?', | '^iss[%.:=]?', | ||
'^numbers?', | '^numbers?', | ||
'^nos?%A', -- don't match 'november' or 'nostradamus' | '^nos?%A', -- don't match 'november' or 'nostradamus' | ||
'^nr[%.:=]?', | '^nr[%.:=]?', | ||
'^n[%.:= ]' | '^n[%.:= ]' -- might be a valid issue without separator (space char is sep char here) | ||
} | |||
} | |||
} | } | ||
| Line 834: | Line 619: | ||
['cs1'] = {'cs1'}, -- |mode= | ['cs1'] = {'cs1'}, -- |mode= | ||
['cs2'] = {'cs2'}, -- |mode= | ['cs2'] = {'cs2'}, -- |mode= | ||
['dead'] = {'dead | ['dead'] = {'dead'}, -- |url-status= -- Used by InternetArchiveBot | ||
['dmy'] = {'dmy'}, -- |df= | ['dmy'] = {'dmy'}, -- |df= | ||
['dmy-all'] = {'dmy-all'}, -- |df= | ['dmy-all'] = {'dmy-all'}, -- |df= | ||
['foreword'] = {'foreword'}, -- |contribution= | ['foreword'] = {'foreword'}, -- |contribution= | ||
['free'] = {'free'}, -- | | ['free'] = {'free'}, -- |url-access= -- Used by InternetArchiveBot | ||
['introduction'] = {'introduction'}, -- |contribution= | ['introduction'] = {'introduction'}, -- |contribution= | ||
['limited'] = {'limited'}, -- |url-access= -- Used by InternetArchiveBot | ['limited'] = {'limited'}, -- |url-access= -- Used by InternetArchiveBot | ||
| Line 931: | Line 715: | ||
['mode'] = make_keywords_list ({keywords.cs1, keywords.cs2}), | ['mode'] = make_keywords_list ({keywords.cs1, keywords.cs2}), | ||
['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}), | ['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}), | ||
['url-access'] = make_keywords_list ({keywords.subscription, keywords.limited, keywords.registration}), | ['url-access'] = make_keywords_list ({keywords.subscription, keywords.limited, keywords.registration}), | ||
['url-status'] = make_keywords_list ({keywords.dead, keywords.live, keywords.unfit, keywords.usurped, keywords['bot: unknown']}), | ['url-status'] = make_keywords_list ({keywords.dead, keywords.live, keywords.unfit, keywords.usurped, keywords['bot: unknown']}), | ||
| Line 938: | Line 721: | ||
--[[ | --[[---------------------< 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 | |||
hunting for them if (when) MediaWiki changes their form. | |||
]] | ]] | ||
local | local stripmarkers = { | ||
['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- capture returns name of stripmarker | |||
['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers used in coins_cleanup() and coins_replace_math_stripmarker() | |||
} | |||
--[[------------< 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 | |||
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 | |||
data in an arbitrary order. Here, we want to process the table from top to bottom | |||
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 | |||
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 | |||
metadata before stripmarker replacement. | |||
]] | |||
local invisible_defs = { | |||
del = '\127', -- used to distinguish between stripmarker and del char | |||
zwj = '\226\128\141', -- used with capture because zwj may be allowed | |||
} | |||
local invisible_chars = { | |||
{'replacement', '\239\191\189'}, -- U+FFFD, EF BF BD | |||
{'zero width joiner', '('.. invisible_defs.zwj .. ')'}, -- U+200D, E2 80 8D; capture because zwj may be allowed | |||
{'zero width space', '\226\128\139'}, -- U+200B, E2 80 8B | |||
{'hair space', '\226\128\138'}, -- U+200A, E2 80 8A | |||
{'soft hyphen', '\194\173'}, -- U+00AD, C2 AD | |||
{'horizontal tab', '\009'}, -- U+0009 (HT), 09 | |||
{'line feed', '\010'}, -- U+000A (LF), 0A | |||
{'no-break space', '\194\160'}, -- U+00A0 (NBSP), C2 A0 | |||
{'carriage return', '\013'}, -- U+000D (CR), 0D | |||
{'stripmarker', stripmarkers.any}, -- stripmarker; may or may not be an error; capture returns the stripmaker type | |||
{'delete', '('.. invisible_defs.del .. ')'}, -- U+007F (DEL), 7F; must be done after stripmarker test; capture to distinguish isolated del chars not part of stripmarker | |||
{'C0 control', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D)) | |||
{'C1 control', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F | |||
-- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF | |||
-- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF | |||
-- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD | |||
-- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD | |||
} | } | ||
--[[ | |||
Indic script makes use of zero width joiner as a character modifier so zwj | |||
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 extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf | |||
Bengali 0980–09FF – https://unicode.org/charts/PDF/U0980.pdf | |||
Gurmukhi 0A00–0A7F – https://unicode.org/charts/PDF/U0A00.pdf | |||
Gujarati 0A80–0AFF – https://unicode.org/charts/PDF/U0A80.pdf | |||
Oriya 0B00–0B7F – https://unicode.org/charts/PDF/U0B00.pdf | |||
Tamil 0B80–0BFF – https://unicode.org/charts/PDF/U0B80.pdf | |||
Telugu 0C00–0C7F – https://unicode.org/charts/PDF/U0C00.pdf | |||
Kannada 0C80–0CFF – https://unicode.org/charts/PDF/U0C80.pdf | |||
Malayalam 0D00–0D7F – https://unicode.org/charts/PDF/U0D00.pdf | |||
plus the not-necessarily Indic scripts for Sinhala and Burmese: | |||
Sinhala 0D80-0DFF - https://unicode.org/charts/PDF/U0D80.pdf | |||
Myanmar 1000-109F - https://unicode.org/charts/PDF/U1000.pdf | |||
Myanmar extended A AA60-AA7F - https://unicode.org/charts/PDF/UAA60.pdf | |||
Myanmar extended B A9E0-A9FF - https://unicode.org/charts/PDF/UA9E0.pdf | |||
the pattern is used by has_invisible_chars() and coins_cleanup() | |||
]] | |||
local indic_script = '[\224\164\128-\224\181\191\224\163\160-\224\183\191\225\128\128-\225\130\159\234\167\160-\234\167\191\234\169\160-\234\169\191]'; | |||
-- list of emoji that use zwj character (U+200D) to combine with another emoji | |||
local emoji = { -- indexes are decimal forms of the hex values in U+xxxx | |||
[127752] = true, -- U+1F308 🌈 rainbow | |||
[127806] = true, -- U+1F33E 🌾 ear of rice | |||
[127859] = true, -- U+1F373 🍳 cooking | |||
] | [127891] = true, -- U+1F393 🎓 graduation cap | ||
[127908] = true, -- U+1F3A4 🎤 microphone | |||
[127912] = true, -- U+1F3A8 🎨 artist palette | |||
[127979] = true, -- U+1F3EB 🏫 school | |||
[127981] = true, -- U+1F3ED 🏭 factory | |||
[128102] = true, -- U+1F466 👦 boy | |||
[128103] = true, -- U+1F467 👧 girl | |||
[128104] = true, -- U+1F468 👨 man | |||
[128105] = true, -- U+1F469 👩 woman | |||
[128139] = true, -- U+1F48B 💋 kiss mark | |||
[128187] = true, -- U+1F4BB 💻 personal computer | |||
[128188] = true, -- U+1F4BC 💼 brief case | |||
[128295] = true, -- U+1F527 🔧 wrench | |||
[128300] = true, -- U+1F52C 🔬 microscope | |||
[128488] = true, -- U+1F5E8 🗨 left speech bubble | |||
[128640] = true, -- U+1F680 🚀 rocket | |||
[128658] = true, -- U+1F692 🚒 fire engine | |||
[129309] = true, -- U+1F91D 🤝 handshake | |||
[129455] = true, -- U+1F9AF 🦯 probing cane | |||
[129456] = true, -- U+1F9B0 🦰 emoji component red hair | |||
[129457] = true, -- U+1F9B1 🦱 emoji component curly hair | |||
[129458] = true, -- U+1F9B2 🦲 emoji component bald | |||
[129459] = true, -- U+1F9B3 🦳 emoji component white hair | |||
[129466] = true, -- U+1F9BA 🦺 safety vest | |||
[129468] = true, -- U+1F9BC 🦼 motorized wheelchair | |||
[129469] = true, -- U+1F9BD 🦽 manual wheelchair | |||
[129489] = true, -- U+1F9D1 🧑 adult | |||
-- | |||
] | |||
-- | |||
[ | |||
[ | |||
[9760] = true, -- U+2620 ☠ skull and crossbones | [9760] = true, -- U+2620 ☠ skull and crossbones | ||
[9792] = true, -- U+2640 ♀ female sign | [9792] = true, -- U+2640 ♀ female sign | ||
| Line 1,099: | Line 837: | ||
[9877] = true, -- U+2695 ⚕ staff of aesculapius | [9877] = true, -- U+2695 ⚕ staff of aesculapius | ||
[9878] = true, -- U+2696 ⚖ scales | [9878] = true, -- U+2696 ⚖ scales | ||
[9992] = true, -- U+2708 ✈ airplane | [9992] = true, -- U+2708 ✈ airplane | ||
[10084] = true, -- U+2764 ❤ heavy black heart | [10084] = true, -- U+2764 ❤ heavy black heart | ||
} | |||
} | |||
--[[----------------------< L A N G U A G E S U P P O R T >------------------- | --[[----------------------< L A N G U A G E S U P P O R T >------------------- | ||
| Line 1,159: | Line 848: | ||
]] | ]] | ||
local this_wiki_code = mw.getContentLanguage():getCode(); -- get this wiki's language code | |||
if string.match (mw.site.server, 'wikidata') then | |||
if string.match (mw.site.server, 'wikidata') then | this_wiki_code = mw.getCurrentFrame():preprocess('{{int:lang}}'); -- on Wikidata so use interface language setting instead | ||
this_wiki_code = mw.getCurrentFrame(): | |||
end | end | ||
local | 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 interwiki prefixes that are language-code prefixes | 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 interwiki map (limited to local) | for k, v in pairs (mw.site.interwikiMap ('local')) do -- spin through the base interwiki map (limited to local) | ||
if | 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 | ||
end | end | ||
end | end | ||
local local_lang_cat_enable = false; -- set to true to categorize pages where |language=<local wiki's language> | |||
| Line 1,194: | Line 873: | ||
local script_lang_codes = { | local script_lang_codes = { | ||
'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' | |||
}; | }; | ||
| Line 1,207: | Line 884: | ||
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 | ||
For each [' | For each ['code'] = 'language name' in lang_code_remap{} there must be a matching ['language name'] = {'language name', 'code'} in lang_name_remap{} | ||
lang_code_remap{}: | |||
key is always lowercase ISO 639-1, -2, -3 language | key is always lowercase ISO 639-1, -2, -3 language code or a valid lowercase IETF language tag | ||
value is properly spelled and capitalized language name associated with | value is properly spelled and capitalized language name associated with key | ||
only one language name per | only one language name per key; | ||
key/value pair must have matching entry in lang_name_remap{} | key/value pair must have matching entry in lang_name_remap{} | ||
lang_name_remap{}: | lang_name_remap{}: | ||
key is always lowercase language name | key is always lowercase language name | ||
value is a table the holds correctly spelled and capitalized language name [1] and associated | value is a table the holds correctly spelled and capitalized language name [1] and associated code [2] (code must match a code key in lang_code_remap{}) | ||
may have multiple keys referring to a common preferred name and | may have multiple keys referring to a common preferred name and code; For example: | ||
['kolsch'] and ['kölsch'] both refer to 'Kölsch' and 'ksh' | ['kolsch'] and ['kölsch'] both refer to 'Kölsch' and 'ksh' | ||
]] | ]] | ||
local | local lang_code_remap = { -- used for |language= and |script-title= / |script-chapter= | ||
['als'] = 'Tosk Albanian', -- MediaWiki returns Alemannisch | ['als'] = 'Tosk Albanian', -- MediaWiki returns Alemannisch | ||
['bh'] = 'Bihari', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org | ['bh'] = 'Bihari', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org | ||
| Line 1,229: | Line 906: | ||
['bn'] = 'Bengali', -- MediaWiki returns Bangla | ['bn'] = 'Bengali', -- MediaWiki returns Bangla | ||
['ca-valencia'] = 'Valencian', -- IETF variant of Catalan | ['ca-valencia'] = 'Valencian', -- IETF variant of Catalan | ||
[' | ['crh'] = 'Crimean Tatar', -- synonymous with Crimean Turkish (return value from {{#language:crh|en}}) | ||
['ilo'] = 'Ilocano', -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name | ['ilo'] = 'Ilocano', -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name | ||
['ksh'] = 'Kölsch', -- MediaWiki: Colognian; use IANA/ISO 639 preferred name | ['ksh'] = 'Kölsch', -- MediaWiki: Colognian; use IANA/ISO 639 preferred name | ||
| Line 1,236: | Line 912: | ||
['mis-x-ripuar'] = 'Ripuarian', -- override MediaWiki ksh; no IANA/ISO 639 code for Ripuarian; IETF private code created at Module:Lang/data | ['mis-x-ripuar'] = 'Ripuarian', -- override MediaWiki ksh; no IANA/ISO 639 code for Ripuarian; IETF private code created at Module:Lang/data | ||
['nan-tw'] = 'Taiwanese Hokkien', -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese and support en.wiki preferred name | ['nan-tw'] = 'Taiwanese Hokkien', -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese and support en.wiki preferred name | ||
} | } | ||
local lang_name_remap = { -- used for |language= | local lang_name_remap = { -- used for |language= | ||
['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org | ['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org | ||
['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap | ['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap | ||
| Line 1,249: | Line 922: | ||
['blackfoot'] = {'Blackfoot', 'bla'}, -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name | ['blackfoot'] = {'Blackfoot', 'bla'}, -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name | ||
['colognian'] = {'Colognian', 'ksh-x-colog'}, -- MediaWiki preferred name for ksh | ['colognian'] = {'Colognian', 'ksh-x-colog'}, -- MediaWiki preferred name for ksh | ||
['crimean tatar'] = {'Crimean Tatar', 'crh'}, -- MediaWiki uses 'crh' as a subdomain name for Crimean Tatar Wikipedia: crh.wikipedia.org | |||
['ilocano'] = {'Ilocano', 'ilo'}, -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name | ['ilocano'] = {'Ilocano', 'ilo'}, -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name | ||
['kolsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name (use non-diacritical o instead of umlaut ö) | ['kolsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name (use non-diacritical o instead of umlaut ö) | ||
['kölsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name | ['kölsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name | ||
['ripuarian'] = {'Ripuarian', 'mis-x-ripuar'}, -- group of dialects; no code in MediaWiki or in IANA/ISO 639 | ['ripuarian'] = {'Ripuarian', 'mis-x-ripuar'}, -- group of dialects; no code in MediaWiki or in IANA/ISO 639 | ||
['taiwanese hokkien'] = {'Taiwanese Hokkien', 'nan-TW'}, -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese | |||
['taiwanese hokkien'] = {'Taiwanese Hokkien', 'nan- | |||
['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found | ['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found | ||
['valencian'] = {'Valencian', 'ca | ['valencian'] = {'Valencian', 'ca'}, -- variant of Catalan; categorizes as Catalan | ||
} | } | ||
| Line 1,271: | Line 940: | ||
local prop_cats = { | local prop_cats = { | ||
[' | ['foreign_lang_source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is foreign-language name, $2 is ISO639-1 code | ||
[' | ['foreign_lang_source_2'] = 'CS1 foreign language sources (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code used as a sort key | ||
[' | ['local_lang_source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is local-language name, $2 is ISO639-1 code; not emitted when local_lang_cat_enable is false | ||
['location test'] = 'CS1 location test', | |||
['script'] = 'CS1 uses foreign language script', -- when language specified by |script-title=xx: doesn't have its own category | |||
['location | ['script_with_name'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code | ||
[' | ['jul_greg_uncertainty'] = 'CS1: Julian–Gregorian uncertainty', -- probably temporary cat to identify scope of template with dates 1 October 1582 – 1 January 1926 | ||
[' | ['long_vol'] = 'CS1: long volume value', -- probably temporary cat to identify scope of |volume= values longer than 4 charachters | ||
['year_range_abbreviated'] = 'CS1: abbreviated year range', -- probably temporary cat to identify scope of |date=, |year= values using YYYY–YY form | |||
[' | |||
[' | |||
[' | |||
} | } | ||
| Line 1,294: | Line 960: | ||
local title_types = { | local title_types = { | ||
['AV-media-notes'] = 'Media notes', | ['AV-media-notes'] = 'Media notes', | ||
['interview'] = 'Interview', | ['interview'] = 'Interview', | ||
['mailinglist'] = 'Mailing list', | ['mailinglist'] = 'Mailing list', | ||
| Line 1,301: | Line 966: | ||
['pressrelease'] = 'Press release', | ['pressrelease'] = 'Press release', | ||
['report'] = 'Report', | ['report'] = 'Report', | ||
['techreport'] = 'Technical report', | ['techreport'] = 'Technical report', | ||
['thesis'] = 'Thesis', | ['thesis'] = 'Thesis', | ||
} | } | ||
| Line 1,375: | Line 989: | ||
['group'] = 'invalid group id', -- |isbn= | ['group'] = 'invalid group id', -- |isbn= | ||
['initials'] = 'initials', -- Vancouver | ['initials'] = 'initials', -- Vancouver | ||
['journal'] = 'journal', -- |bibcode= | ['journal'] = 'journal', -- |bibcode= | ||
['length'] = 'length', -- |isbn=, |bibcode=, |sbn= | ['length'] = 'length', -- |isbn=, |bibcode=, |sbn= | ||
['liveweb'] = 'liveweb', -- |archive-url= | ['liveweb'] = 'liveweb', -- |archive-url= | ||
['missing comma'] = 'missing comma', -- Vancouver | ['missing comma'] = 'missing comma', -- Vancouver | ||
['name'] = 'name', -- Vancouver | ['name'] = 'name', -- Vancouver | ||
['non-Latin char'] = 'non-Latin character', -- Vancouver | ['non-Latin char'] = 'non-Latin character', -- Vancouver | ||
| Line 1,390: | Line 1,001: | ||
['suffix'] = 'suffix', -- Vancouver | ['suffix'] = 'suffix', -- Vancouver | ||
['timestamp'] = 'timestamp', -- |archive-url= | ['timestamp'] = 'timestamp', -- |archive-url= | ||
['value'] = 'value', -- |bibcode= | ['value'] = 'value', -- |bibcode= | ||
['year'] = 'year', -- |bibcode= | ['year'] = 'year', -- |bibcode= | ||
| Line 1,425: | Line 1,035: | ||
hidden = false | hidden = false | ||
}, | }, | ||
err_archive_missing_date = { | err_archive_missing_date = { | ||
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>', | ||
| Line 1,555: | Line 1,153: | ||
anchor = 'bad_lccn', | anchor = 'bad_lccn', | ||
category = 'CS1 errors: LCCN', | category = 'CS1 errors: LCCN', | ||
hidden = false | hidden = false | ||
}, | }, | ||
| Line 1,759: | Line 1,351: | ||
anchor = 'extra_text_volume', | anchor = 'extra_text_volume', | ||
category = 'CS1 errors: extra text: volume', | category = 'CS1 errors: extra text: volume', | ||
hidden = | hidden = true, | ||
}, | }, | ||
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,772: | Line 1,364: | ||
category = 'CS1 errors: format without URL', | category = 'CS1 errors: format without URL', | ||
hidden = false | hidden = false | ||
}, | }, | ||
err_generic_title = { | err_generic_title = { | ||
| Line 1,784: | Line 1,370: | ||
category = 'CS1 errors: generic title', | category = 'CS1 errors: generic title', | ||
hidden = false, | hidden = false, | ||
}, | }, | ||
err_invalid_param_val = { | err_invalid_param_val = { | ||
| Line 1,801: | Line 1,381: | ||
anchor = 'invisible_char', | anchor = 'invisible_char', | ||
category = 'CS1 errors: invisible characters', | category = 'CS1 errors: invisible characters', | ||
hidden = false | hidden = false | ||
}, | }, | ||
| Line 1,819: | Line 1,393: | ||
anchor = 'missing_periodical', | anchor = 'missing_periodical', | ||
category = 'CS1 errors: missing periodical', | category = 'CS1 errors: missing periodical', | ||
hidden = | hidden = true | ||
}, | }, | ||
err_missing_pipe = { | err_missing_pipe = { | ||
| Line 1,826: | Line 1,400: | ||
category = 'CS1 errors: missing pipe', | category = 'CS1 errors: missing pipe', | ||
hidden = false | hidden = false | ||
}, | }, | ||
err_param_access_requires_param = { | err_param_access_requires_param = { | ||
| Line 1,849: | Line 1,411: | ||
anchor = 'param_has_ext_link', | anchor = 'param_has_ext_link', | ||
category = 'CS1 errors: external links', | category = 'CS1 errors: external links', | ||
hidden = false | hidden = false | ||
}, | }, | ||
| Line 1,867: | Line 1,423: | ||
anchor = 'parameter_ignored_suggest', | anchor = 'parameter_ignored_suggest', | ||
category = 'CS1 errors: unsupported parameter', | category = 'CS1 errors: unsupported parameter', | ||
hidden = false | hidden = false | ||
}, | }, | ||
| Line 1,890: | Line 1,440: | ||
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: SSRN', | category = 'CS1 errors: SSRN', -- same as bad arxiv | ||
hidden = false | hidden = false | ||
}, | }, | ||
| Line 1,931: | Line 1,481: | ||
]] | ]] | ||
maint_archived_copy = { | maint_archived_copy = { | ||
message = nil, | message = nil, | ||
| Line 1,938: | Line 1,487: | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
maint_authors = { | |||
message = nil, | message = nil, | ||
anchor = ' | anchor = 'authors', | ||
category = 'CS1 maint: | category = 'CS1 maint: uses authors parameter', | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
| Line 1,954: | Line 1,497: | ||
anchor = 'bot:_unknown', | anchor = 'bot:_unknown', | ||
category = 'CS1 maint: bot: original URL status unknown', | category = 'CS1 maint: bot: original URL status unknown', | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
| Line 1,972: | Line 1,509: | ||
anchor = 'date_year', | anchor = 'date_year', | ||
category = 'CS1 maint: date and year', | category = 'CS1 maint: date and year', | ||
hidden = true, | |||
}, | |||
maint_discouraged = { | |||
message = nil, | |||
anchor = 'discouraged', | |||
category = 'CS1 maint: discouraged parameter', | |||
hidden = true, | hidden = true, | ||
}, | }, | ||
| Line 1,992: | Line 1,535: | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
maint_extra_punct = { | |||
message = nil, | message = nil, | ||
anchor = ' | anchor = 'extra_punct', | ||
category = 'CS1 maint: | category = 'CS1 maint: extra punctuation', | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
maint_extra_text_names = { | |||
message = nil, | message = nil, | ||
anchor = ' | anchor = 'extra_text_names', | ||
category = 'CS1 maint: extra | category = 'CS1 maint: extra text: $1', -- $1 is '<name>s list'; gets value from special_case_translation table | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
| Line 2,033: | Line 1,570: | ||
category = 'CS1 maint: location', | category = 'CS1 maint: location', | ||
hidden = true, | hidden = true, | ||
}, | |||
maint_mr_format = { | maint_mr_format = { | ||
message = nil, | message = nil, | ||
| Line 2,045: | Line 1,576: | ||
category = 'CS1 maint: MR format', | category = 'CS1 maint: MR format', | ||
hidden = true, | hidden = true, | ||
}, | |||
maint_mult_names = { | maint_mult_names = { | ||
message = nil, | message = nil, | ||
| Line 2,069: | Line 1,600: | ||
category = 'CS1 maint: others in cite AV media (notes)', | category = 'CS1 maint: others in cite AV media (notes)', | ||
hidden = true, | hidden = true, | ||
}, | |||
maint_pmc_embargo = { | maint_pmc_embargo = { | ||
message = nil, | message = nil, | ||
| Line 2,098: | Line 1,617: | ||
anchor = 'postscript', | anchor = 'postscript', | ||
category = 'CS1 maint: postscript', | category = 'CS1 maint: postscript', | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
| Line 2,112: | Line 1,625: | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
maint_ref_harv = { | |||
message = nil, | |||
anchor = 'ref_harv', | |||
category = 'CS1 maint: ref=harv', | |||
hidden = true, | |||
}, | |||
maint_unfit = { | |||
message = nil, | |||
anchor = 'unfit', | |||
category = 'CS1 maint: unfit URL', | |||
hidden = true, | |||
}, | |||
maint_unknown_lang = { | maint_unknown_lang = { | ||
message = nil, | message = nil, | ||
| Line 2,122: | Line 1,647: | ||
anchor = 'untitled', | anchor = 'untitled', | ||
category = 'CS1 maint: untitled periodical', | category = 'CS1 maint: untitled periodical', | ||
hidden = true, | hidden = true, | ||
}, | }, | ||
| Line 2,143: | Line 1,656: | ||
}, | }, | ||
} | } | ||
| Line 2,191: | Line 1,668: | ||
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: Wikidata q number for the identifier | q: Wikidata q number for the identifier | ||
label: the label | 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 | Wikidata-supplied article name for the local wiki from id_handlers['<id>'].q | ||
| Line 2,210: | Line 1,687: | ||
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') | to the parameter that should control it (normally 'id-access') | ||
]] | ]] | ||
| Line 2,220: | Line 1,696: | ||
q = 'Q118398', | q = 'Q118398', | ||
label = 'arXiv', | label = 'arXiv', | ||
prefix = ' | prefix = '//arxiv.org/abs/', -- protocol-relative tested 2013-09-04 | ||
encode = false, | encode = false, | ||
COinS = 'info:arxiv', | COinS = 'info:arxiv', | ||
| Line 2,232: | Line 1,708: | ||
q = 'Q1753278', | q = 'Q1753278', | ||
label = 'ASIN', | label = 'ASIN', | ||
prefix = ' | prefix = '//www.amazon.', | ||
COinS = 'url', | COinS = 'url', | ||
separator = ' ', | separator = ' ', | ||
| Line 2,255: | Line 1,731: | ||
q = 'Q19835482', | q = 'Q19835482', | ||
label = 'bioRxiv', | label = 'bioRxiv', | ||
prefix = ' | prefix = '//doi.org/', | ||
COinS = 'pre', -- use prefix value | COinS = 'pre', -- use prefix value | ||
access = 'free', -- free to read | access = 'free', -- free to read | ||
| Line 2,267: | Line 1,743: | ||
q = 'Q2715061', | q = 'Q2715061', | ||
label = 'CiteSeerX', | label = 'CiteSeerX', | ||
prefix = ' | prefix = '//citeseerx.ist.psu.edu/viewdoc/summary?doi=', | ||
COinS = 'pre', -- use prefix value | COinS = 'pre', -- use prefix value | ||
access = 'free', -- free to read | access = 'free', -- free to read | ||
| Line 2,279: | Line 1,755: | ||
q = 'Q25670', | q = 'Q25670', | ||
label = 'doi', | label = 'doi', | ||
prefix = ' | prefix = '//doi.org/', | ||
COinS = 'info:doi', | COinS = 'info:doi', | ||
separator = ':', | separator = ':', | ||
| Line 2,291: | Line 1,767: | ||
q = 'Q46339674', | q = 'Q46339674', | ||
label = 'eISSN', | label = 'eISSN', | ||
prefix = ' | prefix = '//www.worldcat.org/issn/', | ||
COinS = 'rft.eissn', | COinS = 'rft.eissn', | ||
encode = false, | encode = false, | ||
| Line 2,302: | Line 1,778: | ||
q = 'Q3126718', | q = 'Q3126718', | ||
label = 'hdl', | label = 'hdl', | ||
prefix = ' | prefix = '//hdl.handle.net/', | ||
COinS = 'info:hdl', | COinS = 'info:hdl', | ||
separator = ':', | separator = ':', | ||
| Line 2,309: | Line 1,785: | ||
}, | }, | ||
['ISBN'] = { -- Used by InternetArchiveBot | ['ISBN'] = { -- Used by InternetArchiveBot | ||
parameters = {'isbn', 'ISBN'}, | parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'}, | ||
link = 'International Standard Book Number', | link = 'International Standard Book Number', | ||
redirect = 'ISBN (identifier)', | redirect = 'ISBN (identifier)', | ||
| Line 2,331: | Line 1,807: | ||
parameters = {'issn', 'ISSN'}, | parameters = {'issn', 'ISSN'}, | ||
link = 'International Standard Serial Number', | link = 'International Standard Serial Number', | ||
redirect = ' | redirect = '', | ||
q = 'Q131276', | q = 'Q131276', | ||
label = 'ISSN', | label = 'ISSN', | ||
prefix = ' | prefix = '//www.worldcat.org/issn/', | ||
COinS = 'rft.issn', | COinS = 'rft.issn', | ||
encode = false, | encode = false, | ||
| Line 2,345: | Line 1,821: | ||
q = '', | q = '', | ||
label = 'JFM', | label = 'JFM', | ||
prefix = ' | prefix = '//zbmath.org/?format=complete&q=an:', | ||
COinS = 'pre', -- use prefix value | COinS = 'pre', -- use prefix value | ||
encode = true, | encode = true, | ||
| Line 2,356: | Line 1,832: | ||
q = 'Q1420342', | q = 'Q1420342', | ||
label = 'JSTOR', | label = 'JSTOR', | ||
prefix = ' | 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 2,368: | Line 1,844: | ||
q = 'Q620946', | q = 'Q620946', | ||
label = 'LCCN', | label = 'LCCN', | ||
prefix = ' | prefix = '//lccn.loc.gov/', -- protocol-relative tested 2015-12-28 | ||
COinS = 'info:lccn', | COinS = 'info:lccn', | ||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
| Line 2,391: | Line 1,855: | ||
q = 'Q211172', | q = 'Q211172', | ||
label = 'MR', | label = 'MR', | ||
prefix = ' | 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 2,402: | Line 1,866: | ||
q = 'Q190593', | q = 'Q190593', | ||
label = 'OCLC', | label = 'OCLC', | ||
prefix = ' | prefix = '//www.worldcat.org/oclc/', | ||
COinS = 'info:oclcnum', | COinS = 'info:oclcnum', | ||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
id_limit = | id_limit = 9999999999, -- 10-digits | ||
}, | }, | ||
['OL'] = { | ['OL'] = { | ||
| Line 2,414: | Line 1,878: | ||
q = 'Q1201876', | q = 'Q1201876', | ||
label = 'OL', | label = 'OL', | ||
prefix = ' | prefix = '//openlibrary.org/', | ||
COinS = 'url', | COinS = 'url', | ||
separator = ' ', | separator = ' ', | ||
| Line 2,426: | Line 1,890: | ||
q = 'Q2015776', | q = 'Q2015776', | ||
label = 'OSTI', | label = 'OSTI', | ||
prefix = ' | 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 = | id_limit = 23000000, | ||
custom_access = 'osti-access', | custom_access = 'osti-access', | ||
}, | }, | ||
| Line 2,439: | Line 1,903: | ||
q = 'Q229883', | q = 'Q229883', | ||
label = 'PMC', | label = 'PMC', | ||
prefix = ' | 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, | ||
separator = ' ', | separator = ' ', | ||
id_limit = | id_limit = 8300000, | ||
access = 'free', -- free to read | access = 'free', -- free to read | ||
}, | }, | ||
| Line 2,453: | Line 1,917: | ||
q = 'Q2082879', | q = 'Q2082879', | ||
label = 'PMID', | label = 'PMID', | ||
prefix = ' | prefix = '//pubmed.ncbi.nlm.nih.gov/', | ||
COinS = 'info:pmid', | COinS = 'info:pmid', | ||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
id_limit = | id_limit = 34400000, | ||
}, | }, | ||
['RFC'] = { | ['RFC'] = { | ||
| Line 2,465: | Line 1,929: | ||
q = 'Q212971', | q = 'Q212971', | ||
label = 'RFC', | label = 'RFC', | ||
prefix = ' | prefix = '//tools.ietf.org/html/rfc', | ||
COinS = 'pre', -- use prefix value | COinS = 'pre', -- use prefix value | ||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
id_limit = | id_limit = 9000, | ||
access = 'free', -- free to read | access = 'free', -- free to read | ||
}, | }, | ||
| Line 2,487: | Line 1,951: | ||
q = 'Q7550801', | q = 'Q7550801', | ||
label = 'SSRN', | label = 'SSRN', | ||
prefix = ' | prefix = '//ssrn.com/abstract=', -- protocol-relative tested 2013-09-04 | ||
COinS = 'pre', -- use prefix value | COinS = 'pre', -- use prefix value | ||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
id_limit = | id_limit = 4000000, | ||
access = 'free', -- always free to read | |||
}, | }, | ||
['S2CID'] = { | ['S2CID'] = { | ||
| Line 2,504: | Line 1,968: | ||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
id_limit = | id_limit = 235000000, | ||
custom_access = 's2cid-access', | custom_access = 's2cid-access', | ||
}, | }, | ||
| Line 2,521: | Line 1,985: | ||
parameters = {'zbl', 'ZBL' }, | parameters = {'zbl', 'ZBL' }, | ||
link = 'Zentralblatt MATH', | link = 'Zentralblatt MATH', | ||
redirect = 'Zbl (identifier)', | redirect = 'Zbl (identifier)', | ||
q = 'Q190269', | q = 'Q190269', | ||
label = 'Zbl', | label = 'Zbl', | ||
prefix = ' | prefix = '//zbmath.org/?format=complete&q=an:', | ||
COinS = 'pre', -- use prefix value | COinS = 'pre', -- use prefix value | ||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
}, | }, | ||
} | } | ||
--[[--------------------------< E X P O R T S >--------------------------------- | --[[--------------------------< E X P O R T S >--------------------------------- | ||
]] | ]] | ||
return { | return { | ||
use_identifier_redirects = | use_identifier_redirects = true, -- when true use redirect name for identifier label links | ||
aliases = aliases, | |||
special_case_translation = special_case_translation, | |||
date_names = date_names, | |||
err_msg_supl = err_msg_supl, | |||
error_conditions = error_conditions, | |||
editor_markup_patterns = editor_markup_patterns, | |||
et_al_patterns = et_al_patterns, | |||
global_df = global_df, | |||
id_handlers = id_handlers, | |||
keywords_lists = keywords_lists, | |||
keywords_xlate = keywords_xlate, | |||
stripmarkers=stripmarkers, | |||
invisible_chars = invisible_chars, | |||
invisible_defs = invisible_defs, | |||
indic_script = indic_script, | |||
emoji = emoji, | |||
local_lang_cat_enable = local_lang_cat_enable, | local_lang_cat_enable = local_lang_cat_enable, | ||
maint_cats = maint_cats, | maint_cats = maint_cats, | ||
messages = messages, | messages = messages, | ||
presentation = presentation, | presentation = presentation, | ||
prop_cats = prop_cats, | prop_cats = prop_cats, | ||
punct_skip = punct_skip, | |||
script_lang_codes = script_lang_codes, | script_lang_codes = script_lang_codes, | ||
lang_code_remap = lang_code_remap, | |||
lang_name_remap = lang_name_remap, | lang_name_remap = lang_name_remap, | ||
this_wiki_code = this_wiki_code, | this_wiki_code = this_wiki_code, | ||
title_types = title_types, | title_types = title_types, | ||
uncategorized_namespaces = | uncategorized_namespaces = uncategorized_namespaces, | ||
uncategorized_subpages = uncategorized_subpages, | uncategorized_subpages = uncategorized_subpages, | ||
templates_using_volume = templates_using_volume, | templates_using_volume = templates_using_volume, | ||
| Line 2,582: | Line 2,035: | ||
templates_not_using_page = templates_not_using_page, | templates_not_using_page = templates_not_using_page, | ||
vol_iss_pg_patterns = vol_iss_pg_patterns, | vol_iss_pg_patterns = vol_iss_pg_patterns, | ||
inter_wiki_map = inter_wiki_map, | inter_wiki_map = inter_wiki_map, | ||
languages = languages, | |||
} | } | ||