Moduł:Korekta

Z Wikiźródeł, wolnej biblioteki

Moduł obsługuje Szablon {{Korekta}}.


local p = {}

function p.blokuj( tresc )
	local szabl = tresc
	local wynik = ''
	wynik = string.gsub( szabl, '<span[^ ]* [^>]*/span>' , ' → ')
	wynik = string.gsub( wynik, '<br%s?[/]?>', '↓')
	wynik = string.gsub( wynik, '<sub>1</sub>', '₁')
	return wynik
end

function p.kod( frame )
	local kor_jest = frame.args[1]
	local kor_raw_powinno = frame.args[2]
	local kor_powinno = p.blokuj(frame.args[2])
	local kor_raw_alt_powinno = frame.args[3]
	local kor_alt_powinno = p.blokuj(frame.args[3])
	local kor_podkr = frame.args[4]
	local kor_opis = frame.args[5]
	if kor_jest == nil or kor_jest == '' then 
		local kor_kom_blad = '[[Kategoria:Błędne zastosowania szablonów]]<span style="color:red">\'\'\'&nbsp;Błędne użycie szablonu→ brak lub pusty parametr "jest".\'\'\'</span>'
		return kor_kom_blad
	end
	if kor_powinno == nil or kor_powinno == '' then 
		local kor_kom_blad = '[[Kategoria:Błędne zastosowania szablonów]]<span style="color:red">\'\'\'&nbsp;Błędne użycie szablonu→ brak lub pusty parametr "powinno".\'\'\'</span>'
		return kor_kom_blad
	end
	if mw.title.getCurrentTitle().namespace == 0 then
		local kor_title = '[w druku] ' .. '\'' .. p.blokuj(kor_jest) .. '\''
		local kor_title_h = '[' .. kor_opis .. '] ' .. '\'' .. kor_powinno .. '\''
		if kor_alt_powinno ~= 'a_null' then kor_title_h = kor_title_h .. ' lub \'' .. kor_alt_powinno .. '\'' end
		local span = mw.html.create( 'span' )
		local hide_span = mw.html.create( 'span' )
		span
			:addClass( 'n0k' )
			:wikitext( kor_raw_powinno )
			:attr( 'title', kor_title)
		hide_span
			:addClass( 'n0kh' )
			:css( ' display', 'none' )
			:wikitext( kor_jest )
			:attr( 'title', kor_title_h)		
		if kor_podkr == 'yes' then
			span:css( ' border-bottom', 'initial')
			hide_span:css( ' border-bottom', 'initial')
		end
		return tostring(hide_span) .. tostring(span)
	else
		local kor_title = '[' .. kor_opis .. '] ' .. '\'' .. kor_powinno .. '\''
		if kor_alt_powinno ~= 'a_null' then kor_title = kor_title .. ' lub \'' .. kor_alt_powinno .. '\'' end
		local span = mw.html.create( 'span' )
		span
			:addClass( 'korekta' )
			:wikitext( kor_jest )
			:attr( 'title', kor_title)
		if kor_podkr == 'yes' then span:css( ' border-bottom', 'initial') end
		return span
	end
end

return p