Modul:Navpills: Porovnání verzí
Z Bradavice Online Wiki
More actions
založena nová stránka s textem „local mArguments --initialize lazily local p = {} -- Returns a table containing the numbers of the arguments that exist -- for the specified prefix. For example, if the prefix was 'data', and -- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. local function getArgNums(prefix, args) local nums = {} for k, v in pairs(args) do local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num…“ značka: Znovu založeno |
Bez shrnutí editace značka: revertováno |
||
| Řádek 1: | Řádek 1: | ||
local mArguments --initialize lazily | local mArguments -- initialize lazily | ||
local p = {} | local p = {} | ||
-- Returns a table containing the numbers of the arguments that exist | -- Returns a table containing the numbers of the arguments that exist | ||
| Řádek 7: | Řádek 6: | ||
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. | -- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. | ||
local function getArgNums(prefix, args) | local function getArgNums(prefix, args) | ||
local nums = {} | |||
for k, v in pairs(args) do | |||
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$') | |||
if num then table.insert(nums, tonumber(num)) end | |||
end | |||
table.sort(nums) | |||
return nums | |||
end | end | ||
-- Implements {{Navpills}} from the frame | |||
function p.navpills(frame) | |||
mArguments = require('Module:Arguments') | |||
return p._navpills(mArguments.getArgs(frame)) | |||
end | |||
-- | function p._navpills(args) | ||
if not args then | |||
return 'Missing arguments' | |||
end | |||
-- Globální volby (volitelné): | |||
-- overlay = 'on' → zapne černý overlay | |||
-- overlay = 'off' → vypne (default) | |||
local overlayOn = (tostring(args.overlay or 'off') == 'on') | |||
local html = mw.html.create('div') | |||
:addClass('template-navpills') | |||
:attr('role', 'navigation') | |||
for i, _ in ipairs(getArgNums('page', args)) do | |||
local num = tostring(i) | |||
local page = args['page' .. num] | |||
if page then | |||
local text = args['text' .. num] or page | |||
local image = args['image' .. num] | |||
local navpill = mw.html.create('div'):addClass('template-navpill') | |||
if image and image ~= '' then | |||
navpill:addClass('has-bg') | |||
if not overlayOn then | |||
navpill:addClass('no-overlay') | |||
end | |||
navpill:tag('div') | |||
:addClass('template-navpill-background') | |||
-- přidáme class na <img>, ať ho umíme cílit | |||
:wikitext(string.format('[[File:%s|x48px|class=template-navpill-img|link=]]', image)) | |||
end | |||
-- samotný odkaz | |||
navpill:wikitext(string.format('[[%s|%s]]', page, text)) | |||
html:node(navpill) | |||
end | |||
end | |||
-- Vložíme TemplateStyles s naší CSS | |||
return mw.getCurrentFrame():extensionTag{ | |||
name = 'templatestyles', | |||
args = { src = 'Module:Navpills/styles.css' } | |||
} .. tostring(html) | |||
end | end | ||
return p | return p | ||
Verze z 13. 10. 2025, 22:20
Dokumentaci tohoto modulu lze vytvořit na stránce Modul:Navpills/Dokumentace
local mArguments -- initialize lazily
local p = {}
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local function getArgNums(prefix, args)
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
-- Implements {{Navpills}} from the frame
function p.navpills(frame)
mArguments = require('Module:Arguments')
return p._navpills(mArguments.getArgs(frame))
end
function p._navpills(args)
if not args then
return 'Missing arguments'
end
-- Globální volby (volitelné):
-- overlay = 'on' → zapne černý overlay
-- overlay = 'off' → vypne (default)
local overlayOn = (tostring(args.overlay or 'off') == 'on')
local html = mw.html.create('div')
:addClass('template-navpills')
:attr('role', 'navigation')
for i, _ in ipairs(getArgNums('page', args)) do
local num = tostring(i)
local page = args['page' .. num]
if page then
local text = args['text' .. num] or page
local image = args['image' .. num]
local navpill = mw.html.create('div'):addClass('template-navpill')
if image and image ~= '' then
navpill:addClass('has-bg')
if not overlayOn then
navpill:addClass('no-overlay')
end
navpill:tag('div')
:addClass('template-navpill-background')
-- přidáme class na <img>, ať ho umíme cílit
:wikitext(string.format('[[File:%s|x48px|class=template-navpill-img|link=]]', image))
end
-- samotný odkaz
navpill:wikitext(string.format('[[%s|%s]]', page, text))
html:node(navpill)
end
end
-- Vložíme TemplateStyles s naší CSS
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = 'Module:Navpills/styles.css' }
} .. tostring(html)
end
return p