Module:DataWeekList

local util_args = require('Module:ArgsUtil') local util_html = require("Module:HtmlUtil") local util_map = require("Module:MapUtil") local util_table = require("Module:TableUtil") local util_text = require("Module:TextUtil") local util_time = require("Module:TimeUtil") local util_title = require("Module:TitleUtil") local util_toggle = require("Module:ToggleUtil")

local lang = mw.getLanguage('en') local DAYS_IN_WEEK = 7 local PAGE_TYPE

local h = {}

local p = {} function p.main(frame) local args = util_args.merge PAGE_TYPE = args.type or util_title.titleparts(nil, 1, 1) local startDate = args[1] local button = util_toggle.popupButton button.button:addClass('navbox-event-list') h.printDates(button.inner, startDate) return h.makePlaintextLink(startDate), button.button end

function h.makePlaintextLink(startDate) return util_text.intLink(		h.getLinkTarget(startDate),		lang:formatDate('M d', startDate)	) end

function h.getLinkTarget(date) return ('Data:%s/%s'):format(PAGE_TYPE, date) end

function h.printDates(div, startDate) local ul = div:tag('ul') util_map.safe(util_time.getDatesInAWeek(startDate), h.printDate, ul) end

function h.printDate(date, ul) ul:tag('li'):wikitext(h.getDateLink(date)) end

function h.getDateLink(date) return util_text.intLink(		h.getLinkTarget(date),		lang:formatDate('D j M', date)	) end

return p