Module:DailyFeatured: Difference between revisions
Per.kuskan (talk | contribs) 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 =..." |
Per.kuskan (talk | contribs) 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) | ||