UWAGA
Strona jest ponownie oddana do uzytku po zabiegach konfiguracyjnych. Jeśli zobaczą Państwo na niej jakieś błedy techniczne, prosimy o ich zgłoszenie.

Większość artykułów w portalu to nasze własne teksty z kluczowych dziedzin związanych z naszą misją. Spora część materiałów pochodzi też z polskiej wersji Wikipedii, gdzie były odrzucone ze względu na politykę redaktorów (przeczytaj o krytyce Wikipedii). Są też i takie, które zostały przeniesione na nasze strony, gdyż stanowią istotne uzupełnienie merytorycznej treści naszego serwisu. Wszystkie artykuły podlegają edycji przez naszych Użytkowników, dlatego ich wersje mogą się różnić od prezentowanych na innych witrynach.

Moduł:Przypisy

Z Wedapedia
Przejdź do nawigacji Przejdź do wyszukiwania

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Przypisy/opis

return {

["Przypisy"] = function(frame)
	--mw.logObject(frame:getParent():getTitle(), "parent:title")

	local result = {}

	local category = frame.args["kategoria"]
	local defaultGroup = frame.args["grupa"]

	local hasIgnoredFields = {}

	-- grupa  przekazywana w polu o pustej nazwie
	-- aby docelowo zwolnić wszystkie nazwy na przypisy
	local group = frame:getParent().args[""]
	if group and string.match(group, "^=*$") then
		-- z wyjątkiem błednych wywołań w stylu "=="
		table.insert(hasIgnoredFields, "");
		group = nil
	end
	
	-- alternatywnie do czasu przebotowania z pola o nazwie "grupa"
	if not group then
		group = frame:getParent().args["grupa"]
		if group and (#group == 0) then
			group = nil
		end
	end
	
	local function noArgs()
		for k, v in pairs(frame:getParent().args) do
			return false
		end
		
		return true
	end

	table.insert(result, '<div class="do-not-make-smaller refsection')
	if group or defaultGroup then
		local groupClass, _ = (group or defaultGroup) == "uwaga" and "uwagi ll-script ll-script-uwagi" or string.gsub(group or defaultGroup, ' ', '_')
		table.insert(result, " refsection-")
		table.insert(result, groupClass)
	end
	table.insert(result, '">')
	
	-- to jest lista przestarzałych pól w wywołaniach szablonów przypisów,
	-- które się jeszcze sporadycznie pojawiają w brudnopisach
	-- TODO docelowo lista będzie całkowicie usunięta
	local exceptions = {
		"colwidth", -- kopia z enwiki? do usunięcia
		"group", -- kopia z enwiki? do usunięcia
		"grupa", -- to tzeba zamienić na gołe '=wartość'
		"przypisy", -- a to całkiem usunąć
		"refs", -- kopia z enwiki? do usunięcia
	}
	local ignore = {}
	for i, v in ipairs(exceptions) do
		ignore[v] = true
	end
	
	local contents = {}
	for k, v in pairs(frame:getParent().args) do
		if (k == "") or ((type(k) == "number") and (k == 1)) then
			--mw.logObject( {k, v}, "nazwa grupy albo pole {{{1}}} puste lub z przypisami w stylu <ref name=...>")
			table.insert(contents, v)
		elseif (type(k) == "string") and not ignore[k] then
			-- pole o podanej nazwie tłumaczymy na przypis o takiej samej nazwie
			local ref = frame:extensionTag('ref', v, {name=k, group=group or defaultGroup})
			--mw.logObject( {k, v, ref}, "indywidualny przypis")
			table.insert(contents, ref)
		else
			-- pole indeksowane lub mające nazwę wykluczoną z powodów historycznych
			--mw.logObject( {k, v}, "indeksowane pole z potencjalnymi przypisami w stylu <ref name=...>")
			table.insert(hasIgnoredFields, k)
			table.insert(contents, v)
		end
	end
	
	local references = frame:extensionTag('references', table.concat(contents), {group=group or defaultGroup, responsive="1"})
	
	table.insert(result, references)
	if #hasIgnoredFields > 0 then
		table.insert(result, '<span class="problemy">')
		table.insert(result, mw.text.nowiki("{{"))
		local title = mw.title.new(frame:getParent():getTitle())
		if title.namespace ~= 10 then
			table.insert(result, title.nsText)
			table.insert(result, ":")
		end
		
		table.insert(result, title.text)
		table.insert(result, mw.text.nowiki("}} Nieprawidłowe pola: "))
		table.insert(result, mw.text.listToText(hasIgnoredFields))
		table.insert(result, ". ")
		--mw.logObject({hasIgnoredFields, category}, "hasIgnoredFields and category")
	end
	table.insert(result, '</div>')
	if (#hasIgnoredFields > 0) and category then
		table.insert(result, category)
	end
	
	--mw.logObject(table.concat(result), "result")
	return table.concat(result)
end,
}