}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-170)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-171)where is one of the values:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-172) 2char – list of ISO 639-1 codes and names sorted by code[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-173) 3char – list of ISO 639-2, -3 codes and names sorted by code[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-174) ietf – list of IETF language tags and names sorted by tag[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-175) ietf2 – list of ISO 639-1 based IETF language tags and names sorted by tag[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-176) ietf3 – list of list of ISO 639-2, -3 based IETF language tags and names sorted by tag[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-177) name – list of language names and codes sorted by name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-178) all - list all language codes/tags and names sorted by code/tag[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-179)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-180)where is a MediaWiki supported 2, 3, or ietf-like language code; because of fall-back, language names may[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-181)be the English-language names.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-182)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-183)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-184)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-185)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-186)local function lang_lister (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-187)local lang = (frame.args.lang and '' ~= frame.args.lang) and frame.args.lang or mw.getContentLanguage():getCode()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-188)local source_list = mw.language.fetchLanguageNames(lang, 'all');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-189)local override = cfg.lang_tag_remap;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-190)local code_1_list={};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-191)local code_2_list={};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-192)local ietf_list={};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-193)local ietf_list2={};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-194)local ietf_list3={};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-195)local name_list={};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-196)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-197)if not ({['2char']=true, ['3char']=true, ['ietf']=true, ['ietf2']=true, ['ietf3']=true, ['name']=true, ['all']=true})[frame.args.list] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-198)return 'unknown list selector: ' .. frame.args.list .. '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-199)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-200)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-201)for code, name in pairs (source_list) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-202)if 'all' == frame.args.list then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-203)add_to_list (code_1_list, name_list, override, code, name);-- use the code_1_list because why not?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-204)elseif 2 == code:len() then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-205)add_to_list (code_1_list, name_list, override, code, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-206)elseif 3 == code:len() then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-207)add_to_list (code_2_list, name_list, override, code, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-208)elseif code:match ('^%a%a%-.+') then-- ietf with 2-character language tag[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-209)add_to_list (ietf_list, name_list, override, code, name);-- add to main ietf list for |list=ietf[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-210)add_to_list (ietf_list2, name_list, override, code, name);-- add to ietf2 list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-211)elseif code:match ('^%a%a%a%-.+') then-- ietf with 3-character language tag[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-212)add_to_list (ietf_list, name_list, override, code, name);-- add to main ietf list for |list=ietf[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-213)add_to_list (ietf_list3, name_list, override, code, name);-- add to ietf3 list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-214)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-215)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-216)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-217)local result = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-218)local out = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-219)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-220)if '2char' == frame.args.list or 'all' == frame.args.list then-- iso 639-1[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-221)list_format (result, code_1_list);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-222)elseif '3char' == frame.args.list then-- iso 639-2, 3[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-223)list_format (result, code_2_list);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-224)elseif 'ietf' == frame.args.list then-- all ietf tags[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-225)list_format (result, ietf_list);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-226)elseif 'ietf2' == frame.args.list then-- 2-character ietf tags[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-227)list_format (result, ietf_list2);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-228)elseif 'ietf3' == frame.args.list then-- 3 character ietf tags[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-229)list_format (result, ietf_list3);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-230)else--must be 'name'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-231)list_format (result, name_list);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-232)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-233)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-234)local templatestyles = frame:extensionTag{[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-235)name = 'templatestyles', args = { src = "Div col/styles.css" }[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-236)}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-237)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-238)table.sort (result);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-239)table.insert (result, 1, templatestyles .. '');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-240)table.insert (out, table.concat (result, '\n*'));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-241)table.insert (out, '');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-242)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-243)return table.concat (out, '\n');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-244)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-245)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-246)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-247)--[[--------------------------< S C R I P T _ L A N G _ L I S T E R >------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-248)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-249)Module entry point[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-250)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-251)Crude documentation tool that returns list of language codes and names supported by the various |script-= parameters.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-252)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-253)used in Help:CS1 errors[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-254)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-255){{#invoke:cs1 documentation support|script_lang_lister}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-256)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-257)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-258)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-259)local function script_lang_lister (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-260)local lang_code_src = cfg.script_lang_codes ;-- get list of allowed script language codes[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-261)local override = cfg.lang_tag_remap;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-262)local this_wiki_lang = mw.language.getContentLanguage().code;-- get this wiki's language[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-263)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-264)local code_list = {};-- interim list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-265)local name_list={};-- not used; defined here so that we can reuse add_to_list() [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-266)local out = {};-- final output (for now an unordered list)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-267)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-268)for _, code in ipairs (lang_code_src) do-- loop through the list of codes[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-269)local name = mw.language.fetchLanguageName (code, this_wiki_lang);-- get the language name associated with this code[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-270)add_to_list (code_list, name_list, override, code, name, false);-- name_list{} not used but provided so that we can reuse add_to_list(); don't add superscript dagger[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-271)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-272)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-273)local result = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-274)local out = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-275)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-276)list_format (result, code_list);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-277)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-278)local templatestyles = frame:extensionTag{[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-279)name = 'templatestyles', args = { src = "Div col/styles.css" }[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-280)}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-281)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-282)table.sort (result);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-283)table.insert (result, 1, templatestyles .. '');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-284)table.insert (out, table.concat (result, '\n*'));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-285)table.insert (out, '');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-286)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-287)return table.concat (out, '\n');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-288)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-289)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-290)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-291)--[[--------------------------< A L I A S _ L I S T E R >------------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-292)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-293)experimental code that lists parameters and their aliases. Perhaps basis for some sort of documentation?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-294)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-295){{#invoke:cs1 documentation support|alias_lister}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-296)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-297)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-298)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-299)local function alias_lister ()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-300)local alias_src = cfg.aliases;-- get master list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-301)local key;-- key for k/v in a new table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-302)local list = {};-- interim list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-303)local out = {};-- final output (for now an unordered list)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-304)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-305)for _, aliases in pairs (alias_src) do-- loop throu the master list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-306)if 'table' == type (aliases) then-- table only when there are aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-307)for i, alias in ipairs (aliases) do-- loop through all of the aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-308)if 1 == i then-- first 'alias' is the canonical parameter name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-309)key = alias;-- so it becomes the key in list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-310)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-311)list[key] = list[key] and (list[key] .. ', ' .. alias) or alias;-- make comma-separated list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-312)list[alias] = 'see ' .. key;-- make a back reference from this alias to the canonical parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-313)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-314)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-315)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-316)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-317)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-318)for k, v in pairs (list) do-- loop through the list to make a simple unordered list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-319)table.insert (out, table.concat ({'*', k, ': ', v}));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-320)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-321)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-322)table.sort (out);-- sort it[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-323)return table.concat (out, '\010');-- concatenate with \n[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-324)-- return (mw.dumpObject (list))[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-325)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-326)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-327)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-328)--[[--------------------------< C A N O N I C A L _ P A R A M _ L I S T E R >----------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-329)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-330)experimental code that lists canonical parameter names. Perhaps basis for some sort of documentation?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-331)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-332)returns a comma separated, alpha sorted, list of the canonical parameters. If given a template name, excludes[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-333)parameters listed in that template's exclusion_list[]{} table (if a table has been defined).[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-334)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-335){{#invoke:cs1 documentation support|canonical_param_lister|}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-336)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-337)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-338)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-339)local function canonical_param_lister (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-340)local template = frame.args[1];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-341)if '' == template then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-342)template = nil;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-343)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-344)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-345)if template then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-346)template = mw.text.trim (template:lower());[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-347)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-348)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-349)local alias_src = cfg.aliases;-- get master list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-350)local id_src = cfg.id_handlers;-- get master list of identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-351)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-352)local list = {};-- interim list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-353)local out = {};-- final output (for now an unordered list)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-354)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-355)for _, aliases in pairs (alias_src) do-- loop through the master list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-356)local name;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-357)if 'table' == type (aliases) then-- table only when there are aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-358)name = aliases[1];-- first member of an aliases table is declared canonical[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-359)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-360)name = aliases;-- for those parameters that do not have any aliases, the parameter is declared canonical[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-361)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-362)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-363)if not template then-- no template name, add this parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-364)table.insert (list, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-365)elseif not exclusion_lists[template] then-- template name but no exclusion list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-366)table.insert (list, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-367)elseif not exclusion_lists[template][name] then-- template name and exclusion list but name not in list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-368)table.insert (list, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-369)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-370)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-371)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-372)for k, ids in pairs (id_src) do-- spin through the list of identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-373)local name = id_src[k].parameters[1];-- get the first (left-most) parameter name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-374)local access = id_src[k].custom_access;-- get the access-icon parameter if it exists for this identifier[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-375)if not template then-- no template name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-376)table.insert (list, name);-- add this parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-377)if access then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-378)table.insert (list, access);-- add this access-icon parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-379)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-380)elseif not exclusion_lists[template] then-- template name but no exclusion list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-381)table.insert (list, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-382)if access then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-383)table.insert (list, access);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-384)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-385)elseif not exclusion_lists[template][name] then-- template name and exclusion list but name not in list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-386)table.insert (list, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-387)if access then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-388)table.insert (list, access);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-389)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-390)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-391)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-392)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-393)for _, param in ipairs (list) do-- loop through the list to make a simple unordered list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-394)table.insert (out, table.concat ({'*', param}));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-395)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-396)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-397)local function comp( a, b )-- used in following table.sort()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-398)return a:lower() < b:lower();[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-399)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-400)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-401)table.sort (out, comp);-- sort the list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-402)return table.concat (out, '\010');-- concatenate with \n[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-403)-- return (mw.dumpObject (list))[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-404)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-405)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-406)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-407)--[[--------------------------< C A N O N I C A L _ N A M E _ G E T >------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-408)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-409)returns first (canonical) name when metaparameter is assigned a table of names[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-410)returns name when metaparameter is assigned a single name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-411)returns empty string when metaparameter name not found in alias_src{}, id_src{}, or id_src[meta].custom_access[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-412)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-413)metaparameter is the key in Module:Citation/CS1 aliases{} table or id_handlers{} table. Because access-icon[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-414)don't have keys, per se, we create pseudo keys by appending 'access' to the identifier :[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-415) the for |doi-access= is, for the purposes of this function, DOIaccess, etc[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-416)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-417)Some lists of aliases might be better served when a particular alias is identified as the canonical alias for a [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-418)particular use case. If, for example, Perodical lists:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-419) 'journal', 'magazine', 'newspaper', 'periodical', 'website', 'work'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-420)that order works fine for {{cite journal}} documentation but doesn't work so well for {{cite magazine}}, {{cite news}},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-421)or {{cite web}}. So, for using this function to document {{cite magazine}} the returned value should be the[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-422)parameter best suited for that template so we can specify magazine in the override (frame.args[2])[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-423)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-424)While for this function, it would be just as simple to not use the function, this mechanism is implemented here [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-425)to match similar functionality in alias_names_get() (there are slight differences)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-426) must exist in the alias list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-427) does not apply to the access icon parameters (ignored - these have no aliases)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-428)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-429)(and which would be best for {{cite news}}? |newspaper= or |work=? can't solve all of the worlds problems at once).[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-430)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-431)output format is controlled by |format=[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-432) plain - renders in plain text in a tag; may have id attribute[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-433) para - renders as it would in {{para|}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-434)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-435){{#invoke:cs1 documentation support|canonical_name_get|||id=|format=[plain|para]}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-436)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-437)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-438)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-439)local function canonical_name_get (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-440)local alias_src = cfg.aliases;-- get master list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-441)local id_src = cfg.id_handlers;-- get master list of identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-442)local args = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-443)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-444)local name;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-445)local meta = args[1][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-446)local override = args[2];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-447)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-448)local access;-- for id-access parameters[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-449)if meta:match ('^(%u+)access') then-- the metaparameter (which is not used in ~/Configuration) is id_handlers key concatenated with access: BIBCODEaccess[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-450)meta, access = meta:gsub ('^(%u+)access', '%1');-- strip 'access' text from meta and use returned count value as a flag[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-451)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-452)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-453)if alias_src[meta] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-454)name = alias_src[meta];-- name is a string or a table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-455)if 'table' == type (name) then-- table only when there are aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-456)if not override then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-457)name = name[1];-- first member of an aliases table is declared canonical[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-458)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-459)for _, v in ipairs (name) do-- here when override is set; spin throu the aliases to make sure override matches alias in table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-460)if v == override then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-461)name = v;-- declare override to be the canonical param for this use case[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-462)break;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-463)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-464)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-465)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-466)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-467)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-468)elseif id_src[meta]then-- if there is an id handler[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-469)if access then-- and if this is a request for the handler's custom access parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-470)if id_src[meta].custom_access then-- if there is a custom access parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-471)name = id_src[meta].custom_access;-- use it[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-472)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-473)return '';-- nope, return empty string[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-474)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-475)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-476)if not override then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-477)name = id_src[meta].parameters[1];-- get canonical id handler parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-478)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-479)for _, v in ipairs (id_src[meta].parameters) do-- here when override is set; spin throu the aliases to make sure override matches alias in table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-480)if v == override then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-481)name = v;-- declare override to be the canonical param for this use case[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-482)break;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-483)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-484)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-485)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-486)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-487)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-488)return '';-- metaparameter not specified, or no such metaparameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-489)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-490)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-491)if 'plain' == args.format then-- format and return the output[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-492)if args.id then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-493)return string.format ('%s', args.id, name);-- plain text with id attribute[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-494)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-495)return name;-- plain text[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-496)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-497)elseif 'para' == args.format then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-498)return string.format ('|%s=', name);-- same as {{para|}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-499)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-500)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-501)return string.format ('%s', args.id or '', name);-- because {{csdoc}} bolds param names[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-502)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-503)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-504)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-505)--[[--------------------------< A L I A S _ N A M E S _ G E T >------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-506)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-507)returns list of aliases for metaparameter [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-508)returns empty string when there are no aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-509)returns empty string when name not found in alias_src{} or id_src{}; access icon parameters have no aliases so ignored[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-510)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-511)metaparameter is the key in Module:Citation/CS1 aliases{} table or id_handlers{} table.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-512)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-513)Some lists of aliases might be better served when a particular alias is identified as the canonical alias for a [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-514)particular use case. If, for example, Perodical lists:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-515) 'journal', 'magazine', 'newspaper', 'periodical', 'website', 'work'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-516)that order works fine for {{cite journal}} documentation but doesn't work so well for {{cite magazine}}, {{cite news}},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-517)or {{cite web}}. So, for using this function to document {{cite magazine}} the returned value should be the[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-518)aliases that are not best suited for that template so we can specify magazine in the override (frame.args[2])[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-519)to be the canonical parameter so it won't be listed with the rest of the aliases (normal canonical journal will be)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-520)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-521) must exist in the alias list except:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-522) when value is 'all', returns the canonical parameter plus all of the aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-523)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-524)output format is controlled by |format=[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-525) plain - renders in plain text in a tag; may have id attribute[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-526) para - renders as it would in {{para|}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-527) when not specified, refurns the default bold format used for {{csdoc}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-528)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-529){{#invoke:cs1 documentation support|alias_name_get|||format=[plain|para]}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-530)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-531)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-532)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-533)local function alias_names_get (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-534)local alias_src = cfg.aliases;-- get master list of aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-535)local id_src = cfg.id_handlers;-- get master list of identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-536)local args = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-537)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-538)local meta = args[1];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-539)local override = args[2];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-540)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-541)local out = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-542)local source;-- selected parameter or id aliases list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-543)local aliases;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-544)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-545)source = alias_src[meta] or (id_src[meta] and id_src[meta].parameters);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-546)if not source then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-547)if meta:match ('%u+access') then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-548)return 'no' == args.none and '' or 'none';-- custom access parameters don't have aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-549)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-550)return '';-- no such meta[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-551)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-552)elseif not source[2] then-- id_source[meta] is always a table; if no second member, no aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-553)return 'no' == args.none and '' or 'none';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-554)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-555)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-556)if not override then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-557)aliases = source;-- normal skip-canonical param case[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-558)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-559)local flag = 'all' == override and true or nil;-- so that we know that parameter is a valid alias; spoof when override == 'all'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-560)aliases = {[1] = ''};-- spoof to push alias_src[meta][1] and id_src[meta][1] into aliases[2][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-561)for _, v in ipairs (source) do-- here when override is set; spin through the aliases to make sure override matches alias in table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-562)if v ~= override then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-563)table.insert (aliases, v);-- add all but overridden param to the the aliases list for this use case[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-564)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-565)flag = true;-- set the flag so we know that is a valid alias[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-566)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-567)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-568)if not flag then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-569)aliases = {}-- unset the table as error indicator[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-570)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-571)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-572)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-573)if 'table' == type (aliases) then-- table only when there are aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-574)for i, alias in ipairs (aliases) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-575)if 1 ~= i then-- aliases[1] is the canonical name; don't include it[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-576)if 'plain' == args.format then-- format and return the output[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-577)table.insert (out, alias);-- plain text[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-578)elseif 'para' == args.format then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-579)table.insert (out, string.format ('|%s=', alias));-- same as {{para|}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-580)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-581)table.insert (out, string.format ("'''%s'''", alias));-- because csdoc bolds param names[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-582)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-583)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-584)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-585)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-586)return table.concat (out, ', ');-- make pretty list and quit[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-587)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-588)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-589)return 'no' == args.none and '' or 'none';-- no metaparameter with that name or no aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-590)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-591)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-592)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-593)--[[--------------------------< I S _ B O O K _ C I T E _ T E M P L A T E >------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-594)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-595)fetch the title of the current page; if it is a preprint template, return true; empty string else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-596)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-597)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-598)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-599)local book_cite_templates = {[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-600)['citation'] = true,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-601)['cite book'] = true,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-602)}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-603)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-604)local function is_book_cite_template ()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-605)local title = mw.title.getCurrentTitle().rootText;-- get title of current page without namespace and without sub-pages; from Template:Cite book/new -> Cite book[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-606)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-607)title = title and title:lower() or '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-608)return book_cite_templates[title] or '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-609)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-610)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-611)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-612)--[[--------------------------< I S _ L I M I T E D _ P A R A M _ T E M P L A T E >----------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-613)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-614)fetch the title of the current page; if it is a preprint template, return true; empty string else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-615)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-616)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-617)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-618)local limited_param_templates = {-- if ever there is a need to fetch info from ~/Whitelist then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-619)['cite arxiv'] = true,-- this list could also be fetched from there[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-620)['cite biorxiv'] = true,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-621)['citeseerx'] = true,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-622)['ssrn'] = true,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-623)}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-624)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-625)local function is_limited_param_template ()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-626)local title = mw.title.getCurrentTitle().rootText;-- get title of current page without namespace and without sub-pages; from Template:Cite book/new -> Cite book[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-627)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-628)title = title and title:lower() or '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-629)return limited_param_templates[title] or '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-630)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-631)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-632)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-633)--[[--------------------------< H E A D E R _ M A K E >--------------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-634)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-635)makes a section header from and ; defaults to 2; cannot be less than 2[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-636)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-637)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-638)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-639)local function _header_make (args)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-640)if not args[1] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-641)return '';-- no header text[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-642)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-643)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-644)local level = args[2] and tonumber (args[2]) or 2;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-645)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-646)level = string.rep ('=', level);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-647)return level .. args[1] .. level;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-648)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-649)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-650)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-651)--[[--------------------------< H E A D E R _ M A K E >--------------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-652)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-653)Entry from an {{#invoke:}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-654)makes a section header from and ; defaults to 2; cannot be less than 2[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-655)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-656)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-657)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-658)local function header_make (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-659)local args = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-660)return _header_make (args);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-661)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-662)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-663)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-664)--[[--------------------------< I D _ L I M I T S _ G E T >----------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-665)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-666)return the limit values for named identifier parameters that have limits (pmc, pmid, ssrn, s2cid, oclc, osti, rfc); the return[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-667)value used in template documentation and error message help-text[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-668)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-669){{#invoke:Cs1 documentation support|id_limits_get|}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-670)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-671)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-672)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-673)local function id_limits_get (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-674)local args = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-675)local handlers = cfg.id_handlers;-- get id_handlers {} table from ~/Configuration[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-676)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-677)return args[1] and handlers[args[1]:upper()].id_limit or ('No limit defined for identifier: ' .. (args[1] or '') .. ' ');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-678)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-679)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-680)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-681)--[[--------------------------< C A T _ L I N K _ M A K E >----------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-682)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-683)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-684)local function cat_link_make (cat)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-685)return table.concat ({'[[:Category:', cat, ']]'});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-686)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-687)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-688)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-689)--[[--------------------------< S C R I P T _ C A T _ L I S T E R >--------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-690)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-691)utility function to get script-language categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-692)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-693)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-694)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-695)local lang_list_t = mw.language.fetchLanguageNames ('en', 'all');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-696) [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-697)local function script_cat_lister (script_lang_codes_t, lang_tag_remap_t, cats_list_t)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-698)for _, lang_code in ipairs (script_lang_codes_t) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-699)local lang_name = lang_tag_remap_t[lang_code] or lang_list_t[lang_code];-- use remap table to get Bengali instead of Bangla and the like; else use standard MediaWiki names[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-700)local cat = 'CS1 uses ' .. lang_name .. '-language script (' .. lang_code .. ')';-- build a category name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-701)cats_list_t[cat] = 1;-- and save it[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-702)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-703)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-704)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-705)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-706)--[[--------------------------< C S 1 _ C A T _ L I S T E R >--------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-707)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-708)This is a crude tool that reads the category names from Module:Citation/CS1/Configuration, makes links of them,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-709)and then lists them in sorted lists. A couple of parameters control the rendering of the output:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-710) |select= -- (required) takes one of three values: error, maint, prop[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-711) |sandbox= -- takes one value: no[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-712) |hdr-lvl= -- base header level (number of == that make a header); default:2 min:2[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-713)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-714)This tool will automatically attempt to load a sandbox version of ~/Configuration if one exists.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-715)Setting |sandbox=no will defeat this.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-716)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-717){{#invoke:cs1 documentation support|cat_lister|select=|sandbox=}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-718)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-719)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-720)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-721)local function cat_lister (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-722)local args = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-723)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-724)local list_live_cats = {};-- list of live categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-725)local list_sbox_cats = {};-- list of sandbox categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-726)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-727)local live_sbox_out = {}-- list of categories that are common to live and sandbox modules[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-728)local live_not_in_sbox_out = {}-- list of categories in live but not sandbox[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-729)local sbox_not_in_live_out = {}-- list of categories in sandbox but not live[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-730)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-731)local out = {};-- final output assembled here[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-732)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-733)local sandbox;-- boolean; true: evaluate the sandbox module[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-734)local hdr_lvl;-- [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-735)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-736)local sb_cfg;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-737)local sandbox, sb_cfg = pcall (mw.loadData, 'Module:Citation/CS1/Configuration/sandbox');-- get sandbox configuration[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-738)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-739)local cat;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-740)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-741)local select = args.select;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-742)if 'no' == args.sandbox then-- list sandbox?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-743)sandbox = false;-- no, live only[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-744)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-745)if hdr_lvl then-- if set and[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-746)if tonumber (hdr_lvl) then-- can be converted to number[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-747)if 2 > tonumber (hdr_lvl) then-- min is 2[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-748)hdr_lvl = 2;-- so set to min[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-749)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-750)else-- can't be converted[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-751)hdr_lvl = 2;-- so default to min[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-752)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-753)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-754)hdr_lvl = 2;-- not set so default to min[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-755)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-756)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-757)if 'error' == select or 'maint' == select then-- error and main categorys handling different from poperties cats[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-758)for _, t in pairs (cfg.error_conditions) do-- get the live module's categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-759)if ('error' == select and t.message) or ('maint' == select and not t.message) then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-760)cat = t.category:gsub ('|(.*)$', '');-- strip sort key if any[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-761)list_live_cats[cat] = 1;-- add to the list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-762)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-763)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-764)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-765)if sandbox then-- if ~/sandbox module exists and |sandbox= not set to 'no'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-766)for _, t in pairs (sb_cfg.error_conditions) do-- get the sandbox module's categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-767)if ('error' == select and t.message) or ('maint' == select and not t.message) then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-768)cat = t.category:gsub ('|(.*)$', '');-- strip sort key if any[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-769)list_sbox_cats[cat] = 1;-- add to the list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-770)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-771)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-772)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-773)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-774)elseif 'prop' == select then-- prop cats[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-775)for _, cat in pairs (cfg.prop_cats) do-- get the live module's categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-776)cat = cat:gsub ('|(.*)$', '');-- strip sort key if any[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-777)list_live_cats[cat] = 1;-- add to the list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-778)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-779)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-780)script_cat_lister (cfg.script_lang_codes, cfg.lang_tag_remap, list_live_cats);-- get live module's foriegn language script cats[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-781)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-782)if sandbox then-- if ~/sandbox module exists and |sandbox= not set to 'no'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-783)for _, cat in pairs (sb_cfg.prop_cats) do-- get the sandbox module's categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-784)cat = cat:gsub ('|(.*)$', '');-- strip sort key if any[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-785)list_sbox_cats[cat] = 1;-- add to the list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-786)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-787)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-788)script_cat_lister (sb_cfg.script_lang_codes, sb_cfg.lang_tag_remap, list_sbox_cats);-- get sandbox module's foriegn language script cats[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-789)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-790)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-791)return 'error: unknown selector: ' .. select .. ''[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-792)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-793)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-794)for k, _ in pairs (list_live_cats) do-- separate live/sbox common cats from cats not in sbox[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-795)if not list_sbox_cats[k] and sandbox then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-796)table.insert (live_not_in_sbox_out, cat_link_make (k));-- in live but not in sbox[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-797)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-798)table.insert (live_sbox_out, cat_link_make (k));-- in both live and sbox[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-799)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-800)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-801)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-802)for k, _ in pairs (list_sbox_cats) do-- separate sbox/live common cats from cats not in live[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-803)if not list_live_cats[k] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-804)table.insert (sbox_not_in_live_out, cat_link_make (k));-- in sbox but not in live[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-805)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-806)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-807)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-808)local function comp (a, b)-- local function for case-agnostic category name sorting[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-809)return a:lower() < b:lower();[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-810)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-811)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-812)local header;-- initialize section header with name of selected category list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-813)if 'error' == select then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-814)header = 'error';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-815)elseif 'maint' == select then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-816)header = 'maintenance';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-817)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-818)header = 'properties';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-819)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-820)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-821)header = table.concat ({-- build the main header[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-822)'Live ',-- always include this[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-823)((sandbox and 'and sandbox ') or ''),-- if sandbox evaluated, mention that[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-824)header,-- add the list name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-825)' categories (',-- finish the name and add[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-826)#live_sbox_out,-- count of categories listed[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-827)')'-- close[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-828)})[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-829)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-830)local templatestyles = frame:extensionTag{[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-831)name = 'templatestyles', args = { src = "Div col/styles.css" }[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-832)}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-833)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-834)header = table.concat ({-- make a useable header[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-835)_header_make ({header, hdr_lvl}),[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-836)'\n' .. templatestyles .. ''-- opening for columns[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-837)});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-838)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-839)table.sort (live_sbox_out, comp);-- sort case agnostic acsending[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-840)table.insert (live_sbox_out, 1, header);-- insert the header at the top[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-841)table.insert (out, table.concat (live_sbox_out, '\n*'));-- make a big string of unordered list markup[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-842)table.insert (out, '\n');-- close the and add new line so the next header works[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-843)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-844)if 0 ~= #live_not_in_sbox_out then-- when there is something in the table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-845)header = table.concat ({-- build header for subsection[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-846)'In live but not in sandbox (',[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-847)#live_not_in_sbox_out,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-848)')'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-849)});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-850)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-851)header = table.concat ({-- make a useable header[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-852)_header_make ({header, hdr_lvl+1}),[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-853)'\n' .. templatestyles .. ''[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-854)});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-855)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-856)table.sort (live_not_in_sbox_out, comp);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-857)table.insert (live_not_in_sbox_out, 1, header);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-858)table.insert (out, table.concat (live_not_in_sbox_out, '\n*'));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-859)table.insert (out, '\n');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-860)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-861)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-862)if 0 ~= #sbox_not_in_live_out then-- when there is something in the table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-863)header = table.concat ({-- build header for subsection[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-864)'In sandbox but not in live (',[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-865)#sbox_not_in_live_out,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-866)')'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-867)});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-868)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-869)header = table.concat ({-- make a useable header[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-870)_header_make ({header, hdr_lvl+1}),[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-871)'\n' .. templatestyles .. ''[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-872)});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-873)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-874)table.sort (sbox_not_in_live_out, comp);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-875)table.insert (sbox_not_in_live_out, 1, header);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-876)table.insert (out, table.concat (sbox_not_in_live_out, '\n*'));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-877)table.insert (out, '\n');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-878)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-879)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-880)return table.concat (out);-- concat into a huge string and done[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-881)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-882)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-883)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-884)--[=[--------------------------< H E L P _ T E X T _ C A T S >--------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-885)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-886)To create category links at the bottom of each error help text section and on the individual error category pages;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-887)fetches category names from ~/Configuration; replaces this:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-888) {{#ifeq:{{FULLPAGENAME}}|Category:CS1 errors: bioRxiv|Category:CS1 errors: bioRxiv|[[:Category:CS1 errors: bioRxiv]]}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-889)with this:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-890) {{#invoke:Cs1 documentation support|help_text_cats|err_bad_biorxiv}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-891)where {{{1}}} is the error_conditions key from Module:Citation/CS1/Configuration[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-892)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-893)add |pages=yes to append the number of pages in the category[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-894)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-895)]=][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-896)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-897)local function help_text_cats (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-898)local args_t = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-899)local error_conditions_t = cfg.error_conditions;-- get the table of error conditions[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-900)local replacements_t = {};-- table to hold replacement parameters for $1 etc placeholders in category names[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-901)for k, v in pairs (args_t) do-- look for |$1= parameters[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-902)if 'string' == type (k) and k:match ('^$%d+$') then-- if found[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-903)replacements_t[k] = v;-- save key and value[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-904)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-905)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-906)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-907)if args_t[1] and error_conditions_t[args_t[1]] then-- must have error_condition key and it must exist[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-908)local error_cat = error_conditions_t[args_t[1]].category;-- get error category from cs1|2 configuration[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-909)if error_cat:match ('$%d') then-- look for placeholders in [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-910)error_cat = error_cat:gsub ('$%d', replacements_t)-- replace place holders with matching value from replacements_t[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-911)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-912)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-913)local title_obj = mw.title.getCurrentTitle();-- get a title object for the currently displayed page[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-914)local name_space = title_obj.nsText;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-915)if ('Category' == name_space) and (error_cat == title_obj.text) then-- if this is the category page for the error message[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-916)return table.concat ({'Category:', error_cat});-- no link; just category name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-917)else-- here when currently displayed page is other than the error message category[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-918)local pages = '';-- default empty strin for concatenation[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-919)if 'yes' == args_t.pages then-- if we should display category page count: TODO: do we need to keep this?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-920)pages = mw.site.stats.pagesInCategory (error_cat, 'all');-- get category page count[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-921)pages = table.concat ({' (', mw.language.getContentLanguage():formatNum (pages), ' page', (1 == pages) and ')' or 's)'});-- make renderable text[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-922)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-923)return table.concat ({'[[:Category:', error_cat, ']]', pages});-- link to category with or without page count[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-924)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-925)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-926)return 'unknown error_conditions key: ' .. (args_t[1] or 'key missing') .. '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-927)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-928)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-929)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-930)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-931)--[[--------------------------< H E L P _ T E X T _ E R R O R _ M E S S A G E >--------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-932)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-933)to render help text example error messages[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-934) {{#invoke:Cs1 documentation support|help_text_error_messages|err_bad_biorxiv}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-935)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-936)assign a single underscore to any of the |$n= parameters to insert an empty string in the error message:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-937) {{#invoke:Cs1 documentation support|help_text_error_messages|err_bad_issn|$1=_}} -> Check |issn= value[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-938) {{#invoke:Cs1 documentation support|help_text_error_messages|err_bad_issn|$1=e}} -> Check |eissn= value[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-939)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-940)error message is rendered at 120% font size; to specify another font size use |size=; must include unit specifier (%, em, etc)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-941)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-942)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-943)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-944)local function help_text_error_messages (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-945)local args_t = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-946)local error_conditions = mw.loadData ('Module:Citation/CS1/Configuration').error_conditions;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-947)-- local span_o = '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-948)local span_o = '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-949)local span_c = '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-950)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-951)local message;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-952)local out = {};-- output goes here[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-953)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-954)if args_t[1] and error_conditions[args_t[1]] then-- must have error_condition key and it must exist[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-955)message = error_conditions[args_t[1]].message;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-956)local i=1;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-957)local count;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-958)local rep;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-959)repeat[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-960)rep = '$'..i[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-961)args_t[rep] = args_t[rep] and args_t[rep]:gsub ('^%s*_%s*$', '') or nil;-- replace empty string marker with actual empty string[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-962)message, count = message:gsub (rep, args_t[rep] or rep)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-963)i = i + 1;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-964)until (0 == count);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-965)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-966)table.insert (out, span_o);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-967)table.insert (out, message);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-968)table.insert (out, span_c);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-969)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-970)return 'unknown error_conditions key: ' .. (args_t[1] or 'key missing') .. '';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-971)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-972)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-973)local out_str = table.concat (out);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-974)return table.concat ({frame:extensionTag ('templatestyles', '', {src='Module:Citation/CS1/styles.css'}), out_str});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-975)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-976)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-977)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-978)--[[--------------------------< T E M P L A T E S _ T >--------------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-979)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-980)This table is a k/v table of sequence tables. The keys in this table are collapsed lowercase form of the cs1|2[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-981)template names ({{ROOTPAGENAME}}):[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-982) Template:Cite AV media -> citeavmedia[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-983)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-984)Each subsequence table holds:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-985) [1] documentation page where the TemplateData json is stored ({{cite book}} is the oddball)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-986) [2] key to 'preprint_arguments_t' and unique_arguments_t' tables in Module:Citation/CS1/Whitelist; these keys[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-987) dictate which of the basic or limited arguments and numbered arguments tables will be used to validate[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-988) the content of the TemplateData[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-989)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-990)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-991)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-992)local templates_t = {[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-993)citearxiv = {'Template:Cite_arXiv/doc', 'arxiv'},-- preprint arguments [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-994)citeavmedia = {'Template:Cite AV media/doc', 'audio-visual'},-- unique arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-995)citeavmedianotes = {'Template:Cite AV media notes/doc'},-- no template data[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-996)citebiorxiv = {'Template:Cite bioRxiv/doc', 'biorxiv'},-- preprint arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-997)citebook = {'Template:Cite book/TemplateData'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-998)citeciteseerx = {'Template:Cite CiteSeerX/doc', 'citeseerx'},-- no template data; preprint uses limited arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-999)citeconference = {'Template:Cite conference/doc', 'conference'},-- unique arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1000)citedocument = {'Template:Cite document/doc', 'document'},-- special case; uses whitelist.document_parameters_t[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1001)citeencyclopedia = {'Template:Cite encyclopedia/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1002)citeepisode = {'Template:Cite episode/doc', 'episode'},-- unique arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1003)citeinterview = {'Template:Cite interview/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1004)citejournal = {'Template:Cite journal/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1005)citemagazine = {'Template:Cite magazine/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1006)citemailinglist = {'Template:Cite mailing list/doc', 'mailinglist'},-- unique arguments -- no template data[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1007)citemap = {'Template:Cite map/TemplateData', 'map'},-- unique arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1008)citemedrxiv = {'Template:Cite medRxiv/doc', 'medrxiv'},-- preprint arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1009)citenews = {'Template:Cite news/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1010)citenewsgroup = {'Template:Cite newsgroup/doc', 'newsgroup'},-- unique arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1011)citepodcast = {'Template:Cite podcast/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1012)citepressrelease = {'Template:Cite press release/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1013)citereport = {'Template:Cite report/doc', 'report'},-- unique arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1014)citeserial = {'Template:Cite serial/doc', 'serial'},-- unique arguments -- no template data[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1015)citesign = {'Template:Cite sign/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1016)citespeech = {'Template:Cite speech/doc', 'speech'},-- unique arguments -- no template data[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1017)citessrn = {'Template:Cite SSRN/doc', 'ssrn'},-- preprint arguments -- no template data[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1018)citetechreport = {'Template:Cite tech report/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1019)citethesis = {'Template:Cite thesis/doc', 'thesis'},-- unique arguments[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1020)citeweb = {'Template:Cite web/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1021)citation = {'Template:Citation/doc'},[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1022)}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1023)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1024)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1025)--[[--------------------------< N O _ P A G E _ T E M P L A T E S _ T >----------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1026)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1027)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1028)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1029)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1030)local no_page_templates_t = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1031)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1032)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1033)--[[--------------------------< I D E N T I F I E R _ A L I A S E S _ T >--------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1034)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1035)a table of the identifier aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1036)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1037)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1038)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1039)local identifier_aliases_t = {}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1040)for identifier, handler in pairs (cfg.id_handlers) do-- for each identifier[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1041)local aliases_t = {};-- create a table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1042)for _, alias in ipairs (handler.parameters) do-- get the alaises[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1043)aliases_t[alias] = true;-- and add them to the table in a form that mimics the whitelist tables[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1044)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1045)identifier_aliases_t[identifier:lower()] = aliases_t;-- add new table to the identifier aliases table; use lowercase identifier base name for the key[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1046)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1047)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1048)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1049)--[[--------------------------< T E M P L A T E _ D A T A _ J S O N _ G E T >----------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1050)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1051)get template doc page content and extract the content of the TemplateData tags (case insensitive)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1052)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1053) is the canonical name of the template doc page (with namespace) that holds the template data; usually[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1054)Template:Cite xxx/doc (except Template:Cite book/TemplateData)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1055)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1056)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1057)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1058)local function template_data_json_get (template)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1059)local json = mw.title.new (template):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[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1060)json = json:match ('<[Tt]emplate[Dd]ata>(.-)[Tt]emplate[Dd]ata>');-- remove everything exept the content of the TemplatData tags[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1061)return json and mw.text.jsonDecode (json);-- decode the json string and return as a table; nil if not found[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1062)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1063)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1064)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1065)--[[--------------------------< V A L I D A T E _ D O C U M E N T _ P A R A M >--------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1066)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1067)looks for (can be the canonical parameter name or can be an alias) in whitelist.document_parameters_t.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1068)When found, returns true; nil else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1069)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1070) is the parameter's name as listed in the TemplateData[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1071)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1072)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1073)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1074)local function validate_document_param (param)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1075)if true == whitelist.document_parameters_t[param] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1076)return true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1077)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1078)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1079)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1080)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1081)--[[--------------------------< V A L I D A T E _ U N I Q U E _ P A R A M >------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1082)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1083)looks for (can be the canonical parameter name or can be an alias) in whitelist.basic_arguments{} and if[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1084)necessary in whitelist.numbered_arguments{}. When found, returns true; nil else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1085)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1086) is the parameter's name as listed in the TemplateData[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1087)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1088)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1089)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1090)local function validate_basic_param (param)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1091)if true == whitelist.common_parameters_t[param] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1092)return true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1093)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1094)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1095)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1096)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1097)--[[--------------------------< V A L I D A T E _ P R E P R I N T _ P A R A M >--------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1098)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1099)looks for (can be the canonical parameter name or can be an alias) in whitelist.preprint_arguments_t{} or[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1100)whitelist.limited_basic_arguments{} or whitelist.limited_numbered_arguments{}. When found, returns true; nil else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1101)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1102) is the parameter's name as listed in the TemplateData[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1103) is key neccessary to look in the appropriate subtable of whitelist.preprint_arguments_t{}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1104)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1105)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1106)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1107)local function validate_preprint_param (param, key)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1108)if true == whitelist.preprint_arguments_t[key][param] or[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1109)true == whitelist.limited_parameters_t[param] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1110)-- true == whitelist.limited_basic_arguments_t[param] or[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1111)-- true == whitelist.limited_numbered_arguments_t[param] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1112)return true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1113)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1114)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1115)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1116)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1117)--[[--------------------------< V A L I D A T E _ U N I Q U E _ P A R A M >------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1118)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1119)looks for (can be the canonical parameter name or can be an alias) in whitelist.unique_arguments_t{} or[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1120)whitelist.basic_arguments{} or whitelist.numbered_arguments{}. When found, returns true; nil else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1121)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1122) is the parameter's name as listed in the TemplateData[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1123) is key neccessary to look in the appropriate subtable of whitelist.unique_arguments_t{}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1124)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1125)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1126)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1127)local function validate_unique_param (param, key, cfg_aliases_t)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1128)if true == whitelist.unique_arguments_t[key][param] or true == validate_basic_param (param) then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1129)return true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1130)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1131)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1132)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1133)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1134)--[[--------------------------< V A L I D A T E _ I D _ P A R A M >--------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1135)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1136)looks for in identifier_aliases_t{}. When found, returns true; nil else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1137)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1138) is the parameter's name as listed in the TemplateData[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1139) is the alias that we're looking for[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1140)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1141)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1142)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1143)local function validate_id_alias (param, alias)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1144)return identifier_aliases_t[param] and identifier_aliases_t[param][alias];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1145)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1146)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1147)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1148)--[[--------------------------< P A R A M _ E R R O R_ M S G >-------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1149)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1150)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1151)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1152)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1153)local function param_error_msg (param)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1154)return '|' .. param .. '= is not a valid parameter';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1155)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1156)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1157)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1158)--[[--------------------------< D U P _ A L I A S _ E R R O R_ M S G >-----------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1159)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1160)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1161)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1162)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1163)local function dup_alias_error_msg (param, alias)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1164)return '|' .. param .. '= has duplicate aliases: |' .. alias .. '=';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1165)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1166)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1167)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1168)--[[--------------------------< D U P _ A L I A S E S _ C H E C K >--------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1169)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1170)create an associative array of aliases. if already present in add an error message[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1171)to [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1172)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1173)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1174)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1175)local function dup_aliases_check (param, alias, aliases_t, out_t)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1176)if not aliases_t[alias] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1177)aliases_t[alias] = true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1178)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1179)table.insert (out_t, dup_alias_error_msg (param, alias));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1180)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1181)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1182)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1183)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1184)--[[--------------------------< A L I A S _ E R R O R_ M S G >-------------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1185)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1186)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1187)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1188)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1189)local function alias_error_msg (param, alias)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1190)return '|' .. alias .. '= is not a valid alias of: |' .. param .. '=';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1191)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1192)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1193)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1194)--[[--------------------------< C F G _ A L I A S E S _ T _ M A K E >------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1195)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1196)convert this from cfg.aliases{}:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1197) ['AccessDate'] = {'access-date', 'accessdate'}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1198)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1199)to this in out_t{}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1200) ['access-date'] = 'AccessDate',[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1201) ['accessdate'] = 'AccessDate',[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1202)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1203)to test if |accessdate= is an aliases of |access-date=:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1204) if out_t['access-date'] == out_t['accessdate'][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1205)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1206)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1207)local function cfg_aliasts_t_make ()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1208)local out_t = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1209)for meta, params_t in pairs (cfg.aliases) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1210)if 'table' == type (params_t) then-- metaparameters that are assigned string values do not have aliases[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1211)for _, param in ipairs (params_t) do-- for each alias[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1212)param = param:gsub ('#', '');-- get rid of enumerators[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1213)out_t[param] = meta;-- add it to the output table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1214)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1215)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1216)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1217)--error (mw.dumpObject (out_t))[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1218)return out_t;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1219)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1220)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1221)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1222)--[[--------------------------< T E M P L A T E _ D A T A _ V A L I D A T E >----------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1223)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1224)compairs parameter names listed in a cs1|2 template's TemplateData structure (everything between [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1225)and tag case insensitive). Returns error messages when errors found, empty string else.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1226)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1227) {{#invoke:Cs1 documentation support|template_data_validate|{{ROOTPAGENAME}}}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1228)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1229)When called from a different page:[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1230) {{#invoke:cs1 documentation support|template_data_validate|}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1231)where the is the template's canonical name with or without namespace and or subpages[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1232)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1233)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1234)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1235)local function template_data_validate (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1236)local args_t = getArgs (frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1237)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1238)if not args_t[1] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1239)return 'Error: cs1|2 template name required';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1240)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1241)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1242)local template_idx = args_t[1]:lower():match ('cit[ae][^/]+');-- args_t[1] has something[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1243)if not template_idx then-- but if not a cs1|2 template abandon with error message[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1244)return 'Error: cs1|2 template name required';[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1245)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1246)template_idx = template_idx:gsub (' ', '');-- is what appears to be a cs1|2 template so strip spaces[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1247)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1248)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1249)local cfg_aliases_t = cfg_aliasts_t_make ();[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1250)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1251)local template_t = templates_t[template_idx];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1252)local out = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1253)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1254)local template_doc = template_t[1];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1255)local json_t = template_data_json_get (template_doc);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1256)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1257)if not json_t then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1258) table.insert (out, 'Error: can\'t find TemplateData');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1259)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1260)for param, param_t in pairs (json_t['params']) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1261)local param_i;-- this will be the parameter name that gets validated[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1262)if param:find ('[Ss]2[Cc][Ii][Dd]') then-- |s2cid*= parameters are not enumerated ...[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1263)param_i = param;-- ... so don't convert the '2' to '#'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1264)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1265)param_i = param:gsub ('%d+', '#');-- for enumerated parameters, convert the enumerator digits to a single '#' character; all others unmolested[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1266)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1267)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1268)local param_is_valid;-- boolean true when param is valid; nil else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1269)if template_t[2] then-- if template is a preprint or uses unique parameters of 'document' parameters[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1270)if 'document' == template_t[2] then-- if a {{cite document}} template[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1271)param_is_valid = validate_document_param (param_i, template_t[2]);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1272)if param_is_valid then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1273)local aliases_t = {};-- used by dup_aliases_check[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1274)if param_t['aliases'] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1275)for _, alias in ipairs (param_t['aliases']) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1276)dup_aliases_check (param, alias, aliases_t, out);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1277)local alias_i = alias:gsub ('%d+', '#');-- in case an enumerated parameter, convert the enumerator digits to a single '#' character[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1278)if not validate_document_param (alias_i, template_t[2]) then-- is 'alias' a known parameter?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1279) table.insert (out, alias_error_msg (param, alias));-- may be known but is not supported[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1280)elseif cfg_aliases_t[param_i:gsub ('#', '')] ~= cfg_aliases_t[alias_i:gsub ('#', '')] then-- is 'alias' known to be an alias of 'param'?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1281)table.insert (out, alias_error_msg (param, alias));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1282) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1283)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1284)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1285)else-- here when param not valid preprint param[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1286)table.insert (out, param_error_msg (param))[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1287) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1288)elseif whitelist.preprint_arguments_t[template_t[2]] then-- if a preprint template[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1289)param_is_valid = validate_preprint_param (param_i, template_t[2]);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1290)if param_is_valid then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1291)local aliases_t = {};-- used by dup_aliases_check[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1292)if param_t['aliases'] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1293)for _, alias in ipairs (param_t['aliases']) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1294)dup_aliases_check (param, alias, aliases_t, out);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1295)local alias_i = alias:gsub ('%d+', '#');-- in case an enumerated parameter, convert the enumerator digits to a single '#' character[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1296)if not validate_preprint_param (alias_i, template_t[2]) then-- is 'alias' a known parameter?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1297) table.insert (out, alias_error_msg (param, alias));-- may be known but is not supported[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1298)elseif cfg_aliases_t[param_i:gsub ('#', '')] ~= cfg_aliases_t[alias_i:gsub ('#', '')] then-- is 'alias' known to be an alias of 'param'?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1299)table.insert (out, alias_error_msg (param, alias));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1300) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1301)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1302)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1303)else-- here when param not valid preprint param[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1304)table.insert (out, param_error_msg (param))[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1305) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1306)elseif whitelist.unique_arguments_t[template_t[2]] then-- if a unique parameters template[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1307)param_is_valid = validate_unique_param (param_i, template_t[2]);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1308)if param_is_valid then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1309)local aliases_t = {};-- used by dup_aliases_check[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1310)if param_t['aliases'] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1311)for _, alias in ipairs (param_t['aliases']) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1312)dup_aliases_check (param, alias, aliases_t, out);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1313)local alias_i = alias:gsub ('%d+', '#');-- in case an enumerated parameter, convert the enumerate digits to a single '#' character[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1314)if not validate_unique_param (alias_i, template_t[2]) then-- is 'alias' a known parameter?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1315)table.insert (out, alias_error_msg (param, alias));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1316)elseif cfg_aliases_t[param_i:gsub ('#', '')] ~= cfg_aliases_t[alias_i:gsub ('#', '')] then-- is 'alias' known to be an alias of 'param'?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1317)table.insert (out, alias_error_msg (param, alias));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1318) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1319)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1320)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1321)else-- here when param not valid unique parameter[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1322)table.insert (out, param_error_msg (param))[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1323) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1324)else-- should never be here if coder is doing the right thing ...[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1325)table.insert (out, 'internal error: unexpected keyword in templates_t: ' .. template_t[2]);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1326)break;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1327)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1328)else-- here when not unique or preprint[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1329)param_is_valid = validate_basic_param (param_i);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1330)if param_is_valid then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1331)local aliases_t = {};-- used by dup_aliases_check[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1332)if param_t['aliases'] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1333)for _, alias in ipairs (param_t['aliases']) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1334)dup_aliases_check (param, alias, aliases_t, out)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1335)local alias_i = alias:gsub ('%d+', '#');-- in case an enumerated parameter, convert the enumerate digits to a single '#' character[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1336)if not validate_basic_param (alias_i) and not validate_id_alias (param, alias) then-- for isbn13 (while still supported) must not mask the digits[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1337) table.insert (out, alias_error_msg (param, alias));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1338)elseif cfg_aliases_t[param_i:gsub ('#', '')] ~= cfg_aliases_t[alias_i:gsub ('#', '')] then-- is 'alias' known to be an alias of 'param'?[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1339)table.insert (out, alias_error_msg (param, alias));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1340) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1341)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1342)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1343)else-- here when param not valid[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1344)table.insert (out, param_error_msg (param))[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1345) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1346)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1347)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1348)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1349)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1350)---------- this emits errors when page/pages/at listed in templatedata of templates that don't support those parameters ----------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1351)-- if json_t then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1352)-- if ({['citeavmedia']=true, ['citeepisode']=true, ['citemailinglist']=true, ['citenewsgroup']=true, ['citepodcast']=true, ['citeserial']=true, ['citesign']=true, ['citespeech']=true})[template_idx] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1353)-- local insource_params_t = {}; -- build sequence of pagination params not supported by these templates[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1354)-- for _, meta_param in ipairs ({'At', 'Page', 'Pages', 'QuotePage', 'QuotePages'}) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1355)-- if 'table' == type (cfg.aliases[meta_param]) then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1356)-- for _, alias in ipairs (cfg.aliases[meta_param]) do -- metaparameter is a sequence[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1357)-- table.insert (insource_params_t, alias); -- add the aliases from the metaparameter sequence to the table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1358)-- end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1359)-- else -- metaparameter is plain text[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1360)-- table.insert (insource_params_t, cfg.aliases[meta_param]); -- add the alias to the table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1361)-- end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1362)-- end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1363)-- [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1364)-- for _, param in ipairs (insource_params_t) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1365)-- if json_t.params[param] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1366)-- table.insert (out, param_error_msg (param)); -- error; this parameter not supported by this template[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1367)-- end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1368)-- end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1369)-- end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1370)-- end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1371)---------- end page/pages/at error detection ----------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1372)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1373)if 0 ~= #out then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1374)table.sort (out);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1375)out[1] = '*' .. out[1];-- add a splat to the first error message[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1376)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1377)-- return table.concat ({'[[' .. template_doc .. ']] TemplateData has errors:\n', table.concat (out, '\n*'), ''});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1378)return table.concat ({[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1379)'[[Template:' .. args_t[1] .. ']] uses ',[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1380)whitelist.preprint_arguments_t[template_t[2]] and 'preprint and limited parameter sets' or (whitelist.unique_arguments_t[template_t[2]] and 'unique and standard parameter sets' or 'standard parameter set'),[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1381)'; TemplateData has errors:\n',[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1382)'\n', table.concat (out, '\n*'), ''[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1383)});[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1384)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1385)return;-- no errors detected; return nothing[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1386)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1387)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1388)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1389)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1390)--[[--------------------------< E R R O R _ C A T _ P A G E _ T A L L Y >--------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1391)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1392)loop through Module:Citation/CS1/Configuration error_conditions {} fetching error category names. For each error[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1393)category add the number of pages in the category to the tally. Render the number when done.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1394)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1395){{#invoke:cs1 documentation support|error_cat_page_tally}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1396)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1397)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1398)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1399)local function error_cat_page_tally ()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1400)local error_conditions_t = cfg.error_conditions;-- get the table of error conditions[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1401)local tally = 0;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1402)local cat_t = {};-- some error message share a category; save tallied cats here so we don't recount the already counted[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1403)local i = 0;-- number of categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1404)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1405)for k, v_t in pairs (error_conditions_t) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1406)if k:match ('^err') then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1407)if not cat_t[v_t.category] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1408)cat_t[v_t.category] = true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1409)tally = tally + mw.site.stats.pagesInCategory (v_t.category, 'pages');-- get category page count; ignore subcats and files[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1410)i = i + 1;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1411)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1412)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1413)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1414)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1415)return mw.language.getContentLanguage():formatNum (tally)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1416)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1417)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1418)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1419)--[[--------------------------< M A I N T _ C A T _ P A G E _ T A L L Y >--------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1420)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1421)loop through Module:Citation/CS1/Configuration error_conditions {} fetching error category names. For each error[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1422)category add the number of pages in the category to the tally. Render the number when done.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1423)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1424){{#invoke:cs1 documentation support|maint_cat_page_tally}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1425)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1426)Dynamic subcats of CS1 maint: DOI inactive not counted because these names come and go as time goes by.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1427)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1428)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1429)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1430)local function maint_cat_page_tally ()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1431)local error_conditions_t = cfg.error_conditions;-- get the table of error conditions[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1432)local tally = 0;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1433)local cat_t = {};-- some error message share a category; save tallied cats here so we don't recount the already counted[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1434)local i = 0;-- number of categories[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1435)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1436)for k, v_t in pairs (error_conditions_t) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1437)if not k:match ('^err') then-- if not an error key its a maint key[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1438)if not cat_t[v_t.category] then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1439)cat_t[v_t.category] = true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1440)if 'maint_mult_names' == k or 'maint_numeric_names' == k then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1441)local special_case_translation_t = cfg.special_case_translation;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1442)for _, name in ipairs ({'AuthorList', 'ContributorList', 'EditorList', 'InterviewerList', 'TranslatorList'}) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1443)local cat_name = v_t.category:gsub ('$1', special_case_translation_t[name]);-- replace $1 with translated list name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1444)tally = tally + mw.site.stats.pagesInCategory (cat_name, 'pages');-- get category page count; ignore subcats and files[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1445)i = i + 1;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1446)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1447)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1448)tally = tally + mw.site.stats.pagesInCategory (v_t.category, 'pages');-- get category page count; ignore subcats and files[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1449)i = i + 1;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1450)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1451)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1452)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1453)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1454)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1455)return mw.language.getContentLanguage():formatNum (tally)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1456)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1457)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1458)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1459)--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E _ L I S T E R >------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1460)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1461)For use in the Help:CS1 error §Notes[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1462)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1463)Get namespace names and identifiers from MediaWiki. Make a human readable list of namespace names and identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1464)that cs1|2 does not categorize.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1465)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1466){{#invoke:cs1 documentation support|uncategorized_namespace_lister}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1467)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1468)For convenience, [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1469){{#invoke:cs1 documentation support|uncategorized_namespace_lister|all=}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1470)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1471)returns a list of all namespace names and identifiers used on the current wiki. Any namespace with an[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1472)identifier less than 1, currently Mainspace (0), Special (-1), and Media (-2), is excluded from the list.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1473)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1474)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1475)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1476)local function uncategorized_namespace_lister (frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1477)local list_t = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1478)local function compare (a, b)-- local function to sort namespaces numerically by the identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1479)local a_num = tonumber (a:match ('%d+'));-- get identifiers and convert to numbers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1480)local b_num = tonumber (b:match ('%d+'));[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1481)return a_num < b_num;-- do the comparison[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1482)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1483)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1484)for i, _ in pairs (mw.site.namespaces) do-- for each namespace in the table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1485)if '' == frame.args.all or not frame.args.all then-- when |all= not set, make a list of uncategorized namespaces[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1486)if cfg.uncategorized_namespaces[i] then-- if the identifier is listed in our uncategorized namespace list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1487)table.insert (list_t, table.concat ({mw.site.namespaces[i].name, ' (', i, ')'}))-- add name and identifier to our local list[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1488)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1489)elseif 0 < i then-- |all=: all namespace names and identifiers; ignore identifiers less than 1[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1490)table.insert (list_t, table.concat ({'*', mw.site.namespaces[i].name, ' (', i, ')'}))-- add name and identifier as an unordered list item[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1491)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1492)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1493)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1494)table.sort (list_t, compare);-- ascending numerical sort by identifier[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1495)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1496)if not frame.args.all then-- when |all= not set, format list of uncategorized namespaces and identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1497)list_t[#list_t] = 'and ' .. list_t[#list_t];-- add 'and ' to the last name/identifier pair[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1498)return table.concat (list_t, ', ');-- make a big string and done[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1499)else-- make list of all namespaces and identifiers[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1500)return table.concat (list_t, '\n');-- make a big string and done[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1501)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1502)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1503)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1504)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1505)--[[--------------------------< S I N G L E _ L T R _ 2 N D _ L V L _ D O M A I N _ L I S T E R >-------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1506)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1507)for Help:CS1_errors#bad_url, list the supported top level domains that support single-letter 2nd level names[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1508)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1509) {{#invoke:Module:cs1 documentation support|single_ltr_2nd_lvl_domain_lister}}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1510)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1511)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1512)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1513)local function single_ltr_2nd_lvl_domain_lister ()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1514)local out_t = {};-- output goes here[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1515)for _, tld in ipairs (cfg.single_letter_2nd_lvl_domains_t) do-- fetch each tld[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1516)table.insert (out_t, '.' .. tld);-- prefix with a dot and save in out_t{}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1517)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1518)return table.concat (out_t, ', ');-- make a big string and done[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1519)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1520)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1521)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1522)--[[--------------------------< C O D E _ N A M E _ P A I R _ E X I S T S >----------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1523)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1524)Returns language code if pair exists, nil if either code doesn't exist or the name doesn't match.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1525)Intended for use by Template:CS1 language sources/core[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1526)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1527)args[1] is language code[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1528)args[2] is language name[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1529)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1530)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1531)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1532)local function code_name_pair_exists(frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1533)local wiki_language = mw.getContentLanguage():getCode()[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1534)local source_list = mw.language.fetchLanguageNames(wiki_language, 'all');[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1535)local code_list = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1536)local name_list = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1537)local override = cfg.lang_tag_remap;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1538)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1539)for code, name in pairs(source_list) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1540)add_to_list(code_list, name_list, override, code, name);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1541)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1542)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1543)local args = getArgs(frame);[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1544)local language_code = args[1][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1545)local language_name = args[2][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1546)-- Check if the language code exists and the corresponding name matches[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1547)if code_list[language_code] == language_name then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1548)-- Both code and name are a valid pair[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1549)return language_code[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1550)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1551)if override[language_code] == language_name then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1552)-- Code and name are a valid pair found in override table[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1553)return language_code[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1554)else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1555)-- Either code doesn't exist or the name doesn't match[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1556)return nil[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1557)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1558)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1559)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1560)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1561)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1562)--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1563)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1564)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1565)return {[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1566)alias_lister = alias_lister,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1567)alias_names_get = alias_names_get,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1568)canonical_param_lister = canonical_param_lister,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1569)canonical_name_get = canonical_name_get,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1570)cat_lister = cat_lister,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1571)code_name_pair_exists = code_name_pair_exists,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1572)error_cat_page_tally = error_cat_page_tally,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1573)header_make = header_make,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1574)help_text_cats = help_text_cats,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1575)help_text_error_messages = help_text_error_messages,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1576)id_limits_get = id_limits_get,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1577)is_book_cite_template = is_book_cite_template,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1578)is_limited_param_template = is_limited_param_template,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1579)lang_lister = lang_lister,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1580)maint_cat_page_tally = maint_cat_page_tally,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1581)script_lang_lister = script_lang_lister,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1582)single_ltr_2nd_lvl_domain_lister = single_ltr_2nd_lvl_domain_lister,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1583)template_data_validate = template_data_validate,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1584)uncategorized_namespace_lister = uncategorized_namespace_lister,[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3ACs1_documentation_support#L-1585)};
Retrieved from "[https://freemwiki.com/index.php?title=Module:Cs1_documentation_support&oldid=579984](https://freemwiki.com/index.php?title=Module:Cs1_documentation_support&oldid=579984)"
[Last edited on 21 October 2025, at 06:18](https://freemwiki.com/index.php?title=Module:Cs1_documentation_support&action=history)
#### Languages
This page is not available in other languages.
freem
* This page was last edited on 21 October 2025, at 06:18.
* Content is available under [Creative Commons Attribution-ShareAlike 4.0](https://creativecommons.org/licenses/by-sa/4.0/) unless otherwise noted. FreemWiki is operated by **FINGERPOWER DIGITAL TECHNOLOGY LLC** (Colorado, Entity ID 20221978727).
* [Privacy Policy](https://freemwiki.com/wiki/Privacy_Policy)
* [About](https://freemwiki.com/wiki/About)
* [Terms of Service](https://freemwiki.com/wiki/Terms_of_Service)
* [Desktop](https://freemwiki.com/index.php?title=Module:Cs1_documentation_support&mobileaction=toggle_view_desktop)