Module:Key
Appearance
![]() | This Lua module is used in MediaWiki:Clearyourcache, and on approximately 4,600 pages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid major disruption, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Please discuss changes on the talk page before implementing them. |
![]() | This module uses TemplateStyles: |
Implements {{key press}}
-- This module implements {{key press}}.localkbdPrefix='<kbd class="keyboard-key nowrap">'localkbdSuffix='</kbd>'localkeyText={['caps lock']='⇪ Caps Lock',['[[caps lock]]']='⇪ [[Caps Lock]]',['shift']='⇧ Shift',['[[shift key|shift]]']='⇧ [[Shift key|Shift]]',['enter']='↵ Enter',['[[enter key|enter]]']='↵ [[Enter key|Enter]]',['cmd']='⌘ Cmd',['[[command key|cmd]]']='⌘ [[Command key|Cmd]]',['command']='⌘ Command',['[[command key|command]]']='⌘ [[Command key|Command]]',['opt']='⌥ Opt',['[[option key|opt]]']='⌥ [[Option key|Opt]]',['option']='⌥ Option',['[[option key|option]]']='⌥ [[Option key|Option]]',['tab']='Tab ↹',['[[tab key|tab]]']='[[Tab key|Tab]] ↹',['backspace']='← Backspace',['[[backspace]]']='← [[Backspace]]',['win']='⊞ Win',['[[windows key|win]]']='⊞ [[Windows key|Win]]',['menu']='≣ Menu',['[[menu key|menu]]']='≣ [[Menu key|Menu]]',['up']='↑',['[[arrow keys|up]]']='[[Arrow keys|↑]]',['down']='↓',['[[arrow keys|down]]']='[[Arrow keys|↓]]',['left']='←',['[[arrow keys|left]]']='[[Arrow keys|←]]',['right']='→',['[[arrow keys|right]]']='[[Arrow keys|→]]',['asterisk']='*',['hash']='#',['[[#]]']='[[Number sign|#]]',['colon']=':',['[[:]]']='[[Colon (punctuation)|:]]',['pipe']='|',['[[|]]']='[[Pipe symbol||]]',['semicolon']=';',['[[;]]']='[[Semi-colon|;]]',['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↙',-- 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↙',}localkeyAlias={-- ['alternate name for key (alias)'] = 'name for key used in key table'['[[cmd key|cmd]]']='[[command key|cmd]]',['[[cmd key|command]]']='[[command key|command]]',['[[opt key|opt]]']='[[option key|opt]]',['[[option key]]']='[[option key|option]]',['[[opt key|option]]']='[[option key|option]]',['[[win key|win]]']='[[windows key|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',['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',}localCollection={}Collection.__index=CollectiondofunctionCollection:add(item)ifitem~=nilthenself.n=self.n+1self[self.n]=itemendendfunctionCollection:join(sep)returntable.concat(self,sep)endfunctionCollection:sort(comp)table.sort(self,comp)endfunctionCollection.new()returnsetmetatable({n=0},Collection)endendlocalfunctionkeyPress(args)localchainNames={'chain first','chain second','chain third','chain fourth','chain fifth','chain sixth','chain seventh','chain eighth','chain ninth',}localresult=Collection.new()localchainDefault=args.chainor'+'fori,idinipairs(args)doifi>1thenresult:add(args[chainNames[i-1]]orchainDefault)endlocallc=id:lower()localtext=keyText[lc]orkeyText[keyAlias[lc]]oridresult:add(kbdPrefix..text..kbdSuffix)endreturnmw.getCurrentFrame():extensionTag{name='templatestyles',args={src='Template:Key press/styles.css'}}..result:join()endlocalfunctionkeypress(frame)-- Called by "{{key press|...}}".-- Using the template doubles the post‐expand include size.returnkeyPress(frame:getParent().args)endlocalfunctionpress(frame)-- Called by "{{#invoke:key|press|...}}".returnkeyPress(frame.args)endreturn{keypress=keypress,press=press,}