Difference between revisions of "Module:Citation/CS1/Whitelist"
sync from sandbox;
m (1 revision imported: Content from Template:Reflist on Wikipedia) |
(sync from sandbox;) |
||
Line 9: | Line 9: | ||
]] | ]] | ||
local | local basic_arguments_t = { | ||
['accessdate'] = true, | ['accessdate'] = true, | ||
['access-date'] = true, | ['access-date'] = true, | ||
Line 20: | Line 20: | ||
['article'] = true, | ['article'] = true, | ||
['article-format'] = true, | ['article-format'] = true, | ||
['article-number'] = true, -- {{cite journal}}, {{cite conference}}; {{citation}} when |journal= has a value | |||
['article-url'] = true, | ['article-url'] = true, | ||
['article-url-access'] = true, | ['article-url-access'] = true, | ||
Line 35: | Line 36: | ||
['author-link'] = true, | ['author-link'] = true, | ||
['author-mask'] = true, | ['author-mask'] = true, | ||
['authors'] = | ['authors'] = false, | ||
['bibcode'] = true, | ['bibcode'] = true, | ||
['bibcode-access'] = true, | ['bibcode-access'] = true, | ||
Line 120: | Line 121: | ||
['language'] = true, | ['language'] = true, | ||
['last'] = true, | ['last'] = true, | ||
['lccn'] = true, | ['lccn'] = true, | ||
['LCCN'] = true, | ['LCCN'] = true, | ||
Line 129: | Line 126: | ||
['magazine'] = true, | ['magazine'] = true, | ||
['medium'] = true, | ['medium'] = true, | ||
['medrxiv'] = true, -- cite medrxiv; here because allowed in cite ... as identifier | |||
['minutes'] = true, -- constrain to cite AV media and podcast? | ['minutes'] = true, -- constrain to cite AV media and podcast? | ||
['mode'] = true, | ['mode'] = true, | ||
Line 179: | Line 177: | ||
['script-chapter'] = true, | ['script-chapter'] = true, | ||
['script-contribution'] = true, | ['script-contribution'] = true, | ||
['script-encyclopaedia'] = true, | |||
['script-encyclopedia'] = true, | |||
['script-entry'] = true, | ['script-entry'] = true, | ||
['script-journal'] = true, | ['script-journal'] = true, | ||
Line 198: | Line 198: | ||
['ssrn-access'] = true, | ['ssrn-access'] = true, | ||
['subject'] = true, | ['subject'] = true, | ||
['subject-first'] = true, | |||
['subject-given'] = true, | |||
['subject-last'] = true, | |||
['subject-link'] = true, | ['subject-link'] = true, | ||
['subject-mask'] = true, | ['subject-mask'] = true, | ||
['subject-surname'] = true, | |||
['surname'] = true, | ['surname'] = true, | ||
['s2cid'] = true, | ['s2cid'] = true, | ||
Line 209: | Line 213: | ||
['title'] = true, | ['title'] = true, | ||
['title-link'] = true, | ['title-link'] = true, | ||
['title-note'] = true, | |||
['translator'] = true, | ['translator'] = true, | ||
['translator-first'] = true, | ['translator-first'] = true, | ||
Line 219: | Line 224: | ||
['trans-chapter'] = true, | ['trans-chapter'] = true, | ||
['trans-contribution'] = true, | ['trans-contribution'] = true, | ||
['trans-encyclopaedia'] = true, | |||
['trans-encyclopedia'] = true, | |||
['trans-entry'] = true, | ['trans-entry'] = true, | ||
['trans-journal'] = true, | ['trans-journal'] = true, | ||
Line 246: | Line 253: | ||
} | } | ||
local | local numbered_arguments_t = { | ||
['author#'] = true, | ['author#'] = true, | ||
['author-first#'] = true, | ['author-first#'] = true, | ||
Line 306: | Line 313: | ||
['last#'] = true, | ['last#'] = true, | ||
['subject#'] = true, | ['subject#'] = true, | ||
['subject-first#'] = true, | |||
['subject#-first'] = true, | |||
['subject-given#'] = true, | |||
['subject#-given'] = true, | |||
['subject-last#'] = true, | |||
['subject#-last'] = true, | |||
['subject-link#'] = true, | ['subject-link#'] = true, | ||
['subject#-link'] = true, | ['subject#-link'] = true, | ||
['subject-mask#'] = true, | ['subject-mask#'] = true, | ||
['subject#-mask'] = true, | ['subject#-mask'] = true, | ||
['subject-surname#'] = true, | |||
['subject#-surname'] = true, | |||
['surname#'] = true, | ['surname#'] = true, | ||
['translator#'] = true, | ['translator#'] = true, | ||
Line 329: | Line 344: | ||
--[[--------------------------< P R E P R I N T S U P P O R T E D P A R A M E T E R S >-------------------- | --[[--------------------------< P R E P R I N T S U P P O R T E D P A R A M E T E R S >-------------------- | ||
Cite arXiv, cite biorxiv, cite citeseerx, and cite ssrn are preprint templates that use the limited set of parameters | Cite arXiv, cite biorxiv, cite citeseerx, cite medrxiv, and cite ssrn are preprint templates that use the limited | ||
defined in the limited_basic_arguments and limited_numbered_arguments tables. Those lists are supplemented with a | set of parameters defined in the limited_basic_arguments and limited_numbered_arguments tables. Those lists are | ||
template-specific list of parameters that are required by the particular template and may be exclusive to one of the | supplemented with a template-specific list of parameters that are required by the particular template and may be | ||
preprint templates. Some of these parameters may also be available to the general cs1|2 templates. | exclusive to one of the preprint templates. Some of these parameters may also be available to the general cs1|2 | ||
templates. | |||
Same conventions for true/false/tracked/nil as above. | Same conventions for true/false/tracked/nil as above. | ||
Line 338: | Line 354: | ||
]] | ]] | ||
local | local preprint_arguments_t = { | ||
arxiv = { | arxiv = { | ||
['arxiv'] = true, -- cite arxiv and arxiv identifiers | ['arxiv'] = true, -- cite arxiv and arxiv identifiers | ||
Line 349: | Line 365: | ||
citeseerx = { | citeseerx = { | ||
['citeseerx'] = true, | ['citeseerx'] = true, | ||
}, | |||
medrxiv = { | |||
['medrxiv'] = true, | |||
}, | }, | ||
ssrn = { | ssrn = { | ||
Line 360: | Line 379: | ||
--[[--------------------------< L I M I T E D S U P P O R T E D P A R A M E T E R S >---------------------- | --[[--------------------------< L I M I T E D S U P P O R T E D P A R A M E T E R S >---------------------- | ||
cite arxiv, cite biorxiv, cite citeseerx, and cite ssrn templates are preprint templates so are allowed only a | cite arxiv, cite biorxiv, cite citeseerx, cite medrxiv, and cite ssrn templates are preprint templates so are | ||
limited subset of parameters allowed to all other cs1|2 templates. The limited subset is defined here. | allowed only a limited subset of parameters allowed to all other cs1|2 templates. The limited subset is defined | ||
here. | |||
This list of parameters also used by {{cite document}} | |||
Same conventions for true/false/tracked/nil as above. | Same conventions for true/false/tracked/nil as above. | ||
Line 367: | Line 389: | ||
]] | ]] | ||
local | local limited_basic_arguments_t = { | ||
['at'] = true, | ['at'] = true, | ||
['author'] = true, | ['author'] = true, | ||
Line 377: | Line 399: | ||
['authorlink'] = true, | ['authorlink'] = true, | ||
['author-mask'] = true, | ['author-mask'] = true, | ||
['authors'] = | ['authors'] = false, | ||
['collaboration'] = true, | ['collaboration'] = true, | ||
['date'] = true, | ['date'] = true, | ||
Line 405: | Line 427: | ||
} | } | ||
local | local limited_numbered_arguments_t = { | ||
['author#'] = true, | ['author#'] = true, | ||
['author-first#'] = true, | ['author-first#'] = true, | ||
Line 437: | Line 459: | ||
]] | ]] | ||
local | local unique_arguments_t = { | ||
['audio-visual'] = { | ['audio-visual'] = { | ||
['transcript'] = true, | ['transcript'] = true, | ||
Line 463: | Line 485: | ||
['transcript'] = true, | ['transcript'] = true, | ||
['transcript-format'] = true, | ['transcript-format'] = true, | ||
['transcript-url'] = true, | ['transcript-url'] = true, | ||
}, | }, | ||
Line 510: | Line 531: | ||
}, | }, | ||
} | } | ||
--[[--------------------------< C I T E _ D O C U M E N T >---------------------------------------------------- | |||
Special case for cite document. This template takes the limited basic and limited enumerated parameters plus | |||
others that are apply only to standalone published sources that cannot be cited any other way; no url, book, | |||
periodical, etc parameters; limited support for name lists and named identifiers. | |||
when validating parameters in {{cite document}} templates, the basic and | |||
]] | |||
local document_arguments_t = { | |||
['bibcode'] = true, | |||
['bibcode-access'] = true, | |||
['doi'] = true, | |||
['DOI'] = true, | |||
['doi-access'] = true, | |||
['doi-broken-date'] = true, | |||
['hdl'] = true, | |||
['HDL'] = true, | |||
['hdl-access'] = true, | |||
['id'] = true, | |||
['ID'] = true, | |||
['jfm'] = true, | |||
['JFM'] = true, | |||
['lang'] = true, | |||
['location'] = true, | |||
['mr'] = true, | |||
['MR'] = true, | |||
['no-pp'] = true, | |||
['orig-date'] = true, | |||
['origyear'] = true, | |||
['orig-year'] = true, | |||
['osti'] = true, | |||
['OSTI'] = true, | |||
['osti-access'] = true, | |||
['place'] = true, | |||
['publisher'] = true, | |||
['quote-page'] = true, | |||
['quote-pages'] = true, | |||
['script-quote'] = true, | |||
['script-title'] = true, | |||
['title-link'] = true, | |||
['translator'] = true, | |||
['translator-first'] = true, | |||
['translator-given'] = true, | |||
['translator-last'] = true, | |||
['translator-surname'] = true, | |||
['translator-link'] = true, | |||
['translator-mask'] = true, | |||
['trans-quote'] = true, | |||
['type'] = true, | |||
['zbl'] = true, | |||
['ZBL'] = true, | |||
} | |||
local document_numbered_arguments_t = { | |||
['translator#'] = true, | |||
['translator-first#'] = true, | |||
['translator#-first'] = true, | |||
['translator-given#'] = true, | |||
['translator#-given'] = true, | |||
['translator-last#'] = true, | |||
['translator#-last'] = true, | |||
['translator-surname#'] = true, | |||
['translator#-surname'] = true, | |||
['translator-link#'] = true, | |||
['translator#-link'] = true, | |||
['translator-mask#'] = true, | |||
['translator#-mask'] = true, | |||
} | |||
--[[--------------------------< L I S T _ C O M B I N E >------------------------------------------------------ | |||
makes one table from a list of tables. <lists_t> is a sequence of tables to be combined | |||
]] | |||
local function list_combine (lists_t) | |||
local out_t = {}; | |||
for _, list_t in ipairs (lists_t) do -- for each list in <lists_t> | |||
for k, v in pairs (list_t) do -- extract each k/v pair | |||
out_t[k] = v; -- add to <out_t> | |||
end | |||
end | |||
return out_t; -- and done | |||
end | |||
Line 519: | Line 630: | ||
local function template_list_get (t) | local function template_list_get (t) | ||
local | local out_t = {}; -- a table for output | ||
for k, _ in pairs (t) do -- spin through the table and collect the keys | for k, _ in pairs (t) do -- spin through the table and collect the keys | ||
table.insert ( | table.insert (out_t, k) -- add each key to the output table | ||
end | end | ||
return | return out_t; -- and done | ||
end | end | ||
Line 531: | Line 642: | ||
return { | return { | ||
preprint_arguments_t = preprint_arguments_t, | |||
preprint_template_list_t = template_list_get (preprint_arguments_t), -- make a template list from preprint_arguments{} table | |||
unique_arguments_t = unique_arguments_t, | |||
unique_param_template_list_t = template_list_get (unique_arguments_t), -- make a template list from unique_arguments{} table | |||
document_parameters_t = list_combine ({limited_basic_arguments_t, limited_numbered_arguments_t, document_arguments_t, document_numbered_arguments_t}); | |||
common_parameters_t = list_combine ({basic_arguments_t, numbered_arguments_t}); | |||
limited_parameters_t = list_combine ({limited_basic_arguments_t, limited_numbered_arguments_t}); | |||
}; | }; |