Hoppa till innehållet

Modul:Sandlåda/Bläddra

Från Wikimedia

Dokumentationen för denna modul kan skapas på Modul:Sandlåda/Bläddra/dok

local p = {}
local logString = ""

function log(entry)
	logString = logString .. "<br />" .. entry
end

function p.run(frame)
	local title = mw.title.getCurrentTitle().fullText
	local titleWords = mw.text.split(title, " ")
	local year = mw.ustring.match(title, "%d%d%d%d")
	local lastWord = table.remove(titleWords, #titleWords)
	local titleBase = table.concat(titleWords, " ")
	local previousLink = createPreviousNextLink(
		frame.args.link_last,
		frame.args.text_last,
		year,
		title,
		-1
	)
	local nextLink = createPreviousNextLink(
		frame.args.link_next,
		frame.args.text_next,
		lastWord,
		titleBase,
		1
	)
	out = "" --yearStart .. " - " .. yearEnd .. " - " .. year
	if previousLink then
		out = out .. "<< " .. previousLink
		if nextLink then
			out = out .. " | "
		end
	end
	if nextLink then
		out = out .. nextLink .. " >>"
	end
	out = out .. "<hr />" .. logString
	return out
end

function createPreviousNextLink(target, text, lastWord, title, difference)
	local link
	if target ~= nil and target ~= "" then
		if text == nil or text == "" then
			text = target
		end
		link = createLink(target, text)
	elseif tonumber(lastWord) then
		link = createYearLink(lastWord, difference, title)
	end
	if link then
		return link
	else
		return nil
	end
end

function createYearLink(originalYear, difference, pageTitle)
	local year = originalYear + difference
	local titleString = mw.ustring.gsub(pageTitle, originalYear, year, 1)
	log(titleString)
	local title = mw.title.new(titleString)
	if title.exists then
		log("Tile exists")
		return createLink(title.fullText, year)
	else
		return nil
	end
end

function createLink(target, text)
	return "[[" .. target .. "|" .. text .. "]]"
end

return p