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

Module:Key: Difference between revisions

From Summertime Saga Wiki
Casiope (talk | contribs)
mNo edit summary
Casiope (talk | contribs)
mNo edit summary
 
(8 intermediate revisions by the same user not shown)
Line 2: Line 2:


local kbdPrefix =
local kbdPrefix =
'<kbd class=' ..
'<kbd style=' ..
'"keyboard-key nowrap" ' ..
'"border:2px solid #000; ' ..
'style="border:2px solid #aaa; ' ..
'border-radius:0.2em; ' ..
'border-radius:0.2em; -webkit-border-radius: 0.2em; ' ..
'border-style:outset; ' ..
'border-style:outset; ' ..
'background-color:#F9F9F9; ' ..
'background-color:#F9F9F9; ' ..
'background-image:linear-gradient(to bottom, #FCFCFC, #E0E0E0); background-image:-o-linear-gradient(top, #FCFCFC, #E0E0E0); background-image:-webkit-linear-gradient(top, #FCFCFC, #E0E0E0); ' ..
'background-image:linear-gradient(to bottom, #FCFCFC, #E0E0E0); ' ..
-- Force black color to fix [[phab:T200258]]
'color:#000; ' ..
'padding:0.1em 0.3em; ' ..
'padding:0.1em 0.3em; ' ..
'font-family:inherit; ' ..
'font-family:inherit; ' ..
'font-size:0.9em;">'
'font-size:0.9em; ' ..
'white-space:nowrap;">'


local kbdSuffix = '</kbd>'
local kbdSuffix = '</kbd>'
Line 77: Line 75:
['r nw'] = 'R↖',
['r nw'] = 'R↖',
['r sw'] = 'R↙',
['r sw'] = 'R↙',
-- PlayStation.
['ex'] = '×',
['circle'] = '○',
['square'] = '□',
['triangle'] = '△',
-- Nintendo 64 and GameCube.
['c up'] = 'C↑',
['c down'] = 'C↓',
['c left'] = 'C←',
['c right'] = 'C→',
['c ne'] = 'C↗',
['c se'] = 'C↘',
['c nw'] = 'C↖',
['c sw'] = 'C↙',
}
}


Line 123: Line 105:
['r-nw'] = 'r nw',
['r-nw'] = 'r nw',
['r-sw'] = 'r sw',
['r-sw'] = 'r sw',
['ps x'] = 'ex',
['ps c'] = 'circle',
['ps s'] = 'square',
['ps t'] = 'triangle',
['c-up'] = 'c up',
['c-down'] = 'c down',
['c-left'] = 'c left',
['c-right'] = 'c right',
['c-ne'] = 'c ne',
['c-se'] = 'c se',
['c-nw'] = 'c nw',
['c-sw'] = 'c sw',
}
}



Latest revision as of 13:53, 24 July 2020

-- This module implements .

local kbdPrefix = ''

local kbdSuffix = ''

local keyText = { ['caps lock'] = '⇪ Caps Lock', ['caps lock'] = '⇪ Caps Lock', ['shift'] = '⇧ Shift', ['shift'] = '⇧ Shift', ['enter'] = '↵ Enter', ['enter'] = '↵ Enter', ['cmd'] = '⌘ Cmd', ['cmd'] = '⌘ Cmd', ['command'] = '⌘ Command', ['command'] = '⌘ Command', ['opt'] = '⌥ Opt', ['opt'] = '⌥ Opt', ['option'] = '⌥ Option', ['option'] = '⌥ Option', ['tab'] = 'Tab ↹', ['tab'] = 'Tab ↹', ['backspace'] = '← Backspace', ['backspace'] = '← Backspace', ['win'] = '⊞ Win', ['win'] = '⊞ Win', ['menu'] = '≣ Menu', ['menu'] = '≣ Menu', ['up'] = '↑', ['up'] = '', ['down'] = '↓', ['down'] = '', ['left'] = '←', ['left'] = '', ['right'] = '→', ['right'] = '', ['asterisk'] = '*', ['hash'] = '#', ['#'] = '#', ['colon'] = ':', ['[[:]]'] = ':', ['pipe'] = '|', ['[[|]]'] = '|', ['semicolon'] = ';', [';'] = ';', ['equals'] = '=',

-- Left & right analog sticks. ['l up'] = 'L↑', ['l down'] = 'L↓', ['l left'] = 'L←', ['l right'] = 'L→', ['l ne'] = 'L↗', ['l se'] = 'L↘', ['l nw'] = 'L↖', ['l sw'] = 'L↙',

['r up'] = 'R↑', ['r down'] = 'R↓', ['r left'] = 'R←', ['r right'] = 'R→', ['r ne'] = 'R↗', ['r se'] = 'R↘', ['r nw'] = 'R↖', ['r sw'] = 'R↙', }

local keyAlias = { -- ['alternate name for key (alias)'] = 'name for key used in key table' ['cmd'] = 'cmd', ['command'] = 'command', ['opt'] = 'opt', ['option key'] = 'option', ['option'] = 'option', ['win'] = 'win', ['*'] = 'asterisk', ['#'] = 'hash', [':'] = 'colon', [';'] = 'semicolon', ['l-up'] = 'l up', ['l-down'] = 'l down', ['l-left'] = 'l left', ['l-right'] = 'l right', ['l-ne'] = 'l ne', ['l-se'] = 'l se', ['l-nw'] = 'l nw', ['l-sw'] = 'l sw', ['r-up'] = 'r up', ['r-down'] = 'r down', ['r-left'] = 'r left', ['r-right'] = 'r right', ['r-ne'] = 'r ne', ['r-se'] = 'r se', ['r-nw'] = 'r nw', ['r-sw'] = 'r sw', }

local Collection = {} Collection.__index = Collection do function Collection:add(item) if item ~= nil then self.n = self.n + 1 self[self.n] = item end end function Collection:join(sep) return table.concat(self, sep) end function Collection:sort(comp) table.sort(self, comp) end function Collection.new() return setmetatable({n = 0}, Collection) end end

local function keyPress(args) local chainNames = { 'chain first', 'chain second', 'chain third', 'chain fourth', 'chain fifth', 'chain sixth', 'chain seventh', 'chain eighth', 'chain ninth', } local result = Collection.new() local chainDefault = args.chain or '+' for i, id in ipairs(args) do if i > 1 then result:add(args[chainNames[i - 1]] or chainDefault) end local lc = id:lower() local text = keyText[lc] or keyText[keyAlias[lc]] or id result:add(kbdPrefix .. text .. kbdSuffix) end return result:join() end

local function keypress(frame) -- Called by "...". -- Using the template doubles the post‐expand include size. return keyPress(frame:getParent().args) end

local function press(frame) -- Called by "...". return keyPress(frame.args) end

return { keypress = keypress, press = press, }