Модуль:Utils

Материал из Викитеки — свободной библиотеки

Для документации этого модуля может быть создана страница Модуль:Utils/Документация

local p = {}

-- Шаблон:Главы2
function p.tocline__numericTitles_roman(frame)
	pargs = frame:getParent().args
	local count_parts = tonumber(pargs[1]) or 0
	local param2 = pargs[2] or ''; if param2 ~= '' then param2 = param2 .. ' ' end
	local param3 = pargs[3] or ''
	local post = pargs.post
	if count_parts > 0 then
		local r = require('Модуль:RomanNumber')
		result = {}
		for i = 1, count_parts do
			n = r.toRomanNumber(i)
			table.insert(result, '[[#'..param2..n..param3..'|'..n..']]')
		end
		result = table.concat(result, ' · ')
		if param2 ~= '' then result = param2.. ' ' .. result end
		if post then result = result .. ' · ' .. post end
		return result
	end
end

-- Шаблон:Хим2
function p.chem2(frame)
	local str = frame:getParent().args[1]; if not str then return end
	local str = string.gsub( str, "%s*~%s*", " = ")
	local subs = { ['0']='₀', ['1']='₁', ['2']='₂', ['3']='₃', ['4']='₄', ['5']='₅', ['6']='₆', ['7']='₇', ['8']='₈', ['9']='₉' }
	local result = string.gsub( str, "([%a)%]])(%d+)", function(a, b) return a..string.gsub(b, '%d', subs) end )
	return result
end

-- проверка переменной, возврат её или nil если пустая
function is ( var ) if ( var == '' or var == nil ) then return nil else return var end end

return p