Changes

645 bytes added ,  19:12, 22 August 2025
no edit summary
Line 12: Line 12:  
require('strict')
 
require('strict')
   −
-- Load core helpers
+
-- load Utilities first so we can keep it in sync with the effective cfg
 
local utilities  = require('Module:Citation/CS1/Utilities')
 
local utilities  = require('Module:Citation/CS1/Utilities')
 +
local z          = utilities.z
 +
 +
local validation  = require('Module:Citation/CS1/Date_validation')
 
local identifiers = require('Module:Citation/CS1/Identifiers')
 
local identifiers = require('Module:Citation/CS1/Identifiers')
 
local metadata    = require('Module:Citation/CS1/COinS')
 
local metadata    = require('Module:Citation/CS1/COinS')
local validation  = require('Module:Citation/CS1/Date_validation')
     −
-- Load config/whitelist (read-only tables via mw.loadData)
+
-- load configuration (read-only) and wrap it so we can provide safe defaults
local cfg      = mw.loadData('Module:Citation/CS1/Configuration')
+
local raw_cfg = mw.loadData('Module:Citation/CS1/Configuration')
 +
local cfg = setmetatable({}, { __index = raw_cfg })
 +
 
 +
-- MINIMUM safe defaults so fields are never nil
 +
cfg.basic_arguments  = raw_cfg.basic_arguments  or {}
 +
cfg.presentation    = raw_cfg.presentation    or {}
 +
cfg.error_conditions = raw_cfg.error_conditions or {}
 +
cfg.messages        = raw_cfg.messages        or {}
 +
cfg.maint_cats      = raw_cfg.maint_cats      or {}
 +
cfg.prop_cats        = raw_cfg.prop_cats        or {}
 +
 
 +
-- whitelist stays read-only
 
local whitelist = mw.loadData('Module:Citation/CS1/Whitelist')
 
local whitelist = mw.loadData('Module:Citation/CS1/Whitelist')
 +
 +
-- keep Utilities aligned with this effective cfg
 +
utilities.set_selected_modules(cfg)
 +
    
-- Synchronize Utilities with the same config CS1 uses
 
-- Synchronize Utilities with the same config CS1 uses