<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pttlink.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AKey</id>
	<title>Module:Key - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pttlink.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AKey"/>
	<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:Key&amp;action=history"/>
	<updated>2026-04-06T21:14:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Module:Key&amp;diff=6609&amp;oldid=prev</id>
		<title>Kg7qin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:Key&amp;diff=6609&amp;oldid=prev"/>
		<updated>2022-01-21T17:28:45Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:28, 21 January 2022&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff::1.12:old-6608:rev-6609 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kg7qin</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Module:Key&amp;diff=6608&amp;oldid=prev</id>
		<title>Mediawiki&gt;WOSlinker: remove moz, o and webkit as standard now well supported</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:Key&amp;diff=6608&amp;oldid=prev"/>
		<updated>2021-01-01T12:13:44Z</updated>

		<summary type="html">&lt;p&gt;remove moz, o and webkit as standard now well supported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{key press}}.&lt;br /&gt;
&lt;br /&gt;
local kbdPrefix =&lt;br /&gt;
	'&amp;lt;kbd class=' ..&lt;br /&gt;
	'&amp;quot;keyboard-key nowrap&amp;quot; ' ..&lt;br /&gt;
	'style=&amp;quot;border: 1px solid #aaa; ' ..&lt;br /&gt;
	-- The following is an expansion of {{border-radius|0.2em}}&lt;br /&gt;
	'border-radius: 0.2em; ' ..&lt;br /&gt;
	-- The following is an expansion of {{box-shadow|0.1em|0.1em|0.2em|rgba(0,0,0,0.1)}}&lt;br /&gt;
	'box-shadow: 0.1em 0.1em 0.2em rgba(0,0,0,0.1); ' ..&lt;br /&gt;
	'background-color: #f9f9f9; ' ..&lt;br /&gt;
	-- The following is an expansion of {{linear-gradient|top|#eee, #f9f9f9, #eee}}&lt;br /&gt;
	'background-image: linear-gradient(to bottom, #eee, #f9f9f9, #eee); ' ..&lt;br /&gt;
	-- Force black color to fix [[phab:T200258]]&lt;br /&gt;
	'color: #000; ' ..&lt;br /&gt;
	'padding: 0.1em 0.3em; ' ..&lt;br /&gt;
	'font-family: inherit; ' ..&lt;br /&gt;
	'font-size: 0.85em;&amp;quot;&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
local kbdSuffix = '&amp;lt;/kbd&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
local keyText = {&lt;br /&gt;
	['caps lock'] = '⇪ Caps Lock',&lt;br /&gt;
	['[[caps lock]]'] = '⇪ [[Caps Lock]]',&lt;br /&gt;
	['shift'] = '⇧ Shift',&lt;br /&gt;
	['[[shift key|shift]]'] = '⇧ [[Shift key|Shift]]',&lt;br /&gt;
	['enter'] = '↵ Enter',&lt;br /&gt;
	['[[enter key|enter]]'] = '↵ [[Enter key|Enter]]',&lt;br /&gt;
	['cmd'] = '⌘ Cmd',&lt;br /&gt;
	['[[command key|cmd]]'] = '⌘ [[Command key|Cmd]]',&lt;br /&gt;
	['command'] = '⌘ Command',&lt;br /&gt;
	['[[command key|command]]'] = '⌘ [[Command key|Command]]',&lt;br /&gt;
	['opt'] = '⌥ Opt',&lt;br /&gt;
	['[[option key|opt]]'] = '⌥ [[Option key|Opt]]',&lt;br /&gt;
	['option'] = '⌥ Option',&lt;br /&gt;
	['[[option key|option]]'] = '⌥ [[Option key|Option]]',&lt;br /&gt;
	['tab'] = 'Tab ↹',&lt;br /&gt;
	['[[tab key|tab]]'] = '[[Tab key|Tab]] ↹',&lt;br /&gt;
	['backspace'] = '← Backspace',&lt;br /&gt;
	['[[backspace]]'] = '← [[Backspace]]',&lt;br /&gt;
	['win'] = '⊞ Win',&lt;br /&gt;
	['[[windows key|win]]'] = '⊞ [[Windows key|Win]]',&lt;br /&gt;
	['menu'] = '≣ Menu',&lt;br /&gt;
	['[[menu key|menu]]'] = '≣ [[Menu key|Menu]]',&lt;br /&gt;
	['up'] = '↑',&lt;br /&gt;
	['[[arrow keys|up]]'] = '[[Arrow keys|↑]]',&lt;br /&gt;
	['down'] = '↓',&lt;br /&gt;
	['[[arrow keys|down]]'] = '[[Arrow keys|↓]]',&lt;br /&gt;
	['left'] = '←',&lt;br /&gt;
	['[[arrow keys|left]]'] = '[[Arrow keys|←]]',&lt;br /&gt;
	['right'] = '→',&lt;br /&gt;
	['[[arrow keys|right]]'] = '[[Arrow keys|→]]',&lt;br /&gt;
	['asterisk'] = '&amp;amp;#42;',&lt;br /&gt;
	['hash'] = '&amp;amp;#35;',&lt;br /&gt;
	['[[#]]'] = '[[Number sign|#]]',&lt;br /&gt;
	['colon'] = '&amp;amp;#58;',&lt;br /&gt;
	['[[:]]'] = '[[Colon (punctuation)|:]]',&lt;br /&gt;
	['pipe'] = '&amp;amp;#124;',&lt;br /&gt;
	['[[|]]'] = '[[Pipe symbol|&amp;amp;#124;]]',&lt;br /&gt;
	['semicolon'] = '&amp;amp;#59;',&lt;br /&gt;
	['[[;]]'] = '[[Semi-colon|&amp;amp;#59;]]',&lt;br /&gt;
	['equals'] = '&amp;amp;#61;',&lt;br /&gt;
&lt;br /&gt;
	-- Left &amp;amp; right analog sticks.&lt;br /&gt;
	['l up'] = 'L↑',&lt;br /&gt;
	['l down'] = 'L↓',&lt;br /&gt;
	['l left'] = 'L←',&lt;br /&gt;
	['l right'] = 'L→',&lt;br /&gt;
	['l ne'] = 'L↗',&lt;br /&gt;
	['l se'] = 'L↘',&lt;br /&gt;
	['l nw'] = 'L↖',&lt;br /&gt;
	['l sw'] = 'L↙',&lt;br /&gt;
&lt;br /&gt;
	['r up'] = 'R↑',&lt;br /&gt;
	['r down'] = 'R↓',&lt;br /&gt;
	['r left'] = 'R←',&lt;br /&gt;
	['r right'] = 'R→',&lt;br /&gt;
	['r ne'] = 'R↗',&lt;br /&gt;
	['r se'] = 'R↘',&lt;br /&gt;
	['r nw'] = 'R↖',&lt;br /&gt;
	['r sw'] = 'R↙',&lt;br /&gt;
&lt;br /&gt;
	-- PlayStation.&lt;br /&gt;
	['ex'] = '×',&lt;br /&gt;
	['circle'] = '○',&lt;br /&gt;
	['square'] = '□',&lt;br /&gt;
	['triangle'] = '△',&lt;br /&gt;
&lt;br /&gt;
	-- Nintendo 64 and GameCube.&lt;br /&gt;
	['c up'] = 'C↑',&lt;br /&gt;
	['c down'] = 'C↓',&lt;br /&gt;
	['c left'] = 'C←',&lt;br /&gt;
	['c right'] = 'C→',&lt;br /&gt;
	['c ne'] = 'C↗',&lt;br /&gt;
	['c se'] = 'C↘',&lt;br /&gt;
	['c nw'] = 'C↖',&lt;br /&gt;
	['c sw'] = 'C↙',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local keyAlias = {&lt;br /&gt;
	-- ['alternate name for key (alias)'] = 'name for key used in key table'&lt;br /&gt;
	['[[cmd key|cmd]]'] = '[[command key|cmd]]',&lt;br /&gt;
	['[[cmd key|command]]'] = '[[command key|command]]',&lt;br /&gt;
	['[[opt key|opt]]'] = '[[option key|opt]]',&lt;br /&gt;
	['[[option key]]'] = '[[option key|option]]',&lt;br /&gt;
	['[[opt key|option]]'] = '[[option key|option]]',&lt;br /&gt;
	['[[win key|win]]'] = '[[windows key|win]]',&lt;br /&gt;
	['*'] = 'asterisk',&lt;br /&gt;
	['#'] = 'hash',&lt;br /&gt;
	[':'] = 'colon',&lt;br /&gt;
	[';'] = 'semicolon',&lt;br /&gt;
	['l-up'] = 'l up',&lt;br /&gt;
	['l-down'] = 'l down',&lt;br /&gt;
	['l-left'] = 'l left',&lt;br /&gt;
	['l-right'] = 'l right',&lt;br /&gt;
	['l-ne'] = 'l ne',&lt;br /&gt;
	['l-se'] = 'l se',&lt;br /&gt;
	['l-nw'] = 'l nw',&lt;br /&gt;
	['l-sw'] = 'l sw',&lt;br /&gt;
	['r-up'] = 'r up',&lt;br /&gt;
	['r-down'] = 'r down',&lt;br /&gt;
	['r-left'] = 'r left',&lt;br /&gt;
	['r-right'] = 'r right',&lt;br /&gt;
	['r-ne'] = 'r ne',&lt;br /&gt;
	['r-se'] = 'r se',&lt;br /&gt;
	['r-nw'] = 'r nw',&lt;br /&gt;
	['r-sw'] = 'r sw',&lt;br /&gt;
	['ps x'] = 'ex',&lt;br /&gt;
	['ps c'] = 'circle',&lt;br /&gt;
	['ps s'] = 'square',&lt;br /&gt;
	['ps t'] = 'triangle',&lt;br /&gt;
	['c-up'] = 'c up',&lt;br /&gt;
	['c-down'] = 'c down',&lt;br /&gt;
	['c-left'] = 'c left',&lt;br /&gt;
	['c-right'] = 'c right',&lt;br /&gt;
	['c-ne'] = 'c ne',&lt;br /&gt;
	['c-se'] = 'c se',&lt;br /&gt;
	['c-nw'] = 'c nw',&lt;br /&gt;
	['c-sw'] = 'c sw',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local Collection = {}&lt;br /&gt;
Collection.__index = Collection&lt;br /&gt;
do&lt;br /&gt;
	function Collection:add(item)&lt;br /&gt;
		if item ~= nil then&lt;br /&gt;
			self.n = self.n + 1&lt;br /&gt;
			self[self.n] = item&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	function Collection:join(sep)&lt;br /&gt;
		return table.concat(self, sep)&lt;br /&gt;
	end&lt;br /&gt;
	function Collection:sort(comp)&lt;br /&gt;
		table.sort(self, comp)&lt;br /&gt;
	end&lt;br /&gt;
	function Collection.new()&lt;br /&gt;
		return setmetatable({n = 0}, Collection)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function keyPress(args)&lt;br /&gt;
	local chainNames = {&lt;br /&gt;
		'chain first',&lt;br /&gt;
		'chain second',&lt;br /&gt;
		'chain third',&lt;br /&gt;
		'chain fourth',&lt;br /&gt;
		'chain fifth',&lt;br /&gt;
		'chain sixth',&lt;br /&gt;
		'chain seventh',&lt;br /&gt;
		'chain eighth',&lt;br /&gt;
		'chain ninth',&lt;br /&gt;
	}&lt;br /&gt;
	local result = Collection.new()&lt;br /&gt;
	local chainDefault = args.chain or '+'&lt;br /&gt;
	for i, id in ipairs(args) do&lt;br /&gt;
		if i &amp;gt; 1 then&lt;br /&gt;
			result:add(args[chainNames[i - 1]] or chainDefault)&lt;br /&gt;
		end&lt;br /&gt;
		local lc = id:lower()&lt;br /&gt;
		local text = keyText[lc] or keyText[keyAlias[lc]] or id&lt;br /&gt;
		result:add(kbdPrefix .. text .. kbdSuffix)&lt;br /&gt;
	end&lt;br /&gt;
	return result:join()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function keypress(frame)&lt;br /&gt;
	-- Called by &amp;quot;{{key press|...}}&amp;quot;.&lt;br /&gt;
	-- Using the template doubles the post‐expand include size.&lt;br /&gt;
	return keyPress(frame:getParent().args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function press(frame)&lt;br /&gt;
	-- Called by &amp;quot;{{#invoke:key|press|...}}&amp;quot;.&lt;br /&gt;
	return keyPress(frame.args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	keypress = keypress,&lt;br /&gt;
	press = press,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Mediawiki&gt;WOSlinker</name></author>
	</entry>
</feed>