Bu modulun sənədləşdirmə səhifəsi səhifəsində yaradıla bilər

-- xəta haqqında məlumat

function err(s)
	return "<font color=red>" .. s .. "</font>"
end

function errParamNotSpecified(name)
	return err("<code> parametri göstərilməyib|" .. name .. " = </code>")
end

-- Sətrin sonunda ən azı bir nöqtənin olmasını təmin edir.
function EnsureDot(s)
	return mw.ustring.gsub(s, "([^%.])$", "%1.")
end

-- Əgər varsa sətirdən sonuncu nöqtəni silir.
function RemoveDot(s)
	return mw.ustring.gsub(s, "%.$", "")
end

-- Kursiv
function Italic(s)
	return "''" .. s .. "''"
end

--[[
MathWorld istiqamətində demək olar ki, tərtib edilməmiş istinad:
  path        URL hissəsi, başlayaraq '/'
  title       Əks olunan başlıq
]]
function RawMWLink(frame, path, title)
	local ref_en = frame:expandTemplate({title = "ref-en"})
	return "[http://mathworld.wolfram.com" .. path .. " " .. title .. "]" .. ref_en
end

--[[
entry istiqamətində əks olunmağa hazır istinad:
  urlname     "RubiksCube" "http://mathworld.wolfram.com/RubiksCube.html" saytına istinad üçün
  title       Əks olunmaq üçün başlıq ("Rubik's Cube" öncəki nümunədə)
  author      Müəllif entry (çox vaxt, amma həmişə deyil, "Weisstein, Eric W.")
]]
function MWEntryByAuthorTitleUrlname(frame, author, title, urlname)
	local path = "/" .. urlname .. ".html"
	local link = RawMWLink(frame, path, title)
	local tail = " Wolfram [[MathWorld]] saytında."
	return Italic(EnsureDot(author)) .. " " .. link .. tail
end

--[[ exported functions ]]

local p = {}

-- şablonun realizəsi {{MathWorld}}
function p.MathWorld(_frame)
	-- çağrılan şablonun parametrlərinə birbaşa çıxış
	local frame = _frame:getParent()
	-- urlname
	local urlname = frame.args[1] or frame.args["urlname"] or frame.args["id"]
	if urlname == nil then
		return errParamNotSpecified("urlname")
	end
	-- title
	local title = frame.args[2] or frame.args["title"]
	if title == nil then
		return errParamNotSpecified("title")
	end
	-- author
	local author = frame.args["author"] or "Weisstein, Eric W"
	-- istinadı tərtib et
	return MWEntryByAuthorTitleUrlname(frame, author, title, urlname)
end

-- şablonun realizəsi {{MathWorld3}}
function p.MathWorld3(_frame)
	local function UrlnameFromTitle(title)
		local replacements = {
			{"[ ']", ""},
			{"[áâ]", "a"},
			{"é", "e"},
			{"ö", "oe"}
		}
		local s = title
		for i, r in ipairs(replacements) do
			s = mw.ustring.gsub(s, r[1], r[2])
		end
		return s
	end
	local frame = _frame:getParent()
	-- title, urlname
	local title
	local urlname
	if frame.args[1] and frame.args[2] then
		-- {{MathWorld}} da olduğu kimi sıralama
		urlname, title = frame.args[1], frame.args[2]
	else
		title = frame.args[1]
		if title == nil then
			return err("başlıq göstərilməyib (nümunə: <code>" ..
				mw.text.nowiki("{{MathWorld3|Rubik's Cube}}") ..
				"</code>)")
		end
		urlname = UrlnameFromTitle(title)
	end
	-- author
	local author = frame.args["author"] or "Weisstein, Eric W"
	-- istinadı tərtib et
	return MWEntryByAuthorTitleUrlname(frame, author, title, urlname)
end

return p
Mənbə — ""

Informasiya Melumat Axtar

Anarim.Az

Sayt Rehberliyi ile Elaqe

Saytdan Istifade Qaydalari

Anarim.Az 2004-2023