Module:YearNav: Difference between revisions

From JJSWiki
Jump to navigation Jump to search
(So many years I'm not sure what those underscores are doing... and the next line is throwing errors about OriginalYear so I guess something is going wrong with the previous line... play time.)
Tag: Reverted
No edit summary
Tag: Reverted
Line 19: Line 19:
     --PageName = "1987 Sandwiches"
     --PageName = "1987 Sandwiches"


     OriginalYear = string.find(PageName, "(%d%d%d%d)")
     _, _, OriginalYear = string.find(PageName, "(%d%d%d%d)")
    DebugOutput = "ThisPageTitle " .. ThisPageTitle .. " Prefix " .. Prefix .. " Namespace " .. Namespace .. " PageName " .. PageName .. " Original Year " .. OriginalYear
    return DebugOutput
end
 
function p.fakesoitwillshutup(frame)
     PageWithout = string.gsub(PageName, OriginalYear, "@@@@")
     PageWithout = string.gsub(PageName, OriginalYear, "@@@@")



Revision as of 19:07, 2 April 2026

Documentation for this module may be created at Module:YearNav/doc

local p = {}

function p.YearNav(frame)
    Pattern = frame.args[1] or -1

    if Pattern==-1 then
        Pattern = "####-10 ・・ ####-1 ・ '''####''' ・ ####+1 ・・ ####+10" --Default. Will be overwritten if something was there.
        for i,v in pairs(frame.args) do
            Pattern= i .. "=" .. v
        end
    end

    ThisPageTitle = mw.title.getCurrentTitle()
    Prefix = ThisPageTitle.nsText
    Namespace = ThisPageTitle.namespace
    PageName = ThisPageTitle.text
    --Prefix = "Category"
    --Namespace = 0
    --PageName = "1987 Sandwiches"

    _, _, OriginalYear = string.find(PageName, "(%d%d%d%d)")
    DebugOutput = "ThisPageTitle " .. ThisPageTitle .. " Prefix " .. Prefix .. " Namespace " .. Namespace .. " PageName " .. PageName .. " Original Year " .. OriginalYear
    return DebugOutput
end

function p.fakesoitwillshutup(frame)
    PageWithout = string.gsub(PageName, OriginalYear, "@@@@")

    CurrentText = Pattern

    itsthere, _, _, _ = string.find(CurrentText, "####([%+%-])(%d+)")

    while itsthere do --Continue while there are still instances in the pattern to alter
        _, _, plusminus, amount = string.find(CurrentText, "####([%+%-])(%d+)")
        if plusminus=="-" then
            NewYear = OriginalYear - amount
        else --assume it's plus
            NewYear = OriginalYear + amount
        end
        NewPageName = string.gsub(PageWithout, "@@@@", NewYear)
        if Namespace==0 then
            ReplacementSection = "[[" .. NewPageName .. "]]"
        else
            ReplacementSection = "[[:" .. Prefix .. ":" .. NewPageName .. "|" .. NewPageName .. "]]"
        end
        CurrentText = string.gsub(CurrentText, "####[%+%-]%d+", ReplacementSection, 1)
        itsthere, _, _, _ = string.find(CurrentText, "####([%+%-])(%d+)")
    end

    CurrentText = string.gsub(CurrentText, "####", PageName)

    return CurrentText

end

function p.JustTheYear(frame)
	PageName=frame.args[1] or -1
    if PageName==-1 then
    	ThisPageTitle = mw.title.getCurrentTitle()
    	PageName = ThisPageTitle.text
    end

    _, _, OriginalYear = string.find(PageName, "(%d%d%d%d)")

    return OriginalYear
end

return p