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