Content deleted Content added
Support cfg.source being nil |
m Reverted edit by 213.147.181.177 (talk) to last version by 130.64.64.65 |
||
(10 intermediate revisions by 9 users not shown) | |||
Line 1:
--[[
Display Gregorian date of a holiday that moves year to year. Date data can be obtained from multiple sources as configured in Module:Calendar date/
"localfile" = local data file (eg. https://en.wikipedia.org/wiki/
"calculator" = user-supplied date calculator
"wikidata" = <tbd> for holidays with their own date entity page such as https://www.wikidata.org/wiki/Q51224536
Line 9:
]]
require('
local p = {}
local cfg -- Data structure from ~/
local eventdata -- Data structure from ~/localfiles/<holiday name>
local track = {} -- Tracking category container
Line 39:
if arg == "" or arg == nil then
return nil
else▼
return mw.text.trim(arg)▼
end
end
local function trimArg2(arg)
if arg == nil then
return nil
return mw.text.trim(arg)▼
end
end
Line 76 ⟶ 74:
if display and ('' ~= display) then
return table.concat ({'[[', link, '|', display, ']]'});
else▼
return table.concat ({'[[', link, ']]'});▼
end
end
else -- no_link
if display and ('' ~= display) then -- if there is display text
return display; -- return that
return link or ''; -- return the target article name or empty string▼
end
end
end
Line 176 ⟶ 172:
if format ~= "infobox" then
return mw.getContentLanguage():formatDate (formatFull[df], date)
return mw.getContentLanguage():formatDate (formatInfobox[df], date)▼
end
end
Line 291 ⟶ 286:
if startdate == enddate or cfg.days == "1" then -- single date
return prepend1 .. startdate .. endoutoffset .. cite
return prepend1 .. startdate .. format .. prepend2 .. enddate .. endoutoffset .. cite▼
end
end
Line 334 ⟶ 328:
--- Determine format type
format = trimArg(args.format)
if not format or format ~= "infobox" then
format = "none"▼
format = "none"
end
-- Load configuration file
local eventsfile = mw.loadData ('Module:Calendar date/
if eventsfile.hebrew_calendar[mw.ustring.upper(holiday)] then
cfg = eventsfile.hebrew_calendar[mw.ustring.upper(holiday)]
Line 348 ⟶ 340:
elseif eventsfile.carnivals[mw.ustring.upper(holiday)] then
cfg = eventsfile.carnivals[mw.ustring.upper(holiday)]
elseif eventsfile.chinese_events[mw.ustring.upper(holiday)] then
cfg = eventsfile.chinese_events[mw.ustring.upper(holiday)]
elseif eventsfile.misc_events[mw.ustring.upper(holiday)] then
cfg = eventsfile.misc_events[mw.ustring.upper(holiday)]
Line 387 ⟶ 381:
cite = trimArg2(args.cite)
if cite then
if (cite ~= "no") then
if cfg.citeurl and cfg.accessdate and cfg.source and cfg.name then
local citetitle = cfg.citetitle
if citetitle == nil then
citetitle = 'Dates for ' .. cfg.name
elseif cfg.datatype == "calculator" then▼
cite = frame:preprocess('<ref name="' .. holiday .. ' dates">{{cite web |url=' .. cfg.citeurl .. ' |title=' .. citetitle .. ' |publisher=' .. cfg.source .. '|accessdate=' .. cfg.accessdate .. '}}</ref>')
cite = frame:preprocess('<ref name="' .. holiday .. ' dates">' .. cfg.source:gsub("YYYY", date) .. '</ref>')
cite = ""▼
end
end
else
|