Modul:Archives
Vzhled
Archives může být použit k vygenerování seznamu archivů.
Použití
Modul zkusí podle zadaných parametrů najít existující podstránky s archivovanými diskusemi a vypíše je v seznamu.
{{#invoke:Archives|list}}
:
* [[Diskuse:Homosexualita/Archiv 1|Archiv 1]]
{{#invoke:Archives|list|Diskuse s wikipedistou:Patriccck/Archiv/%|number|, }}
:
[[Diskuse s wikipedistou:Patriccck/Archiv/2017|2017]], [[Diskuse s wikipedistou:Patriccck/Archiv/2018|2018]], [[Diskuse s wikipedistou:Patriccck/Archiv/2019|2019]]
- pattern
{{#invoke:Archives|list|pattern = Diskuse s wikipedistou:Ján Kepler/Archiv/%}}
:
* [[Diskuse s wikipedistou:Ján Kepler/Archiv/1|1]]
- title
{{#invoke:Archives|list|title = subpage}}
nebo {{#invoke:Archives|list}}
:
* [[Diskuse s wikipedistou:Janbery/Archiv1|Archiv1]]
{{#invoke:Archives|list|title = number}}
:
* [[Diskuse s wikipedistou:Janbery/Archiv1|1]]
{{#invoke:Archives|list|title = Archiv %}}
:
* [[Diskuse s wikipedistou:Janbery/Archiv1|Archiv 1]]
- delimiter
{{#invoke:Archives|list|delimiter = ,}}
:
[[Diskuse s wikipedistou:Patriccck/Archiv/2017|2017]],[[Diskuse s wikipedistou:Patriccck/Archiv/2018|2018]],[[Diskuse s wikipedistou:Patriccck/Archiv/2019|2019]]
local p = {}
function p.list(frame)
local a = require('Modul:Arguments')
local params = a.getArgs(frame)
local numbers = {}
for i=0,os.date('%y') do
numbers[i] = 0
end
for i=2002,os.date('%Y') do
numbers[i] = 0
end
local pattern = params['pattern'] or params[1] or frame:getParent():getTitle() .. '/Archiv %'
local _, count = string.gsub(pattern, '%%', '')
local title = pattern
local page = ''
local pages = {}
if count >= 1 then
for i, _ in pairs(numbers) do
title = string.gsub(pattern, '%%', i, 1)
if count >= 2 then
for i, _ in pairs(numbers) do
title = string.gsub(title, '%%', i, 1)
page = mw.title.new(title)
pages[page] = 0
end
else
page = mw.title.new(title)
pages[page] = 0
end
end
else
page = mw.title.new(title)
pages[page] = 0
end
local archives = {}
local link = ''
for page, _ in pairs(pages) do
if page.exists then
link = '[[' .. page.prefixedText .. '|' .. page.subpageText .. ']]'
table.insert(archives, link)
end
end
table.sort(archives)
local delimiter = params['delimiter'] or params[2] or '\n* '
local result = table.concat(archives, delimiter)
return '* ' .. result
end
return p