Module:Keys
Jump to navigation
Jump to search
local p = {} p.keys = function( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args end local keys = {} for _, key in ipairs( args ) do key = mw.text.trim( key ) if key ~= '+' and key:find( '%+' ) then local comboKeys = {} for comboKey in mw.text.gsplit( key, '%s*%+%s*' ) do table.insert( comboKeys, p.key( comboKey ) ) end table.insert( keys, table.concat( comboKeys, ' + ' ) ) else table.insert( keys, p.key( key ) ) end end return table.concat( keys ) end p.key = function( key ) if key == '' then return '' end local symbols = mw.title.new( 'Module:Keys/Symbols').exists and mw.loadData('Module:Keys/Symbols') or mw.loadData( 'Dev:Keys/Symbols' ) return '<kbd class="key nowrap" style="' .. table.concat( { 'background-color: #f8f9fa', 'color: #222', 'font-size: 80%', 'font-family: inherit', 'font-weight: bold', 'border: 1px solid #c8ccd1', 'border-radius: 2px', 'box-shadow: 0 1px 0 rgba(0,0,0,0.2), 0 0 0 2px #fff inset', 'padding: 0.1em 0.4em', 'text-shadow: 0 1px 0 #fff', 'text-align: center' }, ';' ) .. '">' .. ( symbols[key:lower()] or key ) .. '</kbd>' end return p