Modul:Navpills: Porovnání verzí
Z Bradavice Online Wiki
More actions
Bez shrnutí editace značka: revertováno |
značka: vrácení zpět |
||
| Řá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 6: | Řádek 7: | ||
-- '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) | --Implements {{Navpills}} from the frame | ||
function p.navpills( frame ) | |||
mArguments = require( 'Module:Arguments' ) | |||
return p._navpills( mArguments.getArgs( frame ) ) | |||
end | end | ||
function p._navpills(args) | function p._navpills( args ) | ||
if not args then | |||
return 'Missing arguments' | |||
end | |||
local html = mw.html.create( 'div' ):addClass( 'template-navpills' ):attr( 'role', 'navigation' ) | |||
for i, _ in ipairs( getArgNums( 'page', args ) ) do | |||
if not args[ 'page' .. i ] then return end | |||
local num = tostring( i ) | |||
local navpill = mw.html.create('div'):addClass('template-navpill') | |||
if args[ 'image' .. i ] then | |||
navpill:tag('div'):addClass('template-navpill-background') | |||
:wikitext( string.format( '[[File:%s|x48px|link=]]', args[ 'image' .. num ] ) ) | |||
end | |||
navpill:wikitext( string.format( '[[%s|%s]]', args[ 'page' .. num ], args[ 'text' .. num ] or args[ 'page' .. num ] ) ) | |||
html:node(navpill) | |||
end | |||
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:21
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
local html = mw.html.create( 'div' ):addClass( 'template-navpills' ):attr( 'role', 'navigation' )
for i, _ in ipairs( getArgNums( 'page', args ) ) do
if not args[ 'page' .. i ] then return end
local num = tostring( i )
local navpill = mw.html.create('div'):addClass('template-navpill')
if args[ 'image' .. i ] then
navpill:tag('div'):addClass('template-navpill-background')
:wikitext( string.format( '[[File:%s|x48px|link=]]', args[ 'image' .. num ] ) )
end
navpill:wikitext( string.format( '[[%s|%s]]', args[ 'page' .. num ], args[ 'text' .. num ] or args[ 'page' .. num ] ) )
html:node(navpill)
end
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Navpills/styles.css' }
} .. tostring( html )
end
return p