Module:DailyFeatured: Difference between revisions

Created page with "local p = {} local function getPool() local content = mw.getCurrentFrame():expandTemplate{ title = "Featured pool" } local pages = {} for line in mw.text.gsplit(content or "", "\n", true) do line = mw.text.trim(line) if line ~= "" then line = line:gsub("^%*%s*", "") if line ~= "" then table.insert(pages, line) end end end return pages end local function cleanWikitext(s) if not s or s == "" then return "" end s = s:gsub("<!--.-?-->", "") s =..."
 
No edit summary
Line 19: Line 19:


local function cleanWikitext(s)
local function cleanWikitext(s)
if not s or s == "" then return "" end
if not s or s == "" then
return ""
end
s = s:gsub("<!--.-?-->", "")
s = s:gsub("<!--.-?-->", "")
s = s:gsub("%[%[File:.-%]%]", "")
s = s:gsub("%[%[File:.-%]%]", "")
Line 30: Line 32:


local function extractHeadlineFromContent(wikitext)
local function extractHeadlineFromContent(wikitext)
if not wikitext or wikitext == "" then return "" end
if not wikitext or wikitext == "" then
return ""
end


-- Prefer first section heading if present
for line in mw.text.gsplit(wikitext, "\n", true) do
for line in mw.text.gsplit(wikitext, "\n", true) do
line = cleanWikitext(line)
line = cleanWikitext(line)
Line 37: Line 42:
line = line:gsub("^=+%s*", ""):gsub("%s*=+$", "")
line = line:gsub("^=+%s*", ""):gsub("%s*=+$", "")
line = mw.text.trim(line)
line = mw.text.trim(line)
if line ~= "" then return line end
if line ~= "" then
return line
end
end
end
end
end


-- Otherwise first meaningful non-empty line
for line in mw.text.gsplit(wikitext, "\n", true) do
for line in mw.text.gsplit(wikitext, "\n", true) do
line = cleanWikitext(line)
line = cleanWikitext(line)
Line 62: Line 70:
end
end


local day = tonumber(os.date("%j"))
local day = tonumber(os.date("%j")) -- day of year
local index = (day % #pages) + 1
local index = (day % #pages) + 1
local title = pages[index]
local title = pages[index]
local args = (frame and frame.args) or {}
if args.titleonly == "1" then
return title
end


local page = mw.title.new(title)
local page = mw.title.new(title)