![]() |
VOOZH | about |
This module implements {{Pack format table}}.
localp={} -- Used to determine whether an argument is empty localfunctionis_not_empty(value) if(value==nilorvalue=='')thenreturnfalse elsereturntrue end end -- Code functionp._main(args) -- The pack format table column localtableLine='<tr id="pack-format-column">' -- Pack format cell tableLine=tableLine..('<th id="pack-format">'..args.packFormat..'</th>') -- Development version cells ifis_not_empty(args.dev1)then ifis_not_empty(args.dev2)then tableLine=tableLine..('<th id="dev" class="nowrap">'..args.dev1Link..' – '..args.dev2Link..'</th>') else tableLine=tableLine..('<th id="dev" class="nowrap">'..args.dev1Link..'</th>') end end -- Release version cells ifis_not_empty(args.v1)then ifis_not_empty(args.v2)then tableLine=tableLine..('<th id="v" class="nowrap">'..args.v1Link..' – '..args.v2Link..args.upcoming..'</th>') else tableLine=tableLine..('<th id="v" class="nowrap">'..args.v1Link..args.upcoming..'</th>') end else tableLine=tableLine..('<td class="tc-hyphen" id="v-none">–</td>') end -- Significant/Breaking changes cells ifnotargs.nolistthen tableLine=tableLine..('<td style="text-align: start;"><ul>') fori,vinipairs(args)do if(i>3)then tableLine=tableLine..('<li>'..v..'</li>') end end tableLine=tableLine..('</ul></td>') else tableLine=tableLine..('<td style="text-align: start; padding: 7px;">'..args[4]..'</td>') end tableLine=tableLine..('</tr>') -- Print the table column returntableLine end -- Process arguments functionp.main(frame) localargs=frame:getParent().args args.packFormat=args[1]or'?' args.v1=args[2] args.v2=args[3] ifis_not_empty(args['nolist'])then args.nolist=true else args.nolist=false end ifis_not_empty(args['upcoming'])then args.upcoming=' '..frame:expandTemplate{title='upcoming',args={nocat=1}} else args.upcoming='' end ifis_not_empty(args.dev1)then ifis_not_empty(args['dev1link'])andnot(args['dev1link']=='ver')then if(args['dev1link']=='none')then args.dev1Link=args.dev1 elseif(args['dev1link']:match('//'))then args.dev1Link='['..args['dev1link']..' '..args.dev1..']' else args.dev1Link='[['..args['dev1link']..'|'..args.dev1..']]' end else localsnapIndex,_=args.dev1:find('Snapshot',1,true) localpreIndex,_=args.dev1:find('Pre-release',1,true)orargs.dev1:find('Pre-Release',1,true) localrcIndex,_=args.dev1:find('Release Candidate',1,true) if(snapIndex)then args.dev1Link=( '[[Java Edition '..args.dev1..'|'..args.dev1:sub(0,snapIndex-2)..'-snap'..args.dev1:sub(snapIndex+9,-1)..']]' ) elseif(preIndex)then args.dev1Link=( '[[Java Edition '..args.dev1..'|'..args.dev1:sub(0,preIndex-2)..'-pre'..args.dev1:sub(preIndex+12,-1)..']]' ) elseif(rcIndex)then args.dev1Link=( '[[Java Edition '..args.dev1..'|'..args.dev1:sub(0,rcIndex-2)..'-rc'..args.dev1:sub(rcIndex+18,-1)..']]' ) else args.dev1Link=( '[[Java Edition '..args.dev1..'|'..args.dev1..']]' ) end end end ifis_not_empty(args.dev2)then ifis_not_empty(args['dev2link'])andnot(args['dev2link']=='ver')then if(args['dev2link']=='none')then args.dev2Link=args.dev2 elseif(args['dev2link']:match('//'))then args.dev2Link='['..args['dev2link']..' '..args.dev2..']' else args.dev2Link='[['..args['dev2link']..'|'..args.dev2..']]' end else localsnapIndex,_=args.dev2:find('Snapshot',1,true) localpreIndex,_=args.dev2:find('Pre-release',1,true)orargs.dev2:find('Pre-Release',1,true) localrcIndex,_=args.dev2:find('Release Candidate',1,true) if(snapIndex)then args.dev2Link=( '[[Java Edition '..args.dev2..'|'..args.dev1:sub(0,snapIndex-2)..'-snap'..args.dev2:sub(snapIndex+9,-1)..']]' ) elseif(preIndex)then args.dev2Link=( '[[Java Edition '..args.dev2..'|'..args.dev2:sub(0,preIndex-2)..'-pre'..args.dev2:sub(preIndex+12,-1)..']]' ) elseif(rcIndex)then args.dev2Link=( '[[Java Edition '..args.dev2..'|'..args.dev2:sub(0,rcIndex-2)..'-rc'..args.dev2:sub(rcIndex+18,-1)..']]' ) else args.dev2Link=( '[[Java Edition '..args.dev2..'|'..args.dev2..']]' ) end end end ifis_not_empty(args.v1)then ifis_not_empty(args['v1link'])andnot(args['v1link']=='ver')then if(args['v1link']=='none')then args.v1Link=args.v1 elseif(args['v1link']:match('//'))then args.v1Link='['..args['v1link']..' '..args.v1..']' else args.v1Link='[['..args['v1link']..'|'..args.v1..']]' end else args.v1Link=( '[[Java Edition '..args.v1..'|'..args.v1..']]' ) end end ifis_not_empty(args.v2)then ifis_not_empty(args['v2link'])andnot(args['v2link']=='ver')then if(args['v2link']=='none')then args.v2Link=args.v2 elseif(args['v2link']:match('//'))then args.v2Link='['..args['v2link']..' '..args.v2..']' else args.v2Link='[['..args['v2link']..'|'..args.v2..']]' end else args.v2Link=( '[[Java Edition '..args.v2..'|'..args.v2..']]' ) end end returnp._main(args) end returnp