Модуль:Суседнія катэгорыі
Выгляд
Гэты модуль стварае й рэалізуе шаблён {{Суседнія катэгорыі}}.
require('strict')
local getArgs = require('Модуль:Аргумэнты').getArgs
local hatnote = require('Модуль:Іншае значэньне')._hatnote
local formatLink = require('Модуль:Фармат спасылкі')._formatLink
local p = {}
local catNS = mw.site.namespaces.Category.id -- ID нумар прасторы назваў катэгорыяў
-- Вяртае спасылку віду «[[Катэгорыя:Назва|Назва]]»
local function quotedLink(title)
if not title or not title.exists then return nil end
-- title.fullText -> "Катэгорыя:Назва", title.text -> "Назва"
return '«[[:' .. title.fullText .. '|' .. title.text .. ']]»'
end
-- Апрацоўвае [[Шаблён:Суседнія катэгорыі]] праз Lua
-- Аргумэнты:
-- prevTitle -- mw.title.Title для папярэдняй катэгорыі
-- nextTitle -- mw.title.Title для наступнай катэгорыі
-- Вяртае:
-- верхнюю зноску з надпісам «глядзіце таксама» для наступнай і/альбо папярэдняй катэгорыі.
function p._pair(prevTitle, nextTitle)
local prevLink = quotedLink(prevTitle)
local nextLink = quotedLink(nextTitle)
local note = ''
if prevLink and nextLink then -- калі абедзьве
note = mw.ustring.format('Глядзіце таксама папярэднюю катэгорыю %s і наступную катэгорыю %s', prevLink, nextLink)
elseif prevLink then -- калі толькі prevTitle
note = mw.ustring.format('Глядзіце таксама папярэднюю катэгорыю %s', prevLink)
elseif nextLink then -- if only nextTitle
note = mw.ustring.format('Глядзіце таксама наступную катэгорыю %s', nextLink)
else -- калі ніводнай катэгорыі
return mw.title.getCurrentTitle().namespace == catNS and '[[Катэгорыя:Вікіпэдыя:Старонкі зь няслушна ўключанымі шаблёнамі]]' or ''
end
return hatnote(note, {extraclasses = 'seealso'})
end
function p.catPair(frame)
local args = getArgs(frame, {wrappers={'Шаблён:Суседнія катэгорыі'}})
local prevTitle = args[1] and mw.title.new(args[1],catNS)
local nextTitle = args[2] and mw.title.new(args[2],catNS)
return p._pair(prevTitle, nextTitle)
end
function p.prevCat(frame)
local args = getArgs(frame, {wrappers={'Шаблён:Папярэдняя катэгорыя'}})
local prevTitle = args[1] and mw.title.new(args[1], catNS)
return p._pair(prevTitle, nil)
end
function p.nextCat(frame)
local args = getArgs(frame, {wrappers={'Шаблён:Наступная катэгорыя'}})
local nextTitle = args[1] and mw.title.new(args[1], catNS)
return p._pair(nil, nextTitle)
end
return p