Jump to content
Wikimedia Meta-Wiki

Module:TechNewsArchives

From Meta, a Wikimedia project coordination wiki
Module documentation


Usage

[edit ]

{{#invoke:TechNewsArchives|main}}

This module is used at Tech/News/Archives.

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.

 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

AltStyle によって変換されたページ (->オリジナル) /