Jump to content
Wikipedia The Free Encyclopedia

Module:Key

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
[画像:Warning] This Lua module is used in MediaWiki:Clearyourcache , and on approximately 4,200 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.

Implements {{key press }}

The above documentation is transcluded from Module:Key/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.

 -- 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']='&#42;',
 ['hash']='&#35;',
 ['[[#]]']='[[Number sign|#]]',
 ['colon']='&#58;',
 ['[[:]]']='[[Colon (punctuation)|:]]',
 ['pipe']='&#124;',
 ['[[|]]']='[[Pipe symbol|&#124;]]',
 ['semicolon']='&#59;',
 ['[[;]]']='[[Semi-colon|&#59;]]',
 ['equals']='&#61;',

 -- 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=Collection
 do
 functionCollection:add(item)
 ifitem~=nilthen
 self.n=self.n+1
 self[self.n]=item
 end
 end
 functionCollection:join(sep)
 returntable.concat(self,sep)
 end
 functionCollection:sort(comp)
 table.sort(self,comp)
 end
 functionCollection.new()
 returnsetmetatable({n=0},Collection)
 end
 end

 localfunctionkeyPress(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)do
 ifi>1then
 result:add(args[chainNames[i-1]]orchainDefault)
 end
 locallc=id:lower()
 localtext=keyText[lc]orkeyText[keyAlias[lc]]orid
 result:add(kbdPrefix..text..kbdSuffix)
 end
 returnmw.getCurrentFrame():extensionTag{
 name='templatestyles',args={src='Template:Key press/styles.css'}
 }..result:join()
 end

 localfunctionkeypress(frame)
 -- Called by "{{key press|...}}".
 -- Using the template doubles the post‐expand include size.
 returnkeyPress(frame:getParent().args)
 end

 localfunctionpress(frame)
 -- Called by "{{#invoke:key|press|...}}".
 returnkeyPress(frame.args)
 end

 return{
 keypress=keypress,
 press=press,
 }

AltStyle によって変換されたページ (->オリジナル) /