VOOZH about

URL: https://minecraft.wiki/w/Module:Featured_articles

⇱ Module:Featured articles – Minecraft Wiki


Module:Featured articles

From Minecraft Wiki
Jump to navigation Jump to search
Documentation[view] [edit] [history] [purge]Jump to code ↴
[view] [edit] [history] [purge]The above documentation is transcluded from Module:Featured articles/doc.
--- Various utils for featured articles
localp={}
localfunctiongetLastItem(str)
localparts={}
forsinstring.gmatch(str,"([^/]+)")do
table.insert(parts,s)
end
returnparts[#parts]
end
localfunctionnextWeek(increment,cadence)
localcurrentWeek=tonumber(mw.getCurrentFrame():preprocess("{{CURRENTWEEK}}"))
localyear=tonumber(mw.getCurrentFrame():preprocess("{{#time:o}}"))
locallastWeekOfYear=tonumber(mw.getCurrentFrame():preprocess("{{#time:W|"..year.."-12-28}}"))
localtargetWeek=currentWeek+increment
ifyear>2025ortargetWeek>=14then-- two-week cadence implemented since week 14 of 2025
targetWeek=targetWeek-(targetWeek%cadence)
end
localtargetYear=year
iftargetWeek>lastWeekOfYearthen
targetYear=year+1
targetWeek=targetWeek-lastWeekOfYear
elseiftargetWeek<=0then
targetYear=year-1
localprevYearWeeks=tonumber(mw.getCurrentFrame():preprocess("{{#time:W|"..targetYear.."-12-28}}"))
targetWeek=prevYearWeeks+targetWeek
end
return{targetWeek,targetYear}
end
functionp.nextWeek(frame)
returnnextWeek(tonumber(frame.args[1]or1),tonumber(frame.args[2]or1))[1]
end
functionp.escapeArgs(frame)
returnmw.text.nowiki(frame:getParent().args[frame.args[1]])
end
localfunctionentryCell(articleType,index,frame)
localcadence=articleType=='Minecraft'and1or2
localnextWeekResult=nextWeek(index,cadence)
localyear=nextWeekResult[2]
localweek=nextWeekResult[1]
localquery=bucket('featured_article')
.select('page_name','title')
.where('type',articleType)
.where('year',year)
.where('week',week)
.run()
localcell=query[1]
ifcellthen
localtitle=cell['title']
ifarticleType~='Minecraft'then
title=string.gsub(title,articleType..':','')
end
return{
exists=true,
week=week,
link='[['..cell['page_name']..'|'..title..']]'
}
else
localeditUrl=frame:callParserFunction('fullurl',{
'MCW:Featured articles/'..articleType..'/'..year..'/'..week,
'action=edit&preload=MCW:Featured_articles/entry_preload',
})
return{
exists=false,
week=week,
link='['..editUrl..' Missing]'
}
end
end
functionp.entryCell(frame)
localcell=entryCell(frame.args[1]or'Minecraft',tonumber(frame.args[2]or0),frame)
ifnotcell.existsthen
returnframe:expandTemplate{title='tc',args={'no',cell.link}}
else
returncell.link
end
end
functionp.queueTable(frame)
localresult='{| class="wikitable"\n'..
'|+ Featured article queue ([[Special:Purge/'..mw.getCurrentFrame():preprocess("{{FULLPAGENAME}}")..'|Purge]])\n'..
'|-\n'..
'! Week\n'
localheaders={'Minecraft','Movie','Dungeons','Legends','Story Mode','Earth'}
for_,headerinipairs(headers)do
result=result..'! [[MCW:Featured articles/'..header..'|'..header..']]<br><small>([[MCT:Featured articles/'..header..'|nominations]])</small>\n'
end
localminRow,maxRow=-1,4
localcolumns={}
for_,colinipairs(headers)do
localweek=-1
forrow=minRow,maxRowdo
localcell=entryCell(col,row,frame)
ifcolumns[col]==nilthencolumns[col]={}end
localcolumn=columns[col]
ifweek==cell.weekthen
columns[col][#column].rowspan=column[#column].rowspan+1
else
week=cell.week
cell.rowspan=1
table.insert(columns[col],cell)
end
ifnotcell.existsthen
columns[col][#column].color='no'
elseifrow==0then
columns[col][#column].color='yes'
end
end
end
forrow=minRow,maxRowdo
localweek=nextWeek(row,1)[1]
localweekText=week
ifrow==0then
weekText=frame:expandTemplate{title='tc',args={'always',week}}
end
result=result..
'|-\n'..
'! '..weekText..'\n'
for_,colinipairs(headers)do
ifcolumns[col]==nilthencolumns[col]={}end
localcell=columns[col][1]
ifcellthen
ifnotcell.renderedthen
result=result..'| '
ifcell.colorthen
result=result..frame:expandTemplate{title='tc',args={cell.color,cell.link,rowspan=cell.rowspan}}
else
result=result..'rowspan='..cell.rowspan..' | '..cell.link
end
columns[col][1].rendered=true
result=result..'\n'
end
columns[col][1].rowspan=cell.rowspan-1
ifcolumns[col][1].rowspan==0then
table.remove(columns[col],1)
end
end
end
end
result=result..'|}'
returnresult
end
functionp.archiveTable(frame)
localresult='{| class="wikitable"\n'..
'|-\n'..
'! Week !! Article\n'
localquery=bucket('featured_article')
.select('page_name','title')
.where('type',frame.args[1])
.where('year',frame.args[2])
.run()
ifquerythen
fori,vinipairs(query)do
result=result..
'|-\n'..
'| [['..v['page_name']..'|'..getLastItem(v['page_name'])..']]\n'..
'| [['..v['title']..']]\n'
end
end
result=result..'|}'
returnresult
end
returnp
Retrieved from "https://minecraft.wiki/w/Module:Featured_articles?oldid=3502346"

Navigation menu