Module:Citation/CS1/Whitelist and Module:Citation/CS1/styles.css: Difference between pages

From Polyphasic Sleep Wiki
(Difference between pages)
sync from sandbox;
 
m 1 revision imported
 
Line 1: Line 1:
/* Protection icon
the following line controls the page-protection icon in the upper right corner
it must remain within this comment
{{sandbox other||{{pp-template}}}}


--[[--------------------------< S U P P O R T E D  P A R A M E T E R S >--------------------------------------
*/


Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
/* Overrides
true - these parameters are valid and supported parameters
Some wikis do not override user agent default styles for HTML <cite> and <q>,
false - these parameters are deprecated but still supported
unlike en.wp. On en.wp, keep these the same as [[MediaWiki:Common.css]]
nil - these parameters are no longer supported. remove entirely
*/
cite.citation {
]]
font-style: inherit; /* Remove italics for <cite> */
 
local basic_arguments = {
['accessdate'] = true,
['access-date'] = true,
['agency'] = true,
['archivedate'] = true,
['archive-date'] = true,
['archive-format'] = true,
['archiveurl'] = true,
['archive-url'] = true,
['article'] = true,
['article-format'] = true,
['article-url'] = true,
['article-url-access'] = true,
['arxiv'] = true, -- cite arxiv; here because allowed in cite ... as identifier
['asin'] = true,
['ASIN'] = true,
['asin-tld'] = true,
['at'] = true,
['author'] = true,
['author-first'] = true,
['author-given'] = true,
['author-last'] = true,
['author-surname'] = true,
['authorlink'] = true,
['author-link'] = true,
['authormask'] = false, -- deprecated
['author-mask'] = true,
['authors'] = true,
['bibcode'] = true,
['bibcode-access'] = true,
['biorxiv'] = true, -- cite biorxiv; here because allowed in cite ... as identifier
['booktitle'] = true,
['book-title'] = true,
['cartography'] = true,
['chapter'] = true,
['chapter-format'] = true,
['chapterurl'] = true,
['chapter-url'] = true,
['chapter-url-access'] = true,
['citeseerx'] = true, -- cite citeseerx; here because allowed in cite ... as identifier
['collaboration'] = true,
['conference'] = true,
['conference-format'] = true,
['conferenceurl'] = true,
['conference-url'] = true,
['contribution'] = true,
['contribution-format'] = true,
['contributionurl'] = true,
['contribution-url'] = true,
['contribution-url-access'] = true,
['contributor'] = true,
['contributor-first'] = true,
['contributor-given'] = true,
['contributor-last'] = true,
['contributor-surname'] = true,
['contributor-link'] = true,
['contributor-mask'] = true,
['date'] = true,
['degree'] = true,
['department'] = true,
['df'] = true,
['dictionary'] = true,
['displayauthors'] = false, -- deprecated
['display-authors'] = true,
['display-contributors'] = true,
['display-editors'] = true,
['display-interviewers'] = true,
['display-subjects'] = true,
['display-translators'] = true,
['docket'] = true,
['doi'] = true,
['DOI'] = true,
['doi-access'] = true,
['doi-broken-date'] = true,
['edition'] = true,
['editor'] = true,
['editor-first'] = true,
['editor-given'] = true,
['editor-last'] = true,
['editor-surname'] = true,
['editorlink'] = false, -- deprecated
['editor-link'] = true,
['editor-mask'] = true,
['editors'] = false, -- deprecated
['eissn'] = true,
['EISSN'] = true,
['encyclopaedia'] = true,
['encyclopedia'] = true,
['entry'] = true,
['entry-format'] = true,
['entry-url'] = true,
['entry-url-access'] = true,
['eprint'] = true, -- cite arxiv; here because allowed in cite ... as identifier
['event'] = true,
['event-format'] = true,
['eventurl'] = true,
['event-url'] = true,
['first'] = true,
['format'] = true,
['given'] = true,
['hdl'] = true,
['HDL'] = true,
['hdl-access'] = true,
['host'] = true,
['id'] = true,
['ID'] = true,
['ignore-isbn-error'] = false, -- deprecated
['institution'] = true,
['interviewer'] = true,
['interviewer-first'] = true,
['interviewer-given'] = true,
['interviewer-last'] = true,
['interviewer-surname'] = true,
['interviewer-link'] = true,
['interviewer-mask'] = true,
['isbn'] = true,
['ISBN'] = true,
['isbn13'] = true,
['ISBN13'] = true,
['ismn'] = true,
['ISMN'] = true,
['issn'] = true,
['ISSN'] = true,
['issue'] = true,
['jfm'] = true,
['JFM'] = true,
['journal'] = true,
['jstor'] = true,
['JSTOR'] = true,
['jstor-access'] = true,
['lang'] = true,
['language'] = true,
['last'] = true,
['lastauthoramp'] = false, -- deprecated
['last-author-amp'] = false, -- deprecated
['laydate'] = true,
['lay-date'] = true,
['laysource'] = true,
['lay-source'] = true,
['lay-format'] = true,
['layurl'] = true,
['lay-url'] = true,
['lccn'] = true,
['LCCN'] = true,
['location'] = true,
['magazine'] = true,
['medium'] = true,
['minutes'] = true,
['mode'] = true,
['mr'] = true,
['MR'] = true,
['name-list-format'] = true,
['name-list-style'] = true,
['newspaper'] = true,
['nocat'] = true,
['nopp'] = true,
['no-pp'] = true,
['no-tracking'] = true,
['number'] = true,
['oclc'] = true,
['OCLC'] = true,
['ol'] = true,
['OL'] = true,
['ol-access'] = true,
['orig-date'] = true,
['origyear'] = true,
['orig-year'] = true,
['osti'] = true,
['OSTI'] = true,
['osti-access'] = true,
['others'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['people'] = true,
['periodical'] = true,
['place'] = true,
['pmc'] = true,
['PMC'] = true,
['pmc-embargo-date'] = true,
['pmid'] = true,
['PMID'] = true,
['postscript'] = true,
['pp'] = true,
['publicationdate'] = true,
['publication-date'] = true,
['publicationplace'] = true,
['publication-place'] = true,
['publisher'] = true,
['quotation'] = true,
['quote'] = true,
['quote-page'] = true,
['quote-pages'] = true,
['ref'] = true,
['rfc'] = true,
['RFC'] = true,
['sbn'] = true,
['SBN'] = true,
['scale'] = true,
['script-article'] = true,
['script-chapter'] = true,
['script-contribution'] = true,
['script-entry'] = true,
['script-journal'] = true,
['script-magazine'] = true,
['script-newspaper'] = true,
['script-periodical'] = true,
['script-quote'] = true,
['script-section'] = true,
['script-title'] = true,
['script-website'] = true,
['script-work'] = true,
['season'] = true,
['section'] = true,
['section-format'] = true,
['sectionurl'] = true,
['section-url'] = true,
['section-url-access'] = true,
['series'] = true,
['serieslink'] = true,
['series-link'] = true,
['seriesno'] = true,
['series-no'] = true,
['seriesnumber'] = true,
['series-number'] = true,
['ssrn'] = true, -- cite ssrn; these two here because allowed in cite ... as identifier
['SSRN'] = true,
['subject'] = true,
['subjectlink'] = false, -- deprecated
['subject-link'] = true,
['subject-mask'] = true,
['surname'] = true,
['s2cid'] = true,
['S2CID'] = true,
['s2cid-access'] = true,
['template-doc-demo'] = true,
['time'] = true,
['timecaption'] = true,
['time-caption'] = true,
['title'] = true,
['titlelink'] = 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-article'] = true,
['trans-chapter'] = true,
['trans-contribution'] = true,
['trans-entry'] = true,
['trans-journal'] = true,
['trans-magazine'] = true,
['trans-newspaper'] = true,
['trans-periodical'] = true,
['trans-quote'] = true,
['trans-section'] = true,
['trans-title'] = true,
['trans-website'] = true,
['trans-work'] = true,
['type'] = true,
['url'] = true,
['URL'] = true,
['url-access'] = true,
['url-status'] = true,
['vauthors'] = true,
['veditors'] = true,
['version'] = true,
['via'] = true,
['volume'] = true,
['website'] = true,
['work'] = true,
['year'] = true,
['zbl'] = true,
['ZBL'] = true,
}
}


