Module:YearNav
Documentation for this module may be created at Module:YearNav/doc
-- <nowiki> 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 _, _, OriginalYear = string.find(PageName, "(%d%d%d%d)") 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 return p