Modül:Jeolojik aralık

Modül belgelemesi[gör] [değiştir] [geçmiş] [temizle]
Otomatik taksonkutu sistemi belgelemesi

Şablonlar

Modüller

periyotRenk()Düzenle

{{#invoke:Jeolojik aralık|periyotRenk|PERİYOT}}

Şeklinde kullanıldığında o periyotun rengini size verir.

--[[
	Tablonun mantığı şudur:
	{
		PERİYOT ADI,
		PERİYOT SENESİ,
		renk = EĞER VARSA PERİYOT RENGİ,
		diger = {EĞER VARSA PERİYOTUN DİĞER ADLARI}
		{...} -- burada da aynı sistemde bu periyotun alt periyotları bulunur
	}
]]--

local periyotlar = {
	-- Bazı başta not edilmesi gerekenler
	{"burgess shale", 508, diger={"middle middle cambrian"}},   --[[Middle middle is approximate; cf. Burgess Shale ]]
	{"chengjiang", 518},
	{"sirius passet", 518},
	{"doushantou", 570},
	--[[ ICS'den alınan veri
	ICS'den alınan veriler her zaman satırlarda en baştadır.
	]]
	{"kambriyen öncesi", 4600, renk = "rgb(247,67,112)",
		{"hadean", renk = "rgb(174,2,126)"},
		{"arkeyan", 4000, renk = "rgb(240,4,127)",
			{"eoarkeyan", renk = "rgb(218,3,127)", diger={"isuan"}},
			{"paleoarkeyan", 3600, renk = "rgb(244,68,159)"},
			{"mesoarkeyan", 3200, renk = "rgb(247,104,169)"},
			{"neoarkeyan", 2800, renk = "rgb(2449,155,193)"},
		},
		{"proterozoyik", 2500, renk = "rgb(247,53,99)",
			{"paleoproterozoyik", renk = "rgb(247,67,112)",
				{"sideriyen", renk = "rgb(235,110,136)"},
				{"riyasiyen", 2300, renk = "rgb(236,122,147)"},
				{"orosiriyen", 2050, renk = "rgb(238,134,160)"},
				{"stateriyen", 1800, renk = "rgb(239,147,174)"},
			},
			{"mezoproterozoyik", 1600, renk = "rgb(253,180,98)",
				{"kalimiyen", renk = "rgb(251,204,150)",},
				{"ektasiyen", 1400, renk = "rgb(252,214,164)", diger={"riphean"}},
				{"steniyen", 1200, renk = "rgb(253,224,178)",
					{"mayanian", 1100},
					{"sinian", 1050, diger={"sturtian"}},
				},
			},
			{"neoproterozoyik", 1000, renk = "rgb(250,191,93)",
				{"toniyen", renk = "rgb(254,191,78)",
					{"baikalian", 850},
				},
				{"kriyojeniyen", 720, renk = "rgb(254,204,92)",},
				{"ediyakaran", 635, renk = "rgb(254,217,106)", diger={"vendian"}},
			},
		},
	},
	{"fanerozoik", 541.0, renk = "rgb(154,217,221)",
		{"paleozoyik", renk = "rgb(153,192,141)",
			{"kambriyen", renk = "rgb(127,160,86)",
				{"lower cambrian", -- group of two epochs, not in ICS chart
					{"terrenöviyen", renk = "rgb(140,176,108)",
						diger = {"lowest cambrian", "earliest cambrian"},
						{"fortuniyen", renk = "rgb(153,181,117)",
							{"manykaian", diger = {"nemakit daldynian"}},
							{"caerfai", 530, diger = {"tommotian"}},
						},
						{"kambriyen kat 2", 529, renk = "rgb(166,186,128)",},
					},
					{"kambriyen seri 2", 521, renk = "rgb(153,192,120)",
						{"kambriyen kat 3", renk = "rgb(166,197,131)",
							diger = {"orta alt kambriyen"},
							{"atdabanian"},
							{"botomian", 522},
							{"toyonian", 516, diger = {"üst alt kambriyen"}},
						},
						{"kambriyen kat 4", 514, renk = "rgb(179,202,142)"},
					},
				},
				{"kambriyen seri 3", 509, renk = "rgb(166,207,134)",
					diger = {"orta kambriyen", "miaolingiyen"},
					{"kambriyen kat 5", renk = "rgb(179,212,146)", diger = {"alt orta kambriyen", "st davids", "vuliuyan"}},
					{"drumiyen", 504.5, renk = "rgb(191,217,157)"},
					{"guzhangiyen", 500.5, renk = "rgb(204,223,170)", diger = {"nganasanian", "mindyallan"}},
				},
				{"frongiyen", 497, renk = "rgb(179,224,149)",
					diger = {"üst kambriyen", "merioneth"},
					{"payibiyen", renk = "rgb(204,235,174)", diger = {"franconian"}},  -- unofficial and approximate
					{"jiyangşaniyen",
						494,
						{"üst üst kambriyen", 489.5, diger = {"mansian"}},
					},
					{"kambriyen kat 9", renk = "rgb(217,240,187)"},
					{"kambriyen kat 10", renk = "rgb(230,245,201)"},
				},
			},
			{"ordovisyen", 485.4, renk = "rgb(0,146,112)",
				{"alt ordovisyen", renk = "rgb(0,158,126)",
					{"tremadosiyen", renk = "rgb(51,169,126)",
						{"upper lower ordovician", 479},
					},
					{"floyen", 477.7, renk = "rgb(65,176,135)", diger={"arenig"}},
				},
				{"orta ordovisyen", 470.0, renk = "rgb(71,179,147)",
					{"dapingiyen", renk = "rgb(102,192,146)", diger={"ordovician iii", "lower middle ordovician"}},
					{"darriviliyen", 467.3, renk = "rgb(116,198,156)"},
				},
				{"üst ordovisyen", 458.4, renk = "rgb(141,200,170)",
					{"sandbiyen", renk = "rgb(140,208,148)",
						diger = {"ordovician v", "lower upper ordovician"},
						{"middle upper ordovician", 455},
					},
					{"katiyen", 453.0, renk = "rgb(153,214,159)", diger={"ordovician vi"}},
					{"hirnansiyen", 445.2, renk = "rgb(166,219,171)"},
				},
			},
			{"silüryen", 443.8, renk = "rgb(179,225,182)",
				{"landoveri", renk = "rgb(153,215,179)",
					diger = {"lower silurian"},
					{"ruddaniyen"},
					{"aroniyen", 440.8},
					{"telisiyen", 438.5},
				},
				{"venlok", 433.4, renk = "rgb(179,225,194)",
					{"şenvudiyen"},
					{"homeriyen", 430.5},
				},
				{"ludlov", 427.4, renk = "rgb(191,230,207)",
					diger = {"upper silurian"},
					{"gorstiyen"},
					{"ludfordiyen", 425.6},
				},
				{"pridoli", 423.0, renk = "rgb(230,245,225)",
					{"isimsiz pridoli katı"},
				},
			},
			{"devoniyen", 419.2, renk = "rgb(203,140,55)",
				{"alt devoniyen", renk = "rgb(229,180,110)",
					{"lochkovian", diger={"downtonian"}}, -- approx
					{"pragian", 410.8, diger={"praghian"}},
					{"emsian", 407.6},
				},
				{"orta devoniyen", 393.3, renk = "rgb(244,207,132)",
					{"eifelian"},
					{"givetian", 387.7},
				},
				{"üst devoniyen", 382.7, renk = "rgb(245,228,181)",
					{"frasniyen"},
					{"famenniyen", 372.2},
				},
			},
			{"karbonifer", 358.9, renk = "rgb(103,165,153)",
				{"mississippiyen", renk = "rgb(103,143,102)", -- Subperiod from ICS chart
					diger = {"lower carboniferous"},
					{"alt mississippiyen", renk = "rgb(145,179,132)",
						{"tournaisian"},
					},
					{"orta mississippiyen", 346.7, renk = "rgb(171,188,133)",
						{"visean"},
					},
					{"üst mississippiyen", 330.9, renk = "rgb(205,197,134)",
						{"serpukhovian",
							{"namurian", 326},
						},
					},
				},
				{"pensilvaniyen", 323.2, renk = "rgb(153,194,181)", -- Subperiod from ICS chart
					diger = {"üst karbonifer"},
					{"alt pensilvaniyen", renk = "rgb(153,197,200)",
						{"bashkirian",
							{"westphalian", 313},
						},
					},
					{"orta pensilvaniyen", 315.2, renk = "rgb(180,206,203)",
						{"moskoviyen"},
					},
					{"üst pensilvaniyen", 307.0, renk = "rgb(202,204,205)",
						{"kasimovian",
							{"stephanian", 304},
						},
						{"gzhelian", 303.7},
					},
				},
			},
			{"permiyen", 298.9, renk = "rgb(240,64,60)",
				{"cisuralian", renk = "rgb(228,117,92)",
					diger = {"alt permian"},
					{"asselian"},
					{"sakmariyen", 295.0},
					{"artinskian", 290.1},
					{"kunguriyen", 283.5},
				},
				{"guadalupiyen", 272.95, renk = "rgb(241,143,116)",
					diger = {"orta permiyen"},
					{"roadiyen", diger={"ufimian"}},
					{"wordiyen", 268.8},
					{"kapitaniyen", 265.1},
				},
				{"lopingiyen", 259.1, renk = "rgb(247,188,169)",
					diger = {"üst permiyen"},
					{"wuchiapingian", diger={"longtanian"}},
					{"changhsingian", 254.14},
				},
			},
		},
		{"mezozoik", 251.902, renk = "rgb(98,197,202)",
			{"triyas devri", renk = "rgb(129,43,146)",
				{"alt triyas", renk = "rgb(152,57,153)",
					{"induyen"},
					{"olenekiyen", 251.2, diger={"spathian"}},
				},
				{"orta triyas", 247.2, renk = "rgb(187,135,182)",
					{"aniziyen"},
					{"ladiniyen", 242},
				},
				{"üst triyas", 237, renk = "rgb(198,167,203)",
					diger = {"geç triyas"},
					{"karniyen"},
					{"noriyen", 227},
					{"resiyen", 208.5},
				},
			},
			{"jura devri", 201.3, renk = "rgb(52,178,201)",
				{"alt jura devri", renk = "rgb(0,176,227)",
					{"hettangian"},
					{"sinemurian", 199.3},
					{"pliensbachian", 190.8},
					{"toarkiyen", 182.7},
				},
				{"orta jura devri", 174.1, renk = "rgb(132,207,232)",
					{"aalenian"},
					{"bajocian", 170.3},
					{"bathoniyen", 168.3},
					{"kalloviyen", 166.1},
				},
				{"üst jura devri", 163.5, renk = "rgb(189,228,247)",
					{"oxfordiyen"},
					{"kimmeridgiyen", 157.3},
					{"tithoniyen", 152.1},
				},
			},
			{"kretase", 145.0, renk = "rgb(127,198,78)",
				{"alt kretase", renk = "rgb(161,200,167)",
					{"berriaziyen", diger={"neocomian"}},
					{"valanjiniyen", 139.8},
					{"hotriviyen", 132.9},
					{"barremiyen", 129.4, diger={"gallic"}},
					{"apsiyen", 125.0},
					{"albiyen", 113.0, diger={"albiyan"}},
				},
				{"üst kretase", 100.5, renk = "rgb(188,209,94)",
					{"senomaniyen"},
					{"turoniyen", 93.9},
					{"koniasiyen", 89.8, diger={"senoniyen"}},
					{"santoniyen", 86.3},
					{"kampaniyen", 83.6},
					{"maastrihtiyen", 72.1},
				},
			},
		},
		{"senozoyik", 66.0, renk = "rgb(242,249,29)",
			{"tersiyer", renk = "rgb(242,249,2)",   -- Group of 2 periods, former term
				{"paleojen", renk = "rgb(253,154,82)",
					{"paleosen", renk = "rgb(253,167,95)",
						{"daniyen",
							diger = {"alt paleosen"},
							{"puercan", 65},
							{"torrejonian", 63.3},
						},
						{"selandiyen", 61.6,
							diger = {"orta paleosen"},
							{"tiffanian", 60.2},
						},
						{"tanesiyen", 59.2,
							diger = {"üst paleosen"},
							{"clarkforkian", 56.8},
						},
					},
					{"eosen", 56.0, renk = "rgb(253,180,108)",
						{"ipresiyen",
							diger = {"alt eosen", "mp 10"},
							{"wasatchian", 55.4},
							{"bridgerian", 50.3},
						},
						{"orta eosen", 47.8,
							{"lütesiyen",
								diger = {"mp 11"},
								{"uintan", 46.2},
								{"duchesnean", 42},
							},
							{"bartoniyen", 41.2,
								{"chadronian", 38},
							},
						},
						{"priaboniyen", 37.8, diger={"üst eosen"}},
					},
					{"oligosen", 33.9, renk = "rgb(253,192,122)",
						{"rupeliyen",
							diger = {"lower oligocene"},
							{"orellan"},
							{"whitneyan", 33.3},
							{"arikeean", 30.6},
						},
						{"şattiyen", 28.1, diger={"upper oligocene"}},
					},
				},
				{"neojen", 23.03, renk = "rgb(255,230,25)",
					{"miyosen", renk = "rgb(255,255,0)",
						{"alt miyosen",   -- Group of 2 stages, not in ICS chart
							{"aquitanian",
								{"hemingfordiyen", 20.6},
							},
							{"burdigaliyen", 20.44,
								{"barstoviyen", 16.3},
							},
						},
						{"orta miyosen", 15.97,   -- Group of 2 stages, not in ICS chart
							{"langiyen"},
							{"serravaliyen", 13.82,
								{"clarendonian", 13.6},
							},
						},
						{"üst miyosen", 11.63,   -- Group of 2 stages, not in ICS chart
							{"tortoniyen",
								{"hemphillian", 10.3},
							},
							{"messiniyen", 7.246},
						},
					},
					{"pliyosen", 5.333, renk = "rgb(244,249,173)",
						{"zankliyen",
							diger = {"lower pliocene"},
							{"blancan", 4.75},
						},
						{"piasenziyen", 3.600, diger={"üst pliyosen"}},
					},
				},
			},
			{"kuaterner", 2.58, renk = "rgb(249,249,127)",
				{"pleyistosen", renk = "rgb(255,242,174)",
					{"alt pleyistosen",   -- Group of 2 stages, implied from ICS chart
						{"gelasiyen"},
						{"kalabriyen", 1.80,
							{"irvingtonian", 1.8},
						},
					},
					{"orta pleyistosen", 0.774, -- this date has been redefined by the ICS.
						diger = {"ioniyen", "çibaniyen"},
						--[[the name "Chibanian" was formally adopted
							for this stage by the ICS in January 2020.
							The term "Ionian" was a proposed term for
							this same span of time. ]]
						{"rancholabrean", 0.24}, -- this date has been redefined by the ICS.
					},
					{"üst pleyistosen", 0.129, diger={"tarantian"}}, -- proposed name for this as-yet formally undefined stage
				},
				{"holosen", 0.0117, renk = "rgb(254,242,224)",
					{"grönlandiyen", diger={"alt holosen"}},
					{"nortgripiyen", 0.0082, diger={"orta holosen"}},
					{"meghaliyen", 0.0042, diger={"üst holosen"}},
				},
			},
		},
	},
	{"günümüz", 0},
}

local renkler = {}
local addanSene = {}
local senedenAd = {}
local addanBitis = {{},{},{},{},{},{},{},{}}

--[[
	veri tablosunu ayrıştırıp, şu özellikleri her periyot adı
	için ayırt etmeye yarayan fonksiyon:
	* periyotun başlangıcı
	* periyotun bitişi
	* periyotun diğer adları
	* periyotun alt dönemleri
	* periyotun rengi
--]]
local function sAdim(t, sene, i, renk)
	-- öncelikle herhangi bir olası hatayı önlemek adına
	-- periyotun bir tablo (nesne) olduğundan emin olalım
	if type(t) == "table" then
		-- ve içerideki her bir ögeyi ayrıştırmak adına
		-- bir döngü başlatalım
		for _,x in ipairs(t) do
			--[[
				normalde her periyotta ayrı ayrı ikinci ögede
				sene değeri girilmesi gerkiyor, fakat bir üst
				düzeydeki periyotta eğer sene girildiyse ve
				bu periyot da bir sonraki sene değerine kadar arada
				kalan bir değerse en son kalınan sene değeri geçerli
				olmalıdır; bu sebeple sene değeri döngü devam
				ettikçe aşağı doğru aktarılır
			--]]
			local ilkSene = sene
			-- içerideki ögeler arasında bir adet tablo bulunması
			-- gerekiyor, eğer alt periyotlar mevcut ise
			if type(x) == "table" then
				table.insert(addanBitis[i], {x[1]})
				sene = tonumber(x[2]) and x[2] or sene
				if sene == ilkSene then
					--[[
						eğer bir sene değeri bu aşamada belirtilmediyse, ve bir üst
						seviyedeki sene alınmışsa senedenAd tablosu kullanıldığı için
						yeni bir {sene, değer} şeklinde yeni bir alt tablo oluşturmak
						yerine en sona eklenen alt tabloya yeni bir değer eklemek gerekiyor
						yani; en sondaki alt tablo şu şekilde olur:
						{sene, deger, deger2, deger3 vs...}
						Yani burada "#senedenAd" ifadesi tablonun uzunluğunu vermektedir,
						uzunluğu da tablonun son ögesini seçmemizi sağlar
					--]]
					table.insert(senedenAd[#senedenAd], x[1])
				else
					table.insert(senedenAd, {sene, x[1]})
				end
				renk = x.renk and x.renk or renk
				renkler[x[1]] = renk
				addanSene[x[1]] = sene
				if x.diger then
					for _,ad in ipairs(x.diger) do
						addanSene[ad] = sene
						table.insert(addanBitis[i][#addanBitis[i]], ad)
						table.insert(senedenAd[#senedenAd], ad)
						renkler[ad] = renk
					end
				end
			end
			sAdim(x, sene, i+1, renk)
		end
	end
end

sAdim(periyotlar, "", 1, "white")

for _,sonraki in ipairs(addanBitis) do
	for k,donem in ipairs(sonraki) do
		for _,ad in ipairs(donem) do
			addanBitis[ad] = sonraki[k+1] and sonraki[k+1][1] or "günümüz"
		end
	end
end

--bu fonksiyon girilen bir yazıda birinci değeri bulup
--onu ikinci değer ile değiştirmeye yarar
local function bulvedeg(yazi, bir, iki)
	return mw.ustring.sub( mw.ustring.gsub(tostring(yazi), bir, iki), 1, -1 )
end

local function yuvarla(sayi, basamak)
  return sayi and tonumber(string.format("%." .. (basamak or 0) .. "f", sayi))
end

local function getirTabloyaGore(yazi, tablo)
	yazi = mw.getContentLanguage():lc(yazi)
	for _,icerisi in pairs(tablo) do
		for i=2,30 do
			if icerisi[i] and icerisi[i] == yazi then return icerisi[1] end
		end
	end
end

local function linearGradient(renk1, renk2)
	return "background-image: -moz-linear-gradient("..renk1..", "..renk2.."); background-image: -ms-linear-gradient("..renk1..", "..renk2.."); background-image: -o-linear-gradient("..renk1..", "..renk2.."); background-image: -webkit-linear-gradient("..renk1..", "..renk2.."); background-image: linear-gradient("..renk1..", "..renk2..");"
end

local function periyotID(id)
	local yazi = mw.getContentLanguage():lc(tostring(id))
	yazi = bulvedeg(yazi, "-", "")
	yazi = bulvedeg(yazi, "%f[%w]palaeo", "paleo")
	yazi = bulvedeg(yazi, "%f[%w]early%f[%W]", "lower")
	yazi = bulvedeg(yazi, "%f[%w]mid%f[%W]", "middle")
	yazi = bulvedeg(yazi, "%f[%w]late%f[%W]", "upper")

	return yazi
end

local function periyotBas(periyot, yuv)
	return periyot and yuvarla(addanSene[periyotID(periyot)], yuv or 5)
end

local function periyotBitis(periyot, yuv)
	return periyot and periyotBas(addanBitis[periyotID(periyot)], yuv or 5)
end

local function _periyotRenk(periyot)
	return renkler[mw.getContentLanguage():lc(periyot)]
end

local function periyotRenk(frame)
	return _periyotRenk(frame:getParent().args[1] or frame.args[1])
end

local function isaret(tip, sayi1, sayi2, sayi3)
	local g, h = tip.genislik, tip.hepsi
	local sonuc
	if (sayi1-sayi2)>5 then
		sonuc = "<div style='position:absolute; height:8px; left:"..((h-sayi1)/h*g).."px;"
			.."width:"..((sayi1-sayi2)*g/h).."px; background-color:#360; opacity:"
			..(sayi3 and tonumber("0."..tostring(sayi3)) or 1).."; '><!--range-border--></div>"
		if sayi3 then else
			sonuc = sonuc .. "<div style='position:absolute; height:6px; top:1px; left:" .. (((h-sayi1)/h*g)+1)
			.."px; width:" .. (((sayi1-sayi2)*g/h)-2) .. "px; background-color:#6c3;'><!--range-marker--></div>"
		end
	else
		if sayi3 then else
			sonuc = "<div style='position:absolute; left:" .. ((h-sayi1)/h*g) .."px;"
			.. "font-size:50%'><!--contains arrow--><div style='position:relative; left:-0.42em'>"
			.. "<!--nudges back left-->&darr;</div></div>"
		end
	end
	
	return sonuc
end

local function bar(tip, deger1, deger2, deger3)
	local g, h = tip.genislik, tip.hepsi
	local gen = g == 250 and (deger3 and "6" or "12px; top:6").."px" or "100%"
	return "<div style='position:absolute; height:"..gen.."; text-align:center; background-color:".. _periyotRenk(deger1)
		.. ";left:" .. ((h-periyotBas(deger1))/h*g) .. "px; width:"
		.. ((periyotBas(deger1)-periyotBitis(deger1))/h*g) .. "px;'>"..(deger2 and "[["..deger1.."|"..deger2.."]]" or "").."</div>"
end

local function karsilastir(sene, sayi)
	local periyot
	
	for k,icerisi in pairs(senedenAd) do
		if sayi == 1 then
			if sene <= icerisi[1] then
				periyot = icerisi[2]
			end
		elseif sayi == 2 then
			if sene >= icerisi[1] and (senedenAd[k-1] and sene <= senedenAd[k-1][1]) then
				if sene == senedenAd[k-1][1] then
					periyot = senedenAd[k-1][2]
				else
					periyot = icerisi[2]
				end
			end
		end
	end
	
	return "[[" .. (periyot == "günümüz" and "Holosen|" or "") .. mw.getContentLanguage():ucfirst(periyot) .. "]]"
end

local function _goster(veri)
	local sonuc = {}
	
	veri[1] = bulvedeg(veri[1], ",", ".")
	if veri[2] then
		veri[2] = bulvedeg(veri[2], ",", ".")
	end
	
	local sene1 = tonumber(veri[1]) or periyotBas(veri[1])
	local sene2 = tonumber(veri[2]) or periyotBitis(veri[2]) or periyotBitis(veri[1]) or tonumber(veri[1])
		
	local sene1_e = tonumber(veri["en_erken"]) or periyotBas(veri["en_erken"]) or sene1
	local sene2_e = tonumber(veri["en_son"]) or periyotBitis(veri["en_son"]) or sene2
	
	local tip = sene1 >= 650 and {genislik=250,hepsi=4600} or {genislik=220,hepsi=650}
	
	table.insert(sonuc, "<div style='line-height: 150%'>")
	if veri["ön_ek"] then
		table.insert(sonuc, veri["ön_ek"])
	end
	table.insert(sonuc, "Yaşadığı dönem aralığı: ")
	
	table.insert(sonuc, (veri[3] or
			(bulvedeg(sene1, "%.", ",") .. ((sene2 and sene2 ~= sene1) and "-"..bulvedeg(sene2, "%.", ",") or "") .. "&nbsp;[[Yıl|Ma]]"))
		.. (veri[1] and "<br>" or "") .. (tonumber(veri[1]) and karsilastir(sene1, 1) or veri[1])
		.. (veri[2] and "-" or "") .. ((tonumber(veri[2])) and  karsilastir(sene2, 2) or (veri[2] or ""))
		)

	if veri["kaynak"] then table.insert(sonuc, veri["kaynak"]) end
	table.insert(sonuc, "&nbsp;")
	if veri["not"] then table.insert(sonuc, veri["not"]) end
	table.insert(sonuc, "</div>")
	
	table.insert(sonuc, "<div id='Timeline-row' style='margin: 4px auto 0; clear:both;"
		.."width:"..tostring(tip.genislik).."px; padding:0px; height:18px; overflow:visible; border:1px #666;"
		.."border-style:solid none; position:relative; z-index:0; font-size:13px;'>")
	
	if tip.hepsi == 4600 then
		table.insert(sonuc, bar(tip, "Hadean"))
		table.insert(sonuc, bar(tip, "Hadean", "<span style='color:white;white-space:nowrap;'>''Had'n''</span>", 1))
		table.insert(sonuc, bar(tip, "eoarkeyan"))
		table.insert(sonuc, bar(tip, "Paleoarkeyan"))
		table.insert(sonuc, bar(tip, "Mesoarkeyan"))
		table.insert(sonuc, bar(tip, "neoarkeyan"))
		table.insert(sonuc, bar(tip, "arkeyan", "Arkeyan", 1))
		table.insert(sonuc, bar(tip, "paleoproterozoyik"))
		table.insert(sonuc, bar(tip, "mezoproterozoyik"))
		table.insert(sonuc, bar(tip, "neoproterozoyik"))
		table.insert(sonuc, bar(tip, "Proterozoyik", "Proterozoyik", 1))
		table.insert(sonuc, bar(tip, "Paleozoyik"))
		table.insert(sonuc, bar(tip, "Mezozoik"))
		table.insert(sonuc, bar(tip, "Senozoyik"))
		table.insert(sonuc, bar(tip, "fanerozoik", "Pha.", 1))
	else
		table.insert(sonuc, 
			"<div style='position:absolute; height:100%; left:0px; width:"..(periyotBas("kambriyen")/650*250).."px;"
			.."padding-left:5px; text-align:left; background-color:".. _periyotRenk("ediyakaran") ..";"
			..linearGradient("left", "rgba(255,255,255,1), rgba(254,217,106,1) 15%, rgba(254,217,106,1)") .. "'>"
			.."[[Kambriyen öncesi|PreЄ]]</div>")
		table.insert(sonuc, bar(tip, "kambriyen", "Є"))
		table.insert(sonuc, bar(tip, "Ordovisyen", "O"))
		table.insert(sonuc, bar(tip, "Silüryen", "S"))
		table.insert(sonuc, bar(tip, "Devoniyen", "D"))
		table.insert(sonuc, bar(tip, "Karbonifer", "C"))
		table.insert(sonuc, bar(tip, "Permiyen", "P"))
		table.insert(sonuc, bar(tip, "Triyas devri", "T"))
		table.insert(sonuc, bar(tip, "Jura devri", "J"))
		table.insert(sonuc, bar(tip, "Kretase", "K"))
		table.insert(sonuc, bar(tip, "Paleojen", "<small style='white-space: nowrap;'>Pg</small>"))
		table.insert(sonuc, bar(tip, "Neojen", "<small>N</small>"))
	end

	table.insert(sonuc, "<div name=Range style='margin:0 auto; line-height:0; clear:both; width:"..tostring(tip.genislik).."px; padding:0px; height:8px; overflow:visible; background-color:transparent; position:relative; top:-4px; z-index:100;'>")
	
	if sene1 and sene2 then table.insert(sonuc, isaret(tip, sene1_e, sene2_e, 42)) end
	table.insert(sonuc, isaret(tip, sene1, sene2))
	
	table.insert(sonuc, "</div Range>\n</div Timeline-row>")
	
	return table.concat(sonuc)
end

local function goster(frame)
	return _goster(frame:getParent().args)
end

local function tumTablo(frame)
	local sonuc = {}
	local function cikti(tablo, i)
		i = i .. "──"
		table.insert(sonuc, "<div style='background:" .. renkler[tablo[1]] .. "'>"
			.. i .. tablo[1] .. 
			(tonumber(tablo[2]) and " (" .. tostring(tablo[2]) .. ")" or "")
			.. "</div>\n\n")
		for _,alt in ipairs(tablo) do
			if type(alt) == "table" then
				cikti(alt, i)
			end
		end
	end
	table.insert(sonuc, "\n\n")
	for _,donem in ipairs(periyotlar) do
		cikti(donem, "├")
	end
	table.insert(sonuc, "")
	return table.concat(sonuc)
end

return {_goster = _goster, goster = goster, tumTablo = tumTablo, periyotRenk = periyotRenk}