メニューを切り替える
個人設定メニューを切り替える
個人メニューを切り替える
ログインしていません
編集を行うと、IPアドレスが公開されます。

「モジュール:Navpills」の版間の差分

提供: いろり鯖 / Hytale日本鯖Wiki
編集の要約なし
タグ: 差し戻し済み
編集の要約なし
タグ: 手動差し戻し
19行目: 19行目:
--Implements {{Navpills}} from the frame
--Implements {{Navpills}} from the frame
function p.navpills( frame )
function p.navpills( frame )
mArguments = require( 'モジュール:Arguments' )
mArguments = require( 'Module:Arguments' )
return p._navpills( mArguments.getArgs( frame ) )
return p._navpills( mArguments.getArgs( frame ) )
end
end
45行目: 45行目:


return mw.getCurrentFrame():extensionTag{
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'モジュール:Navpills/styles.css' }
name = 'templatestyles', args = { src = 'Module:Navpills/styles.css' }
} .. tostring( html )
} .. tostring( html )
end
end


return p
return p

2026年1月10日 (土) 02:57時点における版

このモジュールについての説明文ページを モジュール:Navpills/doc に作成できます

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