Module:Höfundur

Úr Wikiheimild
Jump to navigation Jump to search

Hægt er að búa til leiðbeiningar fyrir þessa skriftu á Module:Höfundur/doc

local p = {}

function p.main(frame)
	local pframe = frame:getParent()
    local args = pframe.args
    
    if mw.wikibase.getEntityIdForCurrentPage() ~= nil then
    	local hlutur = mw.wikibase.getEntityIdForCurrentPage()
		if args["dánarár"] == nil and mw.wikibase.getBestStatements(hlutur, "P570")[1] ~= nil then
			local date = mw.wikibase.getEntity():getBestStatements("P570")[1].mainsnak.datavalue.value.time
			args["dánarár"] = tonumber(string.sub(date, 2,5))
		end
		if args["fæðingarár"] == nil and mw.wikibase.getBestStatements(hlutur, "P569")[1] ~= nil then
			local date = mw.wikibase.getEntity():getBestStatements("P569")[1].mainsnak.datavalue.value.time
			args["fæðingarár"] = tonumber(string.sub(date, 2,5))
		end
		if args.wikipedia == nil and mw.wikibase.getSitelink("iswiki") ~= nil then
			args.wikipedia = mw.wikibase.getSitelink( "iswiki" )
		end
		if args.commons == nil and mw.wikibase.getSitelink("commonswiki") ~= nil then
			args.commons = mw.wikibase.getSitelink( "commonswiki" )
		end
		if args.mynd == nil and mw.wikibase.getBestStatements(hlutur, "P18")[1] ~= nil then
			args.mynd = mw.wikibase.getBestStatements(hlutur, "P18")[1].mainsnak.datavalue.value
		end
	end
	local extras = {}
	local upphafsstafur = args.upphafsstafur
	local nafn = args.nafn or mw.title.getCurrentTitle().baseText
	
	if upphafsstafur == nil and nafn ~= nil then -- args.upphafstafur
		upphafsstafur = mw.ustring.sub(nafn, 0, 1)
	end
	if args["dánarár"] ~= nil or args["fæðingarár"] ~= nil then
		if args["fæðingarár"] ~= nil then
			dagsetning = (args["fæðingarár"] or "") .. "–" .. (args["dánarár"] or "")
		else
			dagsetning = "?–" ..args["dánarár"]
		end
	else
		dagsetning = ""
	end
	if args.wikipedia ~= nil and mw.text.trim(args.wikipedia) ~= "" then
		args.wikipedia = "[[w:" .. args.wikipedia .. "|æviágrip]]"
	end
	if args.commons ~= nil and mw.text.trim(args.commons) ~= "" then
		args.commons = "[[commons:" .. args.commons .. "|skrár]]"
	end
	if args.wikiquote ~= nil and mw.text.trim(args.wikiquote) ~= "" then
		args.wikiquote = "[[q:" .. args.wikiquote .. "|tilvitnanir]]"
	end
	
	local maintable = mw.html.create("table")
	maintable
		:css({
			width = "100%",
			["margin-bottom"] = "5px",
			border = "1px solid #BEA2A2",
			background = "#E4D8D8"
			})
		:tag("tr")
			:tag("td")
				:css({
					width = "20%",
					["font-size"] = "0.9em"
					})
				:wikitext("←[[Wikisource:Höfundar-" .. upphafsstafur .. "|Höfundalisti: " .. upphafsstafur .. "]]")
				:done()
			:tag("td")
				:css({
					width = "60%",
					["text-align"] = "center"
					})
				:wikitext("'''" .. nafn .. "'''")
				:newline()
				:wikitext("(" .. dagsetning .. ")")
				:done()
			:tag("td")
				:css({
					width = "20%",
					["font-size"] = "0.9em"
					})
				:done()
			:allDone()
	local secondarytable = mw.html.create("table")
	secondarytable
		:css({
			width = "100%",
			["border-bottom"] = "1px solid #A88",
			background = "#FFFBFC",
			["font-size"] = "0.9em"
			})
		:tag("tr")
			:tag("td")
				:tag("span")
					:css({
						float = "right",
						padding = "2px",
						margin = "0 0 0.5em 1em",
						border = "1px solid #CCC"
						})
					:wikitext("Meira: " .. (args.wikipedia or "") .. " " .. (args.commons or "") .. " " .. (args.wikiquote or ""))
					:allDone()
	if args.mynd ~= nil and mw.text.trim(args.mynd) ~= "" then
		table.insert(extras, "[[Mynd:" .. args.mynd .. "|thumb|200px|" .. (args.myndatexti or nafn or "") .. "]]")
	end
	if args["lýsing"] ~= nil then
		table.insert(extras, args["lýsing"])
	end
	if args.flokkur ~= nil then
		table.insert(extras, args.flokkur)
	else
		table.insert(extras, "[[Flokkur:Höfundar-" .. upphafsstafur .. "]]")
		if args["fæðingarár"] ~= nil then
			table.insert(extras, "[[Flokkur:Fólk fætt árið " .. args["fæðingarár"] .. "]]")
			table.insert(extras, "[[Flokkur:" .. p.phase(args["fæðingarár"]) .. "höfundar]]")
		end
		if args["dánarár"] ~= nil then
			table.insert(extras, "[[Flokkur:Fólk dáið árið " .. args["dánarár"] .. "]]")
			table.insert(extras, "[[Flokkur:" .. p.phase(args["dánarár"]) .. "höfundar]]")
		elseif args["fæðingarár"] ~= nil then
			table.insert(extras, "[[Flokkur:Lifandi höfundar]]")
		end
	end
	
	if args.commons or args.wikipedia or args.wikiquote then
		return tostring(maintable) .. tostring(secondarytable) .. table.concat(extras)
	else
		return tostring(maintable) .. table.concat(extras)
	end
end

function p.phase(s1)
	if s1 and tonumber(s1) then
		s1 = tonumber(s1)
		if s1 >= 1990 then
			return "Nútíma"
		elseif s1 >= 1631 then
			return "Nýaldar"
		elseif s1 >= 1420 then
			return "Endurreisnar"
		elseif s1 >= 601 then
			return "Miðalda"
		else
			return "Fornaldar"
		end
	else
		return "Fornaldar"
	end
end

return p