Модуль:ОТФ

Материал из Викиучебника — открытых книг для открытого мира

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

local map = {
	["1_100"] = "1.100",
--	["1.2"] = "1.2",
--	["1.3"] = "1.3",
--	["новая формула"] = "1.4"
}

return {
    Link = function(frame)
	    local pframe = frame:getParent()
	    local config = frame.args -- параметры, переданные САМИМ ШАБЛОНОМ в тексте САМОГО ШАБЛОНА
	    local args = pframe.args -- параметры, переданные ШАБЛОНУ в тексте ВЫЗВАВШЕЙ СТРАНИЦЫ
	    
	    local stored_link = args["ссылка"]
	    if (map[args["ссылка"]] ~= nil) then
	    	stored_link = map[args["ссылка"]]
	    end
	    
	    if (args["страница"] ~= nil) then
	    	return "&nbsp;<span id='link_to_"..args["ссылка"].."'>[[Основы_теоретической_физики/"..args["страница"].."#" .. args["ссылка"] .. "|(" .. stored_link .. ")]]</span>&nbsp;"
	    else
	    	return "&nbsp;<span id='link_to_"..args["ссылка"].."'>[[#" .. args["ссылка"] .. "|(" .. stored_link .. ")]]</span>&nbsp;"
	    end
    end,
    Anchor = function(frame)
	    local pframe = frame:getParent()
	    local config = frame.args -- параметры, переданные САМИМ ШАБЛОНОМ в тексте САМОГО ШАБЛОНА
	    local args = pframe.args -- параметры, переданные ШАБЛОНУ в тексте ВЫЗВАВШЕЙ СТРАНИЦЫ
	    
	    if (map[args["формула"]] ~= nil) then	
	    	return map[args["формула"]]
	    else 
	    	return args["формула"]
	    end
    end,
    Topic = function(frame)
	    local pframe = frame:getParent()
	    local config = frame.args -- параметры, переданные САМИМ ШАБЛОНОМ в тексте САМОГО ШАБЛОНА
	    local args = pframe.args -- параметры, переданные ШАБЛОНУ в тексте ВЫЗВАВШЕЙ СТРАНИЦЫ
	    
	    return "[[/"..config["name"].."/|"..args["заголовок"].." "..config["name"].."]]"
    end,
    Formula = function(frame)
	    local pframe = frame:getParent()
	    local config = frame.args -- параметры, переданные САМИМ ШАБЛОНОМ в тексте САМОГО ШАБЛОНА
	    local args = pframe.args -- параметры, переданные ШАБЛОНУ в тексте ВЫЗВАВШЕЙ СТРАНИЦЫ
	    
	    if (args["код"] ~= nil) then
	    	return frame:preprocess("<math id=".."'formula_"..args["код"].."'"..">"..mw.text.trim(config["math"], "\"").."</math>")
	    else
	    	return frame:preprocess("<math>"..mw.text.trim(config["math"], "\"").."</math>")
	    end
    end
}