local p = {} require("Module:No globals") local Date = require('Module:Date')._Date  local function range(date) 	local date2 = date + 6 	if date2:text("%Y") ~= date:text("%Y") then 		return date:text("%B %-d, %Y") .. " to " .. date2:text("%B %-d, %Y") 	else 		if not (date2:text("%B") == date:text("%B")) then 			return date:text("%B %-d") .. " to " .. date2:text("%B %-d, %Y") 		else 			return date:text("%B %-d") .. " to " .. date2:text("%-d, %Y") 		end 	end end  local function line(date) 	local link = "[[উইকিপিডিয়া:শীর্ষ ২৫ নিবন্ধ/" 	local range = range(date)  	link = link .. range .. "|" .. range .. "]]" 	return link end  local function userLink(username) 	return string.format("%s", username, username) end  p.list = function(frame) 	local text = "এই নিবন্ধটি একটি মাসে একাধিকবার পঠিত হয়েছে যা শীর্ষ ২৫ নিবন্ধে উল্লেখিত হয়েছে"  	frame = frame:getParent() 	local args = frame.args 	local list = {}  	local date 	local isUntil = false 	local errors = {}  	for parameter, dateStr in pairs(frame.args) do 		dateStr = mw.text.trim(dateStr) 		if string.lower(dateStr) == "until" then 			isUntil = true 		elseif parameter == "collapse" then 			 -- Ignore the collapse parameter 		else 			local index = string.find(dateStr,'(',1,true) 			local place = "" 			if index then 				place = string.sub(dateStr,index+1,-2) 				dateStr = string.sub(dateStr,0,index-1) 			end 			local newDate = Date(dateStr) 			if newDate == nil then 				table.insert(errors, dateStr) 			else 				if isUntil then 					isUntil = false 					date = date + 30 					while date < newDate do 						table.insert(list, line(date)) 						date = date + 30 					end 				end 				date = newDate 				 				local entry = line(date) 				if place ~= "" then 					entry = entry .. " (" .. place .. ")" 				end 				table.insert(list, entry) 			end 		end 	end 	 	local count = #list 	list.style = "display:inline-block" 	list = require("Module:List").makeList("horizontal", list)  	if count == 0 then 		text = text .. "." 		text = text .. list 	elseif count == 1 then 		list = " The week in which this happened: " .. list 		text = text .. "." 		text = text .. list 	elseif (args["collapse"] == "yes" or (args["collapse"] == nil and count >= 10)) then 		text = text .. " " .. tostring(count) .. " times." 		text = '' .. text .. ' The weeks in which this happened:'.. list .. '' 	else 		list = " The weeks in which this happened: " .. list 		text = text .. " " .. tostring(count) .. " times." 		text = text .. list 	end  	if mw.title.getCurrentTitle().namespace == 1 then 		text = text .. "বিষয়শ্রেণী:উইকিপিডিয়া শীর্ষ ২৫ নিবন্ধের পাতা" 	end 	 	if #errors > 0 then 		text = text .. "\n\nThe following dates couldn't be parsed:\n#" 		text = text .. table.concat(errors,"\n#") .. "\n" 	end 	 	return require('Module:Message box').main( 'tmbox', { 		text = text, 	    image = "35px|link=|alt=" 	})  end  p.header = function(frame) 	local text = frame:expandTemplate{title = "Wikipedia:Top 25 Report/Template:Header", args = {}} 	text = text .. "__NOTOC__\n" 	if mw.title.getCurrentTitle().subpageText == "Report header" then 		return text 	end 	frame = frame:getParent() 	 	local date = Date(frame.args[1]) 	text = text .. '\n' 	text = text .. "== মাসের সবচেয়ে পঠিত উইকিপিডিয়া নিবন্ধ (" 	text = text .. range(date) .. ") ==\n"  	local count = 0 	for index, nameStr in pairs(frame.args) do 		if not (index == 1) then 			count = count + 1 		end 	end  	if count > 0 then 		text = text .. "Prepared with commentary by "  		if count == 1 then 			text = text .. userLink(frame.args[2]) 		elseif count == 2 then 			text = text .. userLink(frame.args[2]) .. " and " .. userLink(frame.args[3]) 		else 			local i = 2 			while i <= count do 				text = text .. userLink(frame.args[i]) .. ", " 				i = i + 1 			end 			text = text .. " and " .. userLink(frame.args[count+1]) 		end 	end  	local key = " "  	text = text .. "\n\n← [[উইকিপিডিয়া:শীর্ষ ২৫ নিবন্ধ/" 	if frame.args[1] == "জানুয়ারি, ২০১৩" then 		text = text .. "ডিসেম্বর ২০১২|ডিসেম্বর ২০১২ মাসিক প্রতিবেদন]]" 	else 		text = text .. range(date-30) .. "|আগের মাসের প্রতিবেদন]]" 	end 	if mw.title.getCurrentTitle().subpageText ~= "শীর্ষ ২৫ নিবন্ধ" then 		text = text .. " – পরের মাসের প্রতিবেদন →" 		key = "শীর্ষ ২৫ " .. date:text("%Y%m%d") 	end 	if mw.title.getCurrentTitle().namespace == 4 then 		text = text .. "" .. key .. "" 	end 	return text end  return p