Anda dapat membuat halaman dokumentasi untuk buat pada modul Scribunto ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
-- 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]]']='⇧ [[Tombol Shift|Shift]]', ['enter']='↵ Enter', ['[[enter key|enter]]']='↵ [[Tombol Enter|Enter]]', ['cmd']='⌘ Cmd', ['[[command key|cmd]]']='⌘ [[Tombol Command|Cmd]]', ['command']='⌘ Command', ['[[command key|command]]']='⌘ [[Tombol Command|Command]]', ['opt']='⌥ Opt', ['[[option key|opt]]']='⌥ [[Tombol Option|Opt]]', ['option']='⌥ Option', ['[[option key|option]]']='⌥ [[Tombol Option|Option]]', ['tab']='Tab ↹', ['[[tab key|tab]]']='[[Tombol Tab|Tab]] ↹', ['backspace']='← Backspace', ['[[backspace]]']='← [[Backspace]]', ['win']='⊞ Win', ['[[windows key|win]]']='⊞ [[Tombol Windows|Win]]', ['menu']='≣ Menu', ['[[menu key|menu]]']='≣ [[Tombol Menu|Menu]]', ['up']='↑', ['[[arrow keys|up]]']='[[Tombol panah|↑]]', ['down']='↓', ['[[arrow keys|down]]']='[[Tombol panah|↓]]', ['left']='←', ['[[arrow keys|left]]']='[[Tombol panah|←]]', ['right']='→', ['[[arrow keys|right]]']='[[Tombol panah|→]]', ['asterisk']='*', ['hash']='#', ['[[#]]']='[[Tanda penomoran|#]]', ['colon']=':', ['[[:]]']='[[Titik dua (tanda baca)|:]]', ['pipe']='|', ['[[|]]']='[[Simbol pipa||]]', ['semicolon']=';', ['[[;]]']='[[Titik koma|;]]', ['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=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='Templat: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, }