From 6015a4817805350d0aed3e83c81a211cf981eadc Mon Sep 17 00:00:00 2001 From: Trappist the monk Date: Sun, 1 Nov 2026 04:29:00 +1300 Subject: [PATCH] unused functions accept_value() and comp_val(), sort expanded args --- module_citeq.lua | 67 +++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 38 deletions(-) diff --git a/module_citeq.lua b/module_citeq.lua index 3d8f765..4d1a58e 100644 --- a/module_citeq.lua +++ b/module_citeq.lua @@ -46,8 +46,11 @@ local function is_set( var ) end --[[--------------------------< I N _ A R R A Y >-------------------------------------------------------------- + Whether needle is in haystack (taken from Module:Citation/CS1/Utilities) + ]] + local function in_array( needle, haystack ) if needle == nil then return false @@ -60,37 +63,19 @@ local function in_array( needle, haystack ) return false end + --[[--------------------------< T A B L E S E T _ A D D >------------------------------------------------------ + Add needle to the haystack if it's not already there. + ]] + local function tableset_add(haystack, needle) if needle == nil or in_array(needle, haystack) then return false end table.insert(haystack, needle) return true end ---[[--------------------------< A C C E P T _ V A L U E >------------------------------------------------------- -Accept WD value by framing in ((...)) if param_val is equal to keyword; else pass-through WD value as is. -]] -local function accept_value( param_val, wd_val ) - local val = param_val - - if val then - if in_array (val, {'accept', '))((', ':d:'}) then - val = '((' .. wd_val .. '))' - elseif '((accept))' == val then - val = 'accept' - elseif '(())(())' == val then - val = '))((' - elseif '((:d:))' == val then - val = ':d:' - else - val = wd_val - end - end - - return val -end -- Split string of comma-separated first names into a table of initials -- 2026-10-10: corrected for UTF-8 by [[User:Pengo]]. @@ -540,30 +525,36 @@ local function getIdentifierAccess(qid, args, identifier) return nil end --- sort sequence table whose values are key-value pairs by key -local function comp_key(a, b) - local param_a, enum_a = a[1]:match ('(%D+)(%d+)$'); -- get param name and enumerator from - local param_b, enum_b = b[1]:match ('(%D+)(%d+)$'); -- get param name and enumerator from - if enum_a and enum_b then -- if both parameters have neumerators +--[[--------------------------< P A R A M E T E R _ N A M E _ C O M P A R E >---------------------------------- + +function to sort a sequence table whose values are {, } sequences by the name; used +when rendering an expanded cs1|2 template (|expand= has any value) + +]] + +local function parameter_name_compare (a, b) + local param_a, enum_a = a[1]:match ('(%D+)(%d+)$'); -- get parameter name and enumerator from + local param_b, enum_b = b[1]:match ('(%D+)(%d+)$'); -- get parameter name and enumerator from + + if enum_a and enum_b then -- if both parameters have enumerators if param_a == param_b then -- are parameter names the same? return tonumber (enum_a) < tonumber (enum_b); -- yes: compare enumerators end end - return a[1] < b[1]; -- alpha sort if here + return a[1] < b[1]; -- alpha sort by parameter name if here end --- sort sequence table whose values are key-value pairs by value -local function comp_val(a, b) - return a[2] < b[2] -end ---[[-------------------------< C I T E _ Q >------------------------------------------------------------------ -Takes standard CS1|2 template parameters and passes all to {{citation}}. If neither of |author= and |author1= -are set, calls get_authors() to try to get an author name-list from Wikidata. The result is passed to -{{citation}} for rendering. ---]] +--[[--------------------------< C I T E _ Q >------------------------------------------------------------------ + +Takes standard CS1|2 template parameters and passes all to an appropriate cs1|2 template. If neither of |author= +and |author1= are set, calls get_authors() to try to get an author name-list from Wikidata. The result is passed +to Module:Citation/CS1 for rendering. + +]] + local function _cite_q (citeq_args) local frame = mw.getCurrentFrame() @@ -1041,7 +1032,7 @@ local function _cite_q (citeq_args) for param, val in pairs (citeq_args) do table.insert(sorttable, {param, val}) end - table.sort(sorttable, comp_key) + table.sort(sorttable, parameter_name_compare) -- sort parameter names by alpha or enumerator -- add contents to expand_args for idx, val in ipairs(sorttable) do table.insert(expand_args, val[1] .. '=' .. val[2])