Модуль:Portal-inline
Перейти до навігації
Перейти до пошуку
Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]
Цей модуль помічено як К:альфа-модуль (11). У нього можуть вносити редагування треті особи і його можна використати на кількох сторінках, аби перевірити можливі проблеми пов'язані з використанням модуля, використовувати його слід обережно. Вітаються пропозиції щодо нової функціональности чи зміни в механізмах їхнього вводу і виводу. |
Цей модуль Lua використовується на близько 4200 сторінках і його зміни будуть дуже помітними. Будь ласка, перевіряйте будь-які зміни на підсторінках /пісочниці та /тестів цього модуля, або у вашій пісочниці модуля, та зважайте на обговорення змін на сторінці обговорення перед їхнім впровадженням. |
Цей модуль залежить від наступних модулів: |
Цей модуль реалізує Шаблон:Portal-inline. Цей модуль приймає один неіменований параметр, який є порталом посилання, і кілька іменованих параметрів:
size
— необов'язковий; вкажіть|size=tiny
, щоб показати зображення 16×16 замість звичайного розміру.text
— необов'язковий; вкажіть|text=(name)
, щоб з'явилася інша пов'язана назва.short
— необов'язковий; вкажіть|short=anything
, щоб видалити портал із висновку.redlinks
— необов'язковий; вкажіть|redlinks=yes
, показувати портал, якщо на нього є червоне посилання.
Документація вище включена з Модуль:Portal-inline/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниці (ред. | різн.) та тести (створити) цього шаблону. Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цієї сторінки. |
-- determine whether we're being called from a sandbox
local isSandbox = mw.getCurrentFrame():getTitle():find('пісочниця', 1, true)
local sandbox = isSandbox and '/пісочниця' or ''
local getArgs = require('Модуль:Arguments').getArgs
local yesno = require('Модуль:Yesno')
local portalModule = require('Модуль:Портал'..sandbox)
local getImageName = portalModule.image
local checkPortals = portalModule._checkPortals
local processPortalArgs = portalModule._processPortalArgs
local p = {}
-- Function to format error message and tracking category
-- Arguments:
-- errMsg: string, or nil/false if no error
-- trackingCat: string for tracking category (or empty string)
local function formatError(errMsg, trackingCat)
local result = trackingCat or ''
if errMsg then
local errTag = mw.html.create('span')
errTag:addClass("error")
errTag:css("font-size",'100%')
errTag:wikitext("Помилка: "..errMsg)
result = tostring(errTag)..result
end
return result
end
local function image(portal, args)
local size = args.size == "tiny" and "16x16px" or "32x28px"
return string.format('[[Файл:%s|class=noviewer|%s]]',getImageName{portal}, size)
end
local function link(portal, args)
local displayName = ""
if not (args.text == "" or args.text == nil) then
displayName = args.text
elseif args.short then
displayName = portal
else
displayName = " Портал «" .. portal.. "»"
end
return string.format('[[Портал:%s|%s]]',portal,displayName)
end
function p._main(portals, args)
mw.logObject(args)
-- Normalize all arguments
if args.redlinks == 'include' then args.redlinks = true end
for key, default in pairs({tracking=true,redlinks=false,short=false}) do
if args[key] == nil then args[key] = default end
args[key] = yesno(args[key], default)
end
local trackingCat = ''
local errMsg = nil
-- Check for existing categories, drop if not.
-- Possible generate tracking category & error message if needed
args.minPortals = args.minPortals or 1
args.maxPortals = args.maxPortals or 1
portals, trackingCat, errMsg = checkPortals(portals,args)
-- use more specific tracking cat for inline portal
trackingCat = mw.ustring.gsub(trackingCat,"Шаблони порталів","Шаблони порталів в лінію")
-- either too many/few portals, or no portals left after filtering, then return
if errMsg or #portals == 0 then
return formatError(errMsg, trackingCat)
end
return image(portals[1],args)..' '..link(portals[1],args)..(trackingCat or '')
end
function p.main(frame)
local origArgs = getArgs(frame)
local portals, args = processPortalArgs(origArgs)
return p._main(portals, args)
end
return p