<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3AShuangpin</id>
	<title>Module:Shuangpin - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3AShuangpin"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Shuangpin&amp;action=history"/>
	<updated>2026-07-24T06:04:55Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Module:Shuangpin&amp;diff=4249334&amp;oldid=prev</id>
		<title>2026年5月23日 (六) 11:48 imported&gt;臺灣象象</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Shuangpin&amp;diff=4249334&amp;oldid=prev"/>
		<updated>2026-05-23T11:48:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;function split(inputstr, sep)&lt;br /&gt;
	if sep == nil then&lt;br /&gt;
		return {inputstr}&lt;br /&gt;
	end&lt;br /&gt;
	local t = {}&lt;br /&gt;
	local x = 1&lt;br /&gt;
	local y = inputstr:find(sep)&lt;br /&gt;
	while y ~= nil do&lt;br /&gt;
		table.insert(t, inputstr:sub(x, y - 1))&lt;br /&gt;
		x = y + 1&lt;br /&gt;
		y = inputstr:find(sep, x)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(t, inputstr:sub(x))&lt;br /&gt;
	return t&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local latinss = { --&lt;br /&gt;
{&amp;#039;Q&amp;#039;, &amp;#039;W&amp;#039;, &amp;#039;E&amp;#039;, &amp;#039;R&amp;#039;, &amp;#039;T&amp;#039;, &amp;#039;Y&amp;#039;, &amp;#039;U&amp;#039;, &amp;#039;I&amp;#039;, &amp;#039;O&amp;#039;, &amp;#039;P&amp;#039;}, --&lt;br /&gt;
{&amp;#039;A&amp;#039;, &amp;#039;S&amp;#039;, &amp;#039;D&amp;#039;, &amp;#039;F&amp;#039;, &amp;#039;G&amp;#039;, &amp;#039;H&amp;#039;, &amp;#039;J&amp;#039;, &amp;#039;K&amp;#039;, &amp;#039;L&amp;#039;, &amp;#039;;&amp;#039;}, --&lt;br /&gt;
{&amp;#039;Z&amp;#039;, &amp;#039;X&amp;#039;, &amp;#039;C&amp;#039;, &amp;#039;V&amp;#039;, &amp;#039;B&amp;#039;, &amp;#039;N&amp;#039;, &amp;#039;M&amp;#039;} --&lt;br /&gt;
}&lt;br /&gt;
local latinxy = {{&lt;br /&gt;
	x = 30,&lt;br /&gt;
	y = 30&lt;br /&gt;
}, {&lt;br /&gt;
	x = 40,&lt;br /&gt;
	y = 85&lt;br /&gt;
}, {&lt;br /&gt;
	x = 68,&lt;br /&gt;
	y = 140&lt;br /&gt;
}}&lt;br /&gt;
local latindata = {{}, {}, {}}&lt;br /&gt;
local divdata = {&lt;br /&gt;
	w = 615,&lt;br /&gt;
	h = 218&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function buildkeyzone()&lt;br /&gt;
	local ss = &amp;#039;&amp;#039;&lt;br /&gt;
	for i, latins in ipairs(latinss) do&lt;br /&gt;
		for j, latin in ipairs(latins) do&lt;br /&gt;
			ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;&amp;#039;&lt;br /&gt;
			ss = ss .. &amp;#039;left:&amp;#039; .. latinxy[i].x + (j - 1) * 55 .. &amp;#039;px;&amp;#039;&lt;br /&gt;
			ss = ss .. &amp;#039;top:&amp;#039; .. latinxy[i].y .. &amp;#039;px;&amp;#039;&lt;br /&gt;
			ss = ss .. &amp;#039;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
			-- 美式鍵盤拉丁字母&lt;br /&gt;
			ss = ss .. &amp;#039;&amp;lt;div&amp;gt;&amp;#039; .. latin .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
			-- 雙拼&lt;br /&gt;
			local t = split(latindata[i][j]:gsub(&amp;#039; &amp;#039;, &amp;#039;&amp;#039;), &amp;#039;,&amp;#039;)&lt;br /&gt;
			ss = ss .. &amp;#039;&amp;lt;div&amp;gt;&amp;#039;&lt;br /&gt;
			for k, v in ipairs(t) do&lt;br /&gt;
				if v == &amp;#039;&amp;#039; then&lt;br /&gt;
					v = &amp;#039;　&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				ss = ss .. &amp;#039;&amp;lt;div&amp;gt;&amp;#039; .. v .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			ss = ss .. &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return ss&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function buildkey(name, width, height, amplification, align)&lt;br /&gt;
	local ss = &amp;#039;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div class=&amp;quot;&amp;#039; .. align .. &amp;#039; shuangpin&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;width:&amp;#039; .. width .. &amp;#039;px;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;height:&amp;#039; .. height .. &amp;#039;px;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;left:&amp;#039; .. (divdata.w - width) / -2 .. &amp;#039;px;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;top:&amp;#039; .. (divdata.h - height) / -2 .. &amp;#039;px;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;transform:scale(&amp;#039; .. amplification .. &amp;#039;,&amp;#039; .. amplification .. &amp;#039;);&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	ss = ss .. buildkeyzone()&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div&amp;gt;&amp;#039; .. name .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	return ss&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.keymain(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame)&lt;br /&gt;
	local name = args.name or &amp;#039;&amp;#039;&lt;br /&gt;
	local width&lt;br /&gt;
	local height&lt;br /&gt;
	local amplification&lt;br /&gt;
	local align = &amp;#039;floatright&amp;#039;&lt;br /&gt;
	if args.align == &amp;quot;tleft&amp;quot; then&lt;br /&gt;
		align = &amp;quot;floatleft&amp;quot;&lt;br /&gt;
	elseif args.align == &amp;quot;center&amp;quot; then&lt;br /&gt;
		align = &amp;quot;center&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if args.amplification ~= nil then&lt;br /&gt;
		amplification = args.amplification&lt;br /&gt;
		width = amplification * divdata.w&lt;br /&gt;
		height = amplification * divdata.h&lt;br /&gt;
	elseif args.width ~= nil then&lt;br /&gt;
		width = args.width&lt;br /&gt;
		amplification = width / divdata.w&lt;br /&gt;
		height = amplification * divdata.h&lt;br /&gt;
	elseif args.height ~= nil then&lt;br /&gt;
		height = args.height&lt;br /&gt;
		amplification = height / divdata.h&lt;br /&gt;
		width = amplification * divdata.w&lt;br /&gt;
	else&lt;br /&gt;
		amplification = 1&lt;br /&gt;
		width = divdata.w&lt;br /&gt;
		height = divdata.h&lt;br /&gt;
	end&lt;br /&gt;
	for i, latins in ipairs(latinss) do&lt;br /&gt;
		for j, latin in ipairs(latins) do&lt;br /&gt;
			latindata[i][j] = args[latin] or &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	latindata[2][10] = args.semicolon or &amp;#039;&amp;#039;&lt;br /&gt;
	return buildkey(name, width, height, amplification, align)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;臺灣象象</name></author>
	</entry>
</feed>