<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://wikialborz.com/history/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Citation/Utilities?feed=atom</id>
	<title>پودمان:Citation/Utilities - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://wikialborz.com/history/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Citation/Utilities?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://wikialborz.com/history/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Citation/Utilities"/>
	<updated>2026-08-18T08:55:24Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Citation/Utilities&amp;diff=10403&amp;oldid=prev</id>
		<title>Modir: صفحه‌ای تازه حاوی «-------------------------------------------------------------------------------- -- Module:Citation/Utilities -- بخش ۱: توابع پایه عمومی --------------------------------------------------------------------------------  local U = {}  -------------------------------------------------------------------------------- -- حذف فاصله‌های اضافی ابتدا و انتها -----------------------------------------...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Citation/Utilities&amp;diff=10403&amp;oldid=prev"/>
		<updated>2026-06-30T20:27:31Z</updated>

		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «-------------------------------------------------------------------------------- -- Module:Citation/Utilities -- بخش ۱: توابع پایه عمومی --------------------------------------------------------------------------------  local U = {}  -------------------------------------------------------------------------------- -- حذف فاصله‌های اضافی ابتدا و انتها -----------------------------------------...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
-- Module:Citation/Utilities&lt;br /&gt;
-- بخش ۱: توابع پایه عمومی&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local U = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- حذف فاصله‌های اضافی ابتدا و انتها&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.trim(s)&lt;br /&gt;
    if type(s) ~= &amp;quot;string&amp;quot; then&lt;br /&gt;
        return s&lt;br /&gt;
    end&lt;br /&gt;
    return mw.text.trim(s)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- بررسی تهی بودن مقدار&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.isEmpty(v)&lt;br /&gt;
    return v == nil or v == &amp;quot;&amp;quot; or (type(v) == &amp;quot;string&amp;quot; and mw.text.trim(v) == &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- تبدیل مقدار به رشته امن&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.toString(v)&lt;br /&gt;
    if v == nil then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return tostring(v)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- اتصال لیست با جداکننده&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.join(list, sep)&lt;br /&gt;
    if type(list) ~= &amp;quot;table&amp;quot; then&lt;br /&gt;
        return U.toString(list)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local out = {}&lt;br /&gt;
    for _, v in ipairs(list) do&lt;br /&gt;
        if not U.isEmpty(v) then&lt;br /&gt;
            table.insert(out, U.trim(v))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat(out, sep or &amp;quot;، &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- اگر مقدار وجود داشت، پیشوند + مقدار&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.prefix(label, value)&lt;br /&gt;
    if U.isEmpty(value) then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return label .. U.toString(value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- تبدیل nil به مقدار پیش‌فرض&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.default(v, d)&lt;br /&gt;
    if U.isEmpty(v) then&lt;br /&gt;
        return d&lt;br /&gt;
    end&lt;br /&gt;
    return v&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- حذف HTML ساده (حداقلی، نه کامل)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.stripHtml(s)&lt;br /&gt;
    if type(s) ~= &amp;quot;string&amp;quot; then&lt;br /&gt;
        return s&lt;br /&gt;
    end&lt;br /&gt;
    return mw.text.killMarkers(&lt;br /&gt;
        mw.text.unstripNoWiki(&lt;br /&gt;
            mw.text.decode(s)&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- ایمن‌سازی لینک ساده&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.makeUrl(url)&lt;br /&gt;
    if U.isEmpty(url) then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    url = U.trim(url)&lt;br /&gt;
&lt;br /&gt;
    -- اگر پروتکل ندارد&lt;br /&gt;
    if not url:match(&amp;quot;^https?://&amp;quot;) then&lt;br /&gt;
        url = &amp;quot;https://&amp;quot; .. url&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- تبدیل ساده به Italic&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.italic(s)&lt;br /&gt;
    if U.isEmpty(s) then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. s .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- حذف کاراکترهای اضافی انتهای رشته (نقطه و فاصله)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function U.cleanEnd(s)&lt;br /&gt;
    if type(s) ~= &amp;quot;string&amp;quot; then&lt;br /&gt;
        return s&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return (s:gsub(&amp;quot;[%s%.،]+$&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
return U&lt;/div&gt;</summary>
		<author><name>Modir</name></author>
	</entry>
</feed>