پرش به محتوا

پودمان:Citation/Formatter: تفاوت میان نسخه‌ها

از ویکی البرز
صفحه‌ای تازه حاوی «-------------------------------------------------------------------------------- -- Module:Citation (Formatter Layer) -- تبدیل داده خام به خروجی قابل نمایش -------------------------------------------------------------------------------- local U = require("Module:Citation/Utilities") local cfg = require("Module:Citation/Configuration") local F = {} --------------------------------------------------------...» ایجاد کرد
 
جزبدون خلاصۀ ویرایش
 
خط ۱: خط ۱:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Module:Citation (Formatter Layer)
-- Module:Citation/Formatter
-- تبدیل داده خام به خروجی قابل نمایش
-- Wiki Alborz Lightweight CS1-like Formatter (Final Stable)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------


local U   = require("Module:Citation/Utilities")
local U = require("Module:Citation/Utilities")
local cfg = require("Module:Citation/Configuration")


local F = {}
local F = {}


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- ساخت لینک
-- ساخت لینک هوشمند (title + url)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function F.formatUrl(url)
function F.formatLink(title, url)
 
     if U.isEmpty(url) then
     if U.isEmpty(url) then
         return ""
         return title or ""
     end
     end


     url = U.makeUrl(url)
     url = U.makeUrl(url)


     return "[" .. url .. " " .. url .. "]"
     if U.isEmpty(title) then
        return "[" .. url .. " " .. url .. "]"
    end
 
    return "[" .. url .. " " .. title .. "]"
end
end


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- italic کردن عنوان
-- italic title
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function F.formatTitle(title)
function F.formatTitle(title)
خط ۳۴: خط ۳۸:


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- نویسنده ساده (فعلاً بدون parsing پیچیده)
-- fallback URL
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function F.formatAuthor(author)
function F.formatUrl(url)
     if U.isEmpty(author) then
     if U.isEmpty(url) then
         return ""
         return ""
     end
     end


     return author
     url = U.makeUrl(url)
end


--------------------------------------------------------------------------------
    return "[" .. url .. " " .. url .. "]"
-- تاریخ ساده (بدون تبدیل تقویم)
--------------------------------------------------------------------------------
function F.formatDate(date)
    if U.isEmpty(date) then
        return ""
    end
 
    return date
end
end


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- بایگانی
-- archive support
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function F.formatArchive(url, date)
function F.formatArchive(url, date)
خط ۶۲: خط ۵۷:
         return ""
         return ""
     end
     end
    url = U.makeUrl(url)


     local parts = {}
     local parts = {}
     table.insert(parts, "بایگانی:")
     table.insert(parts, "بایگانی:")
 
     table.insert(parts, "[" .. url .. " " .. url .. "]")
     table.insert(parts, F.formatUrl(url))


     if not U.isEmpty(date) then
     if not U.isEmpty(date) then
خط ۷۴: خط ۶۹:


     return table.concat(parts, " ")
     return table.concat(parts, " ")
end
--------------------------------------------------------------------------------
-- ساخت یک بخش استاندارد
--------------------------------------------------------------------------------
function F.renderField(label, value)
    if U.isEmpty(value) then
        return ""
    end
    return value
end
--------------------------------------------------------------------------------
-- اتصال Formatter به Core (override ساده)
--------------------------------------------------------------------------------
function F.apply(coreModule)
    -- این بخش بعداً در Citation استفاده می‌شود
    coreModule.format = F
    return coreModule
end
end


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
return F
return F

نسخهٔ کنونی تا ‏۳۰ ژوئن ۲۰۲۶، ساعت ۲۱:۲۰

توضیحات این پودمان می‌تواند در پودمان:Citation/Formatter/توضیحات قرار گیرد.

--------------------------------------------------------------------------------
-- Module:Citation/Formatter
-- Wiki Alborz Lightweight CS1-like Formatter (Final Stable)
--------------------------------------------------------------------------------

local U = require("Module:Citation/Utilities")

local F = {}

--------------------------------------------------------------------------------
-- ساخت لینک هوشمند (title + url)
--------------------------------------------------------------------------------
function F.formatLink(title, url)

    if U.isEmpty(url) then
        return title or ""
    end

    url = U.makeUrl(url)

    if U.isEmpty(title) then
        return "[" .. url .. " " .. url .. "]"
    end

    return "[" .. url .. " " .. title .. "]"
end

--------------------------------------------------------------------------------
-- italic title
--------------------------------------------------------------------------------
function F.formatTitle(title)
    if U.isEmpty(title) then
        return ""
    end

    return "''" .. title .. "''"
end

--------------------------------------------------------------------------------
-- fallback URL
--------------------------------------------------------------------------------
function F.formatUrl(url)
    if U.isEmpty(url) then
        return ""
    end

    url = U.makeUrl(url)

    return "[" .. url .. " " .. url .. "]"
end

--------------------------------------------------------------------------------
-- archive support
--------------------------------------------------------------------------------
function F.formatArchive(url, date)
    if U.isEmpty(url) then
        return ""
    end

    url = U.makeUrl(url)

    local parts = {}
    table.insert(parts, "بایگانی:")
    table.insert(parts, "[" .. url .. " " .. url .. "]")

    if not U.isEmpty(date) then
        table.insert(parts, "(" .. date .. ")")
    end

    return table.concat(parts, " ")
end

--------------------------------------------------------------------------------
return F