Module:Calendar date: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 8:
]]
 
require('Module:No globals')
 
local p = {}
local cfg -- Data structure from ~/Events
local cfg
local eventdata -- Data structure from ~/localfiles/<holiday name>
local track = {} -- globalTracking tracking-category tablecontainer
 
--[[--------------------------< inlineError >-----------------------
Line 186 ⟶ 189:
]]
 
local function dateOffset(origdate, offset)
 
local year, month, day = origdate:match ('(%d%d%d%d)-(%d%d)-(%d%d)')
Line 201 ⟶ 204:
]]
local function renderHoli(cfg,eventdata,calcdate,date,df,format,tname,cite)
 
local hits = 0
Line 210 ⟶ 213:
-- user-supplied date calculator
if cfg.datatype == "calculator" then
if cfg.datasource then
startdate = calcdate
enddate = dateOffset(startdate, cfg.days - 1)
else
return inlineError("holiday", 'Invalidinvalid calculator result', tname )
end
 
-- read dates from localfile -- it assumes dates are in chrono order, need a more flexible method
Line 242 ⟶ 245:
enddate = dateOffset(startdate, cfg.days - 1)
elseif startdate and not enddate then
return inlineError("Cannotyear", 'cannot find enddate"', tname) .. createTracking()
else
return inlineError("Cannotholiday", 'cannot find startdate and enddate"', tname) .. createTracking()
end
end
Line 311 ⟶ 314:
local cite = nil -- leave a citation at end
local calcdate = ""
 
track = {} -- global tracking-category table
 
--- Determine holiday
Line 319 ⟶ 320:
holiday = trimArg(args.event) -- event alias
if not holiday then
return inlineError("holiday", "Missing'missing holiday argument"', tname) .. createTracking()
end
end
Line 326 ⟶ 327:
date = trimArg(args.year) -- required
if not date then
return inlineError("year", "Missing'missing year argument"', tname) .. createTracking()
elseif not isValidDate(date, "01", "01") then
return inlineError("year", "Invalid'invalid year"', tname) .. createTracking()
end
 
Line 340 ⟶ 341:
 
-- Load configuration file
local eventsfile = mw.loadData ('Module:Calendar date/Events')
if eventsfile.hebrew_calendar[mw.ustring.upper(holiday)] then
cfg = eventsfile.hebrew_calendar[mw.ustring.upper(holiday)]
Line 346 ⟶ 347:
cfg = eventsfile.misc_events[mw.ustring.upper(holiday)]
else
return inlineError("holiday", '{{Calendar date}} – unknown holiday ' .. holiday, tname) .. createTracking()
end
 
-- If datatype = localfile
if cfg.datatype == "localfile" then
local eventfile = nil
eventfile = mw.loadData ('Module:Calendar date/localfiles/' .. holiday)
if eventfile.event then
eventdata = eventfile.event
else
return inlineError("holiday", '{{Calendar date}} – unknown holiday file Module:Calendar date/localfiles/' .. holiday .. '</span>', tname) .. createTracking()
end
 
Line 363 ⟶ 365:
local year, month, day = calcdate:match ('(%d%d%d%d)-(%d%d)-(%d%d)')
if not isValidDate(year, month, day) then
return inlineError("holiday", '{{Calendar date}} – invalid calculated date ' .. calcdate, tname) .. createTracking()
end
else
return inlineError("holiday", '{{Calendar date}} – unknown "datatype" in configuration', tname) .. createTracking()
end