Module:Key and Module:Key/sandbox: Difference between pages
(Difference between pages)
imported>The wub convert to use TemplateStyles - Template:Key press/styles.css |
imported>Juwan adapted from wikt:Module:key press |
||
| Line 1: | Line 1: | ||
local p = {} | |||
local | local key_labels = { | ||
-- Control keys | |||
['backspace'] = '← Backspace', | |||
['caps lock'] = '⇪ Caps Lock', | ['caps lock'] = '⇪ Caps Lock', | ||
['cmd'] = '⌘ Cmd', | ['cmd'] = '⌘ Cmd', | ||
['command'] = '⌘ Command', | ['command'] = '⌘ Command', | ||
['[[ | ['enter'] = '↵ Enter', | ||
['hyper'] = '✦ Hyper', | |||
['menu'] = '≣ Menu', | |||
['meta'] = '◆ Meta', | |||
['opt'] = '⌥ Opt', | ['opt'] = '⌥ Opt', | ||
['option'] = '⌥ Option', | ['option'] = '⌥ Option', | ||
[' | ['shift'] = '⇧ Shift', | ||
['tab'] = 'Tab ↹', | ['tab'] = 'Tab ↹', | ||
['[[ | ['super'] = '❖ Super', | ||
[' | ['win'] = '⊞ Win', | ||
['[[alt]]'] = '[[Alt key|Alt]]', | |||
['[[altgr]]'] = '[[AltGr key|AltGr]]', | |||
['[[backspace]]'] = '← [[Backspace]]', | ['[[backspace]]'] = '← [[Backspace]]', | ||
[' | ['[[caps lock]]'] = '⇪ [[Caps Lock]]', | ||
['[[ | ['[[cmd]]'] = '⌘ [[Command key|Cmd]]', | ||
[' | ['[[command]]'] = '⌘ [[Command key|Command]]', | ||
['[[ | ['[[delete]]'] = '[[Delete key|Delete]]', | ||
['[[end]]'] = '[[End key|End]]', | |||
['[[enter]]'] = '↵ [[Enter key|Enter]]', | |||
['[[esc]]'] = '[[Esc key|Escape]]', | |||
['[[escape]]'] = '[[Esc key|Esc]]', | |||
['[[fn]]'] = '[[Fn key|Fn]]', | |||
['[[home]]'] = '[[Home key|Home]]', | |||
['[[hyper]]'] = '✦ [[Hyper key|Hyper]]', | |||
['[[insert]]'] = '[[Insert key|Insert]]', | |||
['[[menu]]'] = '≣ [[Menu key|Menu]]', | |||
['[[meta]]'] = '◆ [[Meta key|Meta]]', | |||
['[[opt]]'] = '⌥ [[Option key|Opt]]', | |||
['[[option]]'] = '⌥ [[Option key|Option]]', | |||
['[[page down]]'] = '[[Page Up and Page Down keys|Page Down]]', | |||
['[[page up]]'] = '[[Page Up and Page Down keys|Page Up]]', | |||
['[[pgdn]]'] = '[[Page Up and Page Down keys|PgDn]]', | |||
['[[pgup]]'] = '[[Page Up and Page Down keys|PgUp]]', | |||
['[[print screen]]'] = '[[Print Screen]]', | |||
['[[prt sc]]'] = '[[Print Screen|Prt Sc]]', | |||
['[[return]]'] = '↵ [[Enter key|Return]]', | |||
['[[scrlk]]'] = '[[Scroll Lock|ScrLk]]', | |||
['[[scroll lock]]'] = '[[Scroll Lock]]', | |||
['[[shift]]'] = '⇧ [[Shift key|Shift]]', | |||
['[[super]]'] = '❖ [[Super key (keyboard button)|Super]]', | |||
['[[tab]]'] = '[[Tab key|Tab]] ↹', | |||
['[[win]]'] = '⊞ [[Windows key|Win]]', | |||
['[[windows]]'] = '⊞ [[Windows key|Windows]]', | |||
-- Arrow keys | |||
['up'] = '↑', | ['up'] = '↑', | ||
['down'] = '↓', | ['down'] = '↓', | ||
['left'] = '←', | ['left'] = '←', | ||
['right'] = '→', | ['right'] = '→', | ||
['[[ | |||
['[[up]]'] = '[[Arrow key|↑]]', | |||
['[[down]]'] = '[[Arrow key|↓]]', | |||
['[[left]]'] = '[[Arrow key|←]]', | |||
['[[right]]'] = '[[Arrow key|→]]', | |||
-- Characters | |||
['asterisk'] = '*', | ['asterisk'] = '*', | ||
['hash'] = '#', | ['hash'] = '#', | ||
['colon'] = ':', | ['colon'] = ':', | ||
['pipe'] = '|', | ['pipe'] = '|', | ||
['semicolon'] = ';', | ['semicolon'] = ';', | ||
['equals'] = '=', | ['equals'] = '=', | ||
| Line 66: | Line 90: | ||
['r sw'] = 'R↙', | ['r sw'] = 'R↙', | ||
-- PlayStation | -- PlayStation keys | ||
['ex'] = '×', | ['ex'] = '×', | ||
['circle'] = '○', | ['circle'] = '○', | ||
| Line 72: | Line 96: | ||
['triangle'] = '△', | ['triangle'] = '△', | ||
-- Nintendo 64 and GameCube | -- Nintendo 64 and GameCube keys | ||
['c up'] = 'C↑', | ['c up'] = 'C↑', | ||
['c down'] = 'C↓', | ['c down'] = 'C↓', | ||
| Line 83: | Line 107: | ||
} | } | ||
local | local label_aliases = { | ||
['*'] = 'asterisk', | ['*'] = 'asterisk', | ||
['#'] = 'hash', | ['#'] = 'hash', | ||
[':'] = 'colon', | [':'] = 'colon', | ||
[';'] = 'semicolon', | [';'] = 'semicolon', | ||
['l-up'] = 'l up', | ['l-up'] = 'l up', | ||
['l-down'] = 'l down', | ['l-down'] = 'l down', | ||
| Line 111: | Line 129: | ||
['r-nw'] = 'r nw', | ['r-nw'] = 'r nw', | ||
['r-sw'] = 'r sw', | ['r-sw'] = 'r sw', | ||
['ps x'] = 'ex', | ['ps x'] = 'ex', | ||
['ps c'] = 'circle', | ['ps c'] = 'circle', | ||
['ps s'] = 'square', | ['ps s'] = 'square', | ||
['ps t'] = 'triangle', | ['ps t'] = 'triangle', | ||
['c-up'] = 'c up', | ['c-up'] = 'c up', | ||
['c-down'] = 'c down', | ['c-down'] = 'c down', | ||
| Line 125: | Line 145: | ||
} | } | ||
local | local function format_key_press(args) | ||
local result = {} | |||
local chain = args.chain or ' + ' | |||
for i, id in ipairs(args) do | for i, id in ipairs(args) do | ||
local lc = id:lower() | local lc = id:lower() | ||
local text = | local text = key_labels[lc] or key_labels[label_aliases[lc]] or id | ||
local label = mw.html.create("kbd") | |||
:addClass("keyboard-key nowrap") | |||
:wikitext(text) | |||
table.insert(result, tostring(label)) | |||
end | end | ||
return mw.getCurrentFrame():extensionTag{ | return mw.getCurrentFrame():extensionTag{ | ||
name = 'templatestyles', args = { src = 'Template:Key press/styles.css'} | name = 'templatestyles', | ||
} .. | args = { src = 'Template:Key press/styles.css'} | ||
} .. table.concat(result, chain) | |||
end | end | ||
function p.key_press(frame) | |||
return format_key_press(frame:getParent().args) | |||
return | |||
end | end | ||
return | return p | ||