local numbered_arguments = {
.citation q {
['author#'] = true,
quotes: '"' '"' "'" "'"; /* Straight quote marks for <q> */
['author-first#'] = true,
['author#-first'] = true,
['author-given#'] = true,
['author#-given'] = true,
['author-last#'] = true,
['author#-last'] = true,
['author-surname#'] = true,
['author#-surname'] = true,
['author-link#'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author#link'] = true,
['author-mask#'] = true,
['author#-mask'] = true,
['authormask#'] = false, -- deprecated
['author#mask'] = false, -- deprecated
['contributor#'] = true,
['contributor-first#'] = true,
['contributor#-first'] = true,
['contributor-given#'] = true,
['contributor#-given'] = true,
['contributor-last#'] = true,
['contributor#-last'] = true,
['contributor-surname#'] = true,
['contributor#-surname'] = true,
['contributor-link#'] = true,
['contributor#-link'] = true,
['contributor-mask#'] = true,
['contributor#-mask'] = true,
['editor#'] = true,
['editor-first#'] = true,
['editor#-first'] = true,
['editor-given#'] = true,
['editor#-given'] = true,
['editor-last#'] = true,
['editor#-last'] = true,
['editor-surname#'] = true,
['editor#-surname'] = true,
['editor-link#'] = true,
['editor#-link'] = true,
['editorlink#'] = false, -- deprecated
['editor#link'] = false, -- deprecated
['editor-mask#'] = true,
['editor#-mask'] = true,
['first#'] = true,
['given#'] = true,
['host#'] = true,
['interviewer#'] = true,
['interviewer-first#'] = true,
['interviewer#-first'] = true,
['interviewer-given#'] = true,
['interviewer#-given'] = true,
['interviewer-last#'] = true,
['interviewer#-last'] = true,
['interviewer-surname#'] = true,
['interviewer#-surname'] = true,
['interviewer-link#'] = true,
['interviewer#-link'] = true,
['interviewer-mask#'] = true,
['interviewer#-mask'] = true,
['last#'] = true,
['subject#'] = true,
['subject-link#'] = true,
['subject#-link'] = true,
['subjectlink#'] = false, -- deprecated
['subject#link'] = false, -- deprecated
['subject-mask#'] = true,
['subject#-mask'] = true,
['surname#'] = true,
['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,
}
}


/* ID and URL access
Both core and Common.css have selector .mw-parser-output a[href$=".pdf"].external
for PDF pages. All TemplateStyles pages are hoisted to .mw-parser-output. We need
to have specificity equal to a[href$=".pdf"].external for locks to override PDF icon.


--[[--------------------------< 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 >--------------------
the .id-lock-... selectors are for use by non-citation templates like {{Catalog lookup link}}
*/
.id-lock-free a,
.citation .cs1-lock-free a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg)
right 0.1em center/9px no-repeat;
}


