Přeskočit na obsah

Modul:Archives

Z Wikipedie, otevřené encyklopedie
(rozdíl) ← Starší revize | zobrazit aktuální verzi (rozdíl) | Novější revize → (rozdíl)

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