Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Navpills

From AstRO
Revision as of 15:35, 29 July 2025 by Astro-adm (talk | contribs) (Created page with "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.s...")

(diff) ← Older revision | Approved revision (diff) | Latest revision (diff) | Newer revision → (diff)

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 Script error: No such module "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', args[ 'image' .. num ] ) ) end

navpill:wikitext( string.format( '%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