Cite arXiv, cite biorxiv, cite citeseerx, and cite ssrn are preprint templates that use the limited set of parameters
.id-lock-limited a,
defined in the limited_basic_arguments and limited_numbered_arguments tables. Those lists are supplemented with a
.id-lock-registration a,
template-specific list of parameters that are required by the particular template and may be exclusive to one of the
.citation .cs1-lock-limited a,
preprint templates. Some of these parameters may also be available to the general cs1|2 templates.
.citation .cs1-lock-registration a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg)
right 0.1em center/9px no-repeat;
}


Same conventions for true/false/nil as above.
.id-lock-subscription a,
.citation .cs1-lock-subscription a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg)
right 0.1em center/9px no-repeat;
}


]]
.cs1-subscription,
.cs1-registration {
color: #555;
}


local preprint_arguments = {
.cs1-subscription span,
arxiv = {
.cs1-registration span {
['arxiv'] = true, -- cite arxiv and arxiv identifiers
border-bottom: 1px dotted;
['class'] = true,
cursor: help;
['eprint'] = true, -- cite arxiv and arxiv identifiers
}
},
biorxiv = {
['biorxiv'] = true,
},
citeseerx = {
['citeseerx'] = true,
},
ssrn = {
['ssrn'] = true,
['SSRN'] = true,
},
}


/* Wikisource
Wikisource icon when |chapter= or |title= is wikilinked to Wikisource
as in cite wikisource
*/
.cs1-ws-icon a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg)
right 0.1em center/12px no-repeat;
}


--[[--------------------------< 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 >----------------------
/* Errors and maintenance */
code.cs1-code {
/* <code>...</code> style override: mediawiki's css definition is specified here:
https://git.wikimedia.org/blob/mediawiki%2Fcore.git/
69cd73811f7aadd093050dbf20ed70ef0b42a713/skins%2Fcommon%2FcommonElements.css#L199
*/
color: inherit;
background: inherit;
border: none; /* this maybe can be inherit. MDN says yes, code editor says no */
padding: inherit;
}


This is an experiment that attempts to use validate() and a limited list of valid parameters to validate the
.cs1-hidden-error {
parameters provided in a cite arxiv, cite biorxiv, or cite citeseerx templates.  These parameters are common to
display: none;
all three templates
font-size: 100%;
}


Same conventions for true/false/nil as above.
.cs1-visible-error {
font-size: 100%;
]]
}


local limited_basic_arguments = {
.cs1-maint {
['at'] = true,
display: none;
['author'] = true,
color: #33aa33;
['author-first'] = true,
margin-left: 0.3em;
['author-given'] = true,
['author-last'] = true,
['author-surname'] = true,
['author-link'] = true,
['authorlink'] = true,
['author-mask'] = true,
['authormask'] = false, -- deprecated
['authors'] = true,
['collaboration'] = true,
['date'] = true,
['df'] = true,
['display-authors'] = true,
['displayauthors'] = false, -- deprecated
['first'] = true,
['given'] = true,
['language'] = true,
['last'] = true,
['last-author-amp'] = false, -- deprecated
['lastauthoramp'] = false, -- deprecated
['mode'] = true,
['name-list-format'] = true,
['name-list-style'] = true,
['nocat'] = true,
['no-tracking'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['postscript'] = true,
['pp'] = true,
['quotation'] = true,
['quote'] = true,
['ref'] = true,
['surname'] = true,
['template-doc-demo'] = true,
['title'] = true,
['trans-title'] = true,
['url'] = true,
['URL'] = true,
['vauthors'] = true,
['year'] = true,
}
}


local limited_numbered_arguments = {
/* Small text size
['author#'] = true,
Set small text size in one place. 0.95 (here) * 0.9 (from references list) is
['author-first#'] = true,
~0.85, which is the lower bound for size for accessibility. Old styling for this
['author#-first'] = true,
was just 0.85. We could write the rule so that when this template is inside
['author-given#'] = true,
references/reflist, only then does it multiply by 0.95; else multiply by 0.85 */
['author#-given'] = true,
.cs1-subscription,
['author-last#'] = true,
.cs1-registration,
['author#-last'] = true,
.cs1-format {
['author-surname#'] = true,
font-size: 95%;
['author#-surname'] = true,
}
['author-link#'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author#link'] = true,
['author-mask#'] = true,
['author#-mask'] = true,
['authormask#'] = false, -- deprecated
['author#mask'] = false, -- deprecated
['first#'] = true,
['given#'] = true,
['last#'] = true,
['surname#'] = true,
}


/* kerning */
.cs1-kern-left,
.cs1-kern-wl-left {
padding-left: 0.2em;
}


--[[--------------------------< U N I Q U E _ A R G U M E N T S >----------------------------------------------
.cs1-kern-right,
.cs1-kern-wl-right {
padding-right: 0.2em;
}


Some templates have unique parameters.  Those templates and their unique parameters are listed here. Keys in this
/* selflinks – avoid bold font style when cs1|2 template links to the current page */
table are the template's CitationClass parameter value
.citation .mw-selflink {
 
font-weight: inherit;
Same conventions for true/false/nil as above.
}
 
]]
 
local unique_arguments = {
['audio-visual'] = {
['transcript'] = true,
['transcript-format'] = true,
['transcripturl'] = true,
['transcript-url'] = true,
},
episode = {
['airdate'] = true,
['air-date'] = true,
['credits'] = true,
['episodelink'] = true, -- alias of |title-link=
['episode-link'] = true, -- alias of |title-link=
['network'] = true,
['station'] = true,
['transcript'] = true,
['transcript-format'] = true,
['transcripturl'] = true,
['transcript-url'] = true,
},
mailinglist = {
['mailinglist'] = true,
['mailing-list'] = true,
},
map = {
['inset'] = true,
['map'] = true,
['map-format'] = true,
['mapurl'] = true,
['map-url'] = true,
['map-url-access'] = true,
['script-map'] = true,
['sections'] = true,
['sheet'] = true,
['sheets'] = true,
['trans-map'] = true,
},
newsgroup = {
['message-id'] = true,
['newsgroup'] = true,
},
serial = {
['airdate'] = true,
['air-date'] = true,
['credits'] = true,
['episode'] = true, -- cite serial only TODO: make available to cite episode?
['episodelink'] = true, -- aliases of |title-link=
['episode-link'] = true,
['network'] = true,
['station'] = true,
},
}
 
 
--[[--------------------------< T E M P L A T E _ L I S T _ G E T >--------------------------------------------
 
gets a list of the templates from table t
 
]]
 
local function template_list_get (t)
local out = {}; -- a table for output
for k, _ in pairs (t) do -- spin through the table and collect the keys
table.insert (out, k) -- add each key to the output table
end
return out; -- and done
end
 
 
--[[--------------------------< E X P O R T E D  T A B L E S >------------------------------------------------
]]
 
return {
basic_arguments = basic_arguments,
numbered_arguments = numbered_arguments,
limited_basic_arguments = limited_basic_arguments,
limited_numbered_arguments = limited_numbered_arguments,
 
preprint_arguments = preprint_arguments,
preprint_template_list = template_list_get (preprint_arguments), -- make a template list from preprint_arguments{} table
unique_arguments = unique_arguments,
unique_param_template_list = template_list_get (unique_arguments), -- make a template list from unique_arguments{} table
};

Latest revision as of 19:41, 20 December 2020

/* Protection icon
the following line controls the page-protection icon in the upper right corner
it must remain within this comment
	{{sandbox other||{{pp-template}}}}

*/

/* Overrides
Some wikis do not override user agent default styles for HTML <cite> and <q>,
unlike en.wp. On en.wp, keep these the same as [[MediaWiki:Common.css]]
*/
cite.citation {
	font-style: inherit; /* Remove italics for <cite> */
}

.citation q {
	quotes: '"' '"' "'" "'"; /* Straight quote marks for <q> */
}

/* ID and URL access
Both core and Common.css have selector .mw-parser-output a[href$=".pdf"].external
for PDF pages. All TemplateStyles pages are hoisted to .mw-parser-output. We need
to have specificity equal to a[href$=".pdf"].external for locks to override PDF icon.

the .id-lock-... selectors are for use by non-citation templates like {{Catalog lookup link}}
*/
.id-lock-free a,
.citation .cs1-lock-free a {
	background: linear-gradient(transparent, transparent),
		url(//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg)
		right 0.1em center/9px no-repeat;
}

.id-lock-limited a,
.id-lock-registration a,
.citation .cs1-lock-limited a,
.citation .cs1-lock-registration a {
	background: linear-gradient(transparent, transparent),
		url(//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg)
		right 0.1em center/9px no-repeat;
}

.id-lock-subscription a,
.citation .cs1-lock-subscription a {
	background: linear-gradient(transparent, transparent),
		url(//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg)
		right 0.1em center/9px no-repeat;
}

.cs1-subscription,
.cs1-registration {
	color: #555;
}

.cs1-subscription span,
.cs1-registration span {
	border-bottom: 1px dotted;
	cursor: help;
}

/* Wikisource
Wikisource icon when |chapter= or |title= is wikilinked to Wikisource
as in cite wikisource
*/
.cs1-ws-icon a {
	background: linear-gradient(transparent, transparent),
		url(//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg)
		right 0.1em center/12px no-repeat;
}

/* Errors and maintenance */
code.cs1-code {
	/* <code>...</code> style override: mediawiki's css definition is specified here:
	https://git.wikimedia.org/blob/mediawiki%2Fcore.git/
		69cd73811f7aadd093050dbf20ed70ef0b42a713/skins%2Fcommon%2FcommonElements.css#L199
	*/
	color: inherit;
	background: inherit;
	border: none; /* this maybe can be inherit. MDN says yes, code editor says no */
	padding: inherit;
}

.cs1-hidden-error {
	display: none;
	font-size: 100%;
}

.cs1-visible-error {
	font-size: 100%;
}

.cs1-maint {
	display: none;
	color: #33aa33;
	margin-left: 0.3em;
}

/* Small text size
Set small text size in one place. 0.95 (here) * 0.9 (from references list) is
~0.85, which is the lower bound for size for accessibility. Old styling for this
was just 0.85. We could write the rule so that when this template is inside
references/reflist, only then does it multiply by 0.95; else multiply by 0.85 */
.cs1-subscription,
.cs1-registration,
.cs1-format {
	font-size: 95%;
}

/* kerning */
.cs1-kern-left,
.cs1-kern-wl-left {
	padding-left: 0.2em;
}

.cs1-kern-right,
.cs1-kern-wl-right {
	padding-right: 0.2em;
}

/* selflinks – avoid bold font style when cs1|2 template links to the current page */
.citation .mw-selflink {
	font-weight: inherit;
}