Mô đun:Citation/CS1/Whitelist/sandbox

Tài liệu mô đun[tạo]
--[[--------------------------< 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:
	true - these parameters are valid and supported parameters
	false - these parameters are deprecated but still supported
	nil - these parameters are no longer supported. remove entirely
	
]]

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,
	['author-mask'] = true,
	['authors'] = true,
	['ấn bản'] = true,
	['bách khoa thư'] = true,
	['bách khoa toàn thư'] = true,
	['bản sao'] = true,
	['bản thứ'] = true,
	['báo'] = true,
	['bibcode'] = true,
	['bibcode-access'] = true,
	['biorxiv'] = true,															-- cite biorxiv; here because allowed in cite ... as identifier
	['bỏ qua lỗi ISBN'] = true,
	['booktitle'] = true,
	['book-title'] = true,
	['cartography'] = true,
	['các biên tập viên'] = true,
	['các tác giả'] = true,
	['các trang'] = true,
	['chapter'] = true,
	['chapter-format'] = true,
	['chapterurl'] = true,
	['chapter-url'] = true,
	['chapter-url-access'] = true,
	['chú thích thì giờ'] = true,
	['chú thích thời gian'] = true,
	['chương'] = true,
	['citeseerx'] = true,														-- cite citeseerx; here because allowed in cite ... as identifier
	['collaboration'] = true,
	['cộng tác'] = true,
	['công trình'] = true,
	['conference'] = true,
	['conference-format'] = true,
	['conferenceurl'] = false,
	['conference-url'] = true,
	['contribution'] = true,
	['contribution-format'] = true,
	['contributionurl'] = false,
	['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,
	['cuốn'] = true,
	['date'] = true,
	['degree'] = true,
	['department'] = true,
	['df'] = true,
	['dịch chương'] = true,
	['dịch tên bài'] = true,
	['dịch tiêu đề'] = true,
	['dịch tựa đề'] = true,
	['dictionary'] = true,
	['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 hỏng'] = true,
	['DOI hư'] = true,
	['doi-access'] = true,
	['doi-broken-date'] = true,
	['đài'] = true,
	['đăng kí'] = true,
	['đăng ký'] = true,
	['đăng nhập'] = true,
	['địa chỉ'] = true,
	['địa chỉ hỏng'] = true,
	['địa chỉ hội nghị'] = true,
	['địa chỉ hư'] = true,
	['địa điểm'] = true,
	['định dạng'] = true,
	['định dạng biên tập'] = true,
	['định dạng biên tập viên'] = true,
	['định dạng tác giả'] = true,
	['đồng tác giả'] = true,
	['đợt'] = true,
	['edition'] = true,
	['editor'] = true,
	['editor-first'] = true,
	['editor-given'] = true,
	['editor-last'] = true,
	['editor-surname'] = true,
	['editor-link'] = true,
	['editor-mask'] = true,
	['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, -- synonym of conference in /Config, but used in Cite speech?
	['first'] = true,
	['format'] = true,
	['given'] = true,
	['hdl'] = true,
	['HDL'] = true,
	['hdl-access'] = true,
	['host'] = true,
	['hãng thông tấn'] = true,
	['hãng tin tức'] = true,
	['họ'] = true,
	['họ biên tập'] = true,
	['họ biên tập viên'] = true,
	['hội nghị'] = true,
	['id'] = true,
	['ID'] = true,
	['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,
	['kênh'] = true,
	['không trang'] = true,
	['kiểu'] = true,
	['jstor-access'] = true,
	['lang'] = true,
	['language'] = true,
	['last'] = true,
	['laydate'] = false,
	['lay-date'] = true,
	['laysource'] = false,
	['lay-source'] = true,
	['lay-format'] = true,
	['layurl'] = false,
	['lay-url'] = true,
	['lần in'] = true,
	['lccn'] = true,
	['LCCN'] = true,
	['liên kết bản sao'] = true,
	['liên kết biên tập'] = true,
	['liên kết biên tập viên'] = true,
	['liên kết chương'] = true,
	['liên kết loạt'] = true,
	['liên kết phần'] = true,
	['liên kết tên bài'] = true,
	['liên kết tiêu đề'] = true,
	['liên kết tựa đề'] = true,
	['lk bản sao'] = true,
	['lk biên tập'] = true,
	['lk biên tập viên'] = true,
	['lk chương'] = true,
	['lk loạt'] = true,
	['lk phần'] = true,
	['lk tác giả'] = true,
	['lk tên bài'] = true,
	['lk tiêu đề'] = true,
	['lk tựa đề'] = true,
	['loạt'] = true,
	['location'] = true,
	['mã số'] = true,
	['magazine'] = true,
	['medium'] = true,
	['mạng'] = true,
	['minutes'] = true,
	['mode'] = true,
	['mr'] = true,
	['MR'] = true,
	['mua'] = true,
	['mùa'] = true,
	['mục'] = true,
	['name-list-format'] = true,
	['name-list-style'] = true,
	['năm'] = true,
	['năm gốc'] = true,
	['newspaper'] = true,
	['ngày'] = true,
	['ngày hư DOI'] = true,
	['ngày lưu trữ'] = true,
	['ngày phát'] = true,
	['ngày tháng'] = true,
	['ngày tóm lược'] = true,
	['ngày trong tháng'] = true,
	['ngày truy cập'] = true,
	['ngày truy nhập'] = true,
	['ngày xuất bản'] = true,
	['ngôn ngữ'] = true,
	['nguồn tóm lược'] = true,
	['người khác'] = true,
	['nhà xuất bản'] = true,
	['nopp'] = true,
	['no-pp'] = true,
	['no-tracking'] = true,
	['nơi'] = true,
	['nơi xuất bản'] = true,
	['number'] = true,
	['nxb'] = 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,
	['phân tách'] = true,
	['phân tách biên tập'] = true,
	['phân tách biên tập viên'] = true,
	['phân tách đợt'] = true,
	['phân tách loạt'] = true,
	['phân tách tác giả'] = true,
	['phân tách tên'] = true,
	['phân tách tên biên tập'] = true,
	['phân tách tên biên tập viên'] = true,
	['phân tách tên tác giả'] = true,
	['phút'] = 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,
	['qua'] = 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'] = false,
	['section-url'] = true,
	['section-url-access'] = true,
	['series'] = true,
	['serieslink'] = true,
	['series-link'] = true,
	['seriesno'] = false,
	['series-no'] = true,
	['series-number'] = true,
	['số'] = true,
	['số biên tập'] = true,
	['số biên tập viên'] = true,
	['số ghi án'] = true,
	['số loạt'] = true,
	['số tác giả'] = true,
	['ssrn'] = true,
	['ssrn'] = true,															-- cite ssrn; these two here because allowed in cite ... as identifier
	['SSRN'] = true,
	['subject'] = true,
	['subject-link'] = true,
	['subject-mask'] = true,
	['surname'] = true,
	['s2cid'] = true,
	['S2CID'] = true,
	['s2cid-access'] = true,
	['tác giả'] = true,
	['tác phẩm'] = true,
	['tái bút'] = true,
	['tạp chí'] = true,
	['template-doc-demo'] = true,
	['tên'] = true,
	['tên bài'] = true,
	['tên biên tập'] = true,
	['tên biên tập viên'] = true,
	['tên miền cấp cao nhất ASIN'] = true,
	['tên sách'] = true,
	['tham khảo'] = true,
	['tháng'] = true,
	['thành phố'] = true,
	['thành phố xuất bản'] = true,
	['thì giờ'] = true,
	['thông tấn xã'] = true,
	['thời gian'] = true,
	['tiền tố các trang'] = true,
	['tiền tố trang'] = true,
	['tiêu đề'] = true,
	['time'] = true,
	['timecaption'] = false,
	['time-caption'] = true,
	['title'] = true,
	['titlelink'] = false,
	['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,
	['TLD ASIN'] = true,
	['tóm lược dễ hiểu'] = true,
	['tờ'] = true,
	['tr'] = true,
	['trả tiền'] = true,
	['trang'] = 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,
	['trích dẫn'] = true,
	['từ điển'] = true,
	['từ điển bách khoa'] = true,
	['tự điển'] = true,
	['tựa đề'] = true,
	['type'] = true,
	['url'] = true,
	['url chương'] = true,
	['url hỏng'] = true,
	['url hội nghị'] = true,
	['url hư'] = true,
	['url lưu trữ'] = true,
	['URL'] = true,
	['url-access'] = true,
	['url-status'] = true,
	['vauthors'] = true,
	['và tác giả cuối'] = true,
	['veditors'] = true,
	['version'] = true,
	['vị trí'] = true,
	['via'] = true,
	['volume'] = true,
	['website'] = true,
	['work'] = true,
	['year'] = true,
	['zbl'] = true,
	['ZBL'] = true,
}

local numbered_arguments = {
	['author#'] = true,
	['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,
	['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,
	['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,
	['họ #'] = true,
    ['tên #'] = true,
    ['họ biên tập #'] = true,
    ['họ biên tập viên #'] = true,
    ['liên kết biên tập #'] = true,
    ['liên kết biên tập viên #'] = true,
    ['lk biên tập #'] = true,
    ['lk biên tập viên #'] = true,
    ['lk tác giả #'] = true,
    ['tác giả #'] = true,
    ['tên biên tập #'] = true,
    ['tên biên tập viên #'] = true,
	['subject#'] = true,
	['subject-link#'] = true,
	['subject#-link'] = true,
	['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,
}


--[[--------------------------< 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
defined in the limited_basic_arguments and limited_numbered_arguments tables.  Those lists are supplemented with a
template-specific list of parameters that are required by the particular template and may be 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/nil as above.

]]

local preprint_arguments = {
	arxiv = {
		['arxiv'] = true,														-- cite arxiv and arxiv identifiers
		['class'] = true,
		['eprint'] = true,														-- cite arxiv and arxiv identifiers
		},
	biorxiv = {
		['biorxiv'] = true,
		},
	citeseerx = {
		['citeseerx'] = true,
		},
	ssrn = {
		['ssrn'] = true,
		['SSRN'] = true,
		},
	}


--[[--------------------------< 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 >----------------------

This is an experiment that attempts to use validate() and a limited list of valid parameters to validate the
parameters provided in a cite arxiv, cite biorxiv, or cite citeseerx templates.  These parameters are common to
all three templates

Same conventions for true/false/nil as above.
	
]]

local limited_basic_arguments = {
	['at'] = true,
	['author'] = true,
	['author-first'] = true,
	['author-given'] = true,
	['author-last'] = true,
	['author-surname'] = true,
	['author-link'] = true,
	['authorlink'] = true,
	['author-mask'] = true,
	['authors'] = true,
	['collaboration'] = true,
	['date'] = true,
	['df'] = true,
	['display-authors'] = true,
	['first'] = true,
	['given'] = true,
	['language'] = true,
	['last'] = true,
	['mode'] = true,
	['name-list-format'] = true,
	['name-list-style'] = 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 = {
	['author#'] = true,
	['tên #'] = true,
	['author-first#'] = true,
	['author#-first'] = true,
	['author-given#'] = true,
	['author#-given'] = true,
	['author-last#'] = true,
	['họ #'] = true,
	['tác giả #'] = true,
	['author#-last'] = true,
	['author-surname#'] = true,
	['author#-surname'] = true,
	['author-link#'] = true,
	['author#-link'] = true,
	['authorlink#'] = true,
	['author#link'] = true,
	['lk tác giả #'] = true,
	['author-mask#'] = true,
	['author#-mask'] = true,
	['first#'] = true,
	['given#'] = true,
	['last#'] = true,
	['surname#'] = true,
	}


--[[--------------------------< U N I Q U E _ A R G U M E N T S >----------------------------------------------

Some templates have unique parameters.  Those templates and their unique parameters are listed here. Keys in this
table are the template's CitationClass parameter value

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
	};