Module:Keys

Revision as of 18:07, 2 September 2026 by ReisuDesign (talk | contribs) (Created page with "local p = {} function p.keys(frame) local args = frame if frame == mw.getCurrentFrame() then args = frame:getParent().args end local symbols = mw.loadData('Module:Keys/Symbols') local keys = {} for _, key in ipairs(args) do table.insert(keys, tostring(p.key(mw.text.trim(key), symbols))) end return table.concat(keys, ' + ') end function p.key(key, symbols) if key == '' or key == nil then return '' end local value = symbols[key:lower()] or...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Module documentation

This module implements {{Keys}}.

local p = {}

function p.keys(frame)
	local args = frame
	if frame == mw.getCurrentFrame() then
		args = frame:getParent().args
	end
	
	local symbols = mw.loadData('Module:Keys/Symbols')
	local keys = {}
	for _, key in ipairs(args) do
		table.insert(keys, tostring(p.key(mw.text.trim(key), symbols)))
	end
	
	return table.concat(keys, ' + ')
end

function p.key(key, symbols)
	if key == '' or key == nil then return '' end
	
	local value = symbols[key:lower()] or key
	if (string.find(value, 'File')) then
		return mw.html.create('kbd')
			:attr('title', key:lower())
			:wikitext(value)
	else
		return mw.html.create('kbd')
			:addClass('custom-key nowrap')
			:attr('title', value)
			:wikitext(value)
	end
end

return p