Module:TechNewsArchives
Appearance
From Meta, a Wikimedia project coordination wiki
The above documentation is transcluded from Module:TechNewsArchives/doc. (edit | history)
Editors can experiment in this module’s sandbox (create | mirror) and testcases (create) pages.
Please add categories to the /doc subpage. Subpages of this module.
Editors can experiment in this module’s sandbox (create | mirror) and testcases (create) pages.
Please add categories to the /doc subpage. Subpages of this module.
require('strict') localp={} localgetArgs=require('Module:Arguments').getArgs localpg=require('Module:Pg') localformattedWeekNumbers={} localfunctionleftPaddedWeekNumber(week) returnweek<10and'0'..tostring(week)ortostring(week) end localfunctioncomputeFormattedWeekNumbers(frame) if#formattedWeekNumbers>0then returnformattedWeekNumbers end forweek=1,53do -- mw.language:formatNum doesn't accept strings. localleftPadded=leftPaddedWeekNumber(week) localformatted=frame:preprocess('{{formatnum:'..leftPadded..'}}') table.insert(formattedWeekNumbers,formatted) end returnformattedWeekNumbers end -- [[:en:Special:Permalink/1291781686#Weeks per year]] localfunctiongetWeekCount(year) functionp(year) return(year+math.floor(year/4)-math.floor(year/100)+math.floor(year/400))%7 end ifp(year)==4orp(year-1)==3then return53 else return52 end end localfunctiongetSubpageListForYear(year,language,frame) localformattedWeekNumbers=computeFormattedWeekNumbers(frame) localfirst=year==2013and21or1 locallast=getWeekCount(year) localresult={} forweek=first,lastdo localleftPadded=leftPaddedWeekNumber(week) localpage='Tech/News/'..tostring(year)..'/'..leftPadded localdisplay=formattedWeekNumbers[week] localanchor=nil localuseMyLanguage=false table.insert(result,'* '..pg.getLink(page,display,anchor,language,useMyLanguage)) end returntable.concat(result,'\n') end functionp.main(frame) localcurrentYear=os.date('*t').year locallanguage=frame:preprocess('{{PAGELANGUAGE}}') localsections={} foryear=currentYear,2013,-1do localsubpageListForYear=getSubpageListForYear(year,language,frame) localsection=( '<h2>{{DateT|'..tostring(year)..'}}</h2>\n'.. '{{flatlist|\n'.. subpageListForYear..'\n'.. '}}' ) table.insert(sections,section) end returnframe:preprocess(mw.text.listToText(sections,'\n\n','\n\n')) end returnp