<?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%3AElement</id>
	<title>Module:Element - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3AElement"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Element&amp;action=history"/>
	<updated>2026-06-28T23:28:36Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Module:Element&amp;diff=2613472&amp;oldid=prev</id>
		<title>imported&gt;A2569875：​簡化代碼</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Element&amp;diff=2613472&amp;oldid=prev"/>
		<updated>2022-05-26T16:02:30Z</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;local p = {}&lt;br /&gt;
local origArgs&lt;br /&gt;
local lib_arg = {}&lt;br /&gt;
local error = require( &amp;#039;Module:Error&amp;#039; )&lt;br /&gt;
local lib_EC = {}&lt;br /&gt;
local element_data = mw.loadData( &amp;#039;Module:Element/data&amp;#039; )&lt;br /&gt;
local series_name_data = {{&amp;quot;錒系元素&amp;quot;, &amp;quot;锕系元素&amp;quot;, &amp;quot;錒系金屬&amp;quot;, &amp;quot;锕系金属&amp;quot;, &amp;quot;actinide&amp;quot;},{&amp;quot;鹼金屬&amp;quot;, &amp;quot;碱金属&amp;quot;, &amp;quot;alkali metal&amp;quot;},{&amp;quot;鹼金屬（預測）&amp;quot;, &amp;quot;碱金属（预测）&amp;quot;, &amp;quot;alkali metal (predicted)&amp;quot;},{&amp;quot;鹼土金屬&amp;quot;, &amp;quot;碱土金属&amp;quot;, &amp;quot;alkaline earth metal&amp;quot;},{&amp;quot;鹼土金屬（預測）&amp;quot;, &amp;quot;碱土金属（预测）&amp;quot;, &amp;quot;alkaline earth metal (predicted)&amp;quot;},{&amp;quot;雙原子非金屬&amp;quot;, &amp;quot;双原子非金属&amp;quot;, &amp;quot;diatomic nonmetal&amp;quot;},{&amp;quot;雙原子非金屬（預測）&amp;quot;, &amp;quot;双原子非金属（预测）&amp;quot;, &amp;quot;diatomic nonmetal (predicted)&amp;quot;},{&amp;quot;多原子非金屬&amp;quot;, &amp;quot;多原子非金属&amp;quot;, &amp;quot;polyatomic nonmetal&amp;quot;},{&amp;quot;多原子非金屬（預測）&amp;quot;, &amp;quot;多原子非金属（预测）&amp;quot;, &amp;quot;polyatomic nonmetal (predicted)&amp;quot;},{&amp;quot;eka-超錒系元素&amp;quot;, &amp;quot;eka-超锕系元素&amp;quot;, &amp;quot;下超錒系元素&amp;quot;, &amp;quot;eka-superactinide&amp;quot;},{&amp;quot;eka-超錒系元素（預測）&amp;quot;, &amp;quot;eka-超锕系元素（预测）&amp;quot;, &amp;quot;eka-superactinide (predicted)&amp;quot;},{&amp;quot;惰性氣體&amp;quot;, &amp;quot;惰性气体&amp;quot;, &amp;quot;稀有氣體&amp;quot;, &amp;quot;稀有气体&amp;quot;, &amp;quot;noble gas&amp;quot;},{&amp;quot;惰性氣體（預測）&amp;quot;, &amp;quot;惰性气体（预测）&amp;quot;, &amp;quot;稀有氣體（預測）&amp;quot;, &amp;quot;稀有气体（预测）&amp;quot;, &amp;quot;noble gas (predicted)&amp;quot;},{&amp;quot;鹵素&amp;quot;, &amp;quot;卤素&amp;quot;, &amp;quot;halogen&amp;quot;},{&amp;quot;鹵素（預測）&amp;quot;, &amp;quot;卤素（预测）&amp;quot;, &amp;quot;halogen (predicted)&amp;quot;},{&amp;quot;金屬&amp;quot;, &amp;quot;金属&amp;quot;, &amp;quot;metal&amp;quot;},{&amp;quot;類金屬&amp;quot;, &amp;quot;类金属&amp;quot;, &amp;quot;metalloid&amp;quot;},{&amp;quot;類金屬（預測）&amp;quot;, &amp;quot;类金属（预测）&amp;quot;, &amp;quot;metalloid (predicted)&amp;quot;},{&amp;quot;鑭系元素&amp;quot;, &amp;quot;镧系元素&amp;quot;, &amp;quot;鑭系金屬&amp;quot;, &amp;quot;镧系金属&amp;quot;, &amp;quot;lanthanide&amp;quot;},{&amp;quot;其他非金屬&amp;quot;, &amp;quot;其他非金属&amp;quot;, &amp;quot;非金属&amp;quot;, &amp;quot;非金屬&amp;quot;, &amp;quot;other non-metal&amp;quot;},{&amp;quot;其他非金屬（預測）&amp;quot;, &amp;quot;其他非金属（预测）&amp;quot;, &amp;quot;非金屬（預測）&amp;quot;, &amp;quot;other non-metal (predicted)&amp;quot;},{&amp;quot;貧金屬&amp;quot;, &amp;quot;贫金属&amp;quot;, &amp;quot;主族金屬&amp;quot;, &amp;quot;主族金属&amp;quot;, &amp;quot;post-transition metal&amp;quot;},{&amp;quot;貧金屬（預測）&amp;quot;, &amp;quot;贫金属（预测）&amp;quot;, &amp;quot;主族金屬（預測）&amp;quot;, &amp;quot;主族金属（预测）&amp;quot;, &amp;quot;post-transition metal (predicted)&amp;quot;},{&amp;quot;超錒系元素&amp;quot;, &amp;quot;超锕系元素&amp;quot;, &amp;quot;superactinide&amp;quot;},{&amp;quot;超錒系元素（預測）&amp;quot;, &amp;quot;超锕系元素（预测）&amp;quot;, &amp;quot;superactinide (predicted)&amp;quot;},{&amp;quot;過渡金屬&amp;quot;, &amp;quot;过渡金属&amp;quot;, &amp;quot;过渡元素&amp;quot;, &amp;quot;過渡元素&amp;quot;, &amp;quot;transition metal&amp;quot;},{&amp;quot;過渡金屬（預測）&amp;quot;, &amp;quot;过渡金属（预测）&amp;quot;, &amp;quot;过渡元素（预测）&amp;quot;, &amp;quot;過渡元素（預測）&amp;quot;, &amp;quot;transition metal (predicted)&amp;quot;},{&amp;quot;超臨界原子&amp;quot;, &amp;quot;離子態&amp;quot;, &amp;quot;超临界原子&amp;quot;, &amp;quot;离子态&amp;quot;, &amp;quot;supercritical atoms&amp;quot;, &amp;quot;supercritical atoms (predicted)&amp;quot;},{&amp;quot;無電子&amp;quot;, &amp;quot;无电子&amp;quot;, &amp;quot;no electron&amp;quot;},{&amp;quot;可能不存在&amp;quot;, &amp;quot;maybe not exist&amp;quot;},{&amp;quot;s區元素&amp;quot;, &amp;quot;s区元素&amp;quot;, &amp;quot;s區&amp;quot;, &amp;quot;s区&amp;quot;, &amp;quot;s block&amp;quot;},{&amp;quot;s區元素（預測）&amp;quot;, &amp;quot;s区元素（预测）&amp;quot;, &amp;quot;s區（預測）&amp;quot;, &amp;quot;s区（预测）&amp;quot;, &amp;quot;s block (predicted)&amp;quot;},{&amp;quot;p區元素&amp;quot;, &amp;quot;p区元素&amp;quot;, &amp;quot;p區&amp;quot;, &amp;quot;p区&amp;quot;, &amp;quot;p block&amp;quot;},{&amp;quot;p區元素（預測）&amp;quot;, &amp;quot;p区元素（预测）&amp;quot;, &amp;quot;p區（預測）&amp;quot;, &amp;quot;p区（预测）&amp;quot;, &amp;quot;p block (predicted)&amp;quot;},{&amp;quot;d區元素&amp;quot;, &amp;quot;d区元素&amp;quot;, &amp;quot;d區&amp;quot;, &amp;quot;d区&amp;quot;, &amp;quot;d block&amp;quot;},{&amp;quot;d區元素（預測）&amp;quot;, &amp;quot;d区元素（预测）&amp;quot;, &amp;quot;d區（預測）&amp;quot;, &amp;quot;d区（预测）&amp;quot;, &amp;quot;d block (predicted)&amp;quot;},{&amp;quot;ds區元素&amp;quot;, &amp;quot;ds区元素&amp;quot;, &amp;quot;ds區&amp;quot;, &amp;quot;ds区&amp;quot;, &amp;quot;ds block&amp;quot;},{&amp;quot;ds區元素（預測）&amp;quot;, &amp;quot;ds区元素（预测）&amp;quot;, &amp;quot;ds區（預測）&amp;quot;, &amp;quot;ds区（预测）&amp;quot;, &amp;quot;ds block (predicted)&amp;quot;},{&amp;quot;f區元素&amp;quot;, &amp;quot;f区元素&amp;quot;, &amp;quot;f區&amp;quot;, &amp;quot;f区&amp;quot;, &amp;quot;f block&amp;quot;},{&amp;quot;f區元素（預測）&amp;quot;, &amp;quot;f区元素（预测）&amp;quot;, &amp;quot;f區（預測）&amp;quot;, &amp;quot;f区（预测）&amp;quot;, &amp;quot;f block (predicted)&amp;quot;},{&amp;quot;g區元素&amp;quot;, &amp;quot;g区元素&amp;quot;, &amp;quot;g區&amp;quot;, &amp;quot;g区&amp;quot;, &amp;quot;g block&amp;quot;},{&amp;quot;g區元素（預測）&amp;quot;, &amp;quot;g区元素（预测）&amp;quot;, &amp;quot;f區（預測）&amp;quot;, &amp;quot;g区（预测）&amp;quot;, &amp;quot;g block (predicted)&amp;quot;},{&amp;quot;h區元素&amp;quot;, &amp;quot;h区元素&amp;quot;, &amp;quot;h區&amp;quot;, &amp;quot;h区&amp;quot;, &amp;quot;h block&amp;quot;},{&amp;quot;h區元素（預測）&amp;quot;, &amp;quot;h区元素（预测）&amp;quot;, &amp;quot;h區（預測）&amp;quot;, &amp;quot;h区（预测）&amp;quot;, &amp;quot;h block (predicted)&amp;quot;},{&amp;quot;未知特性&amp;quot;, &amp;quot;未知&amp;quot;, &amp;quot;化學性質未知&amp;quot;, &amp;quot;化学性质未知&amp;quot;, &amp;quot;unknown&amp;quot;, &amp;quot;unknown chemical properties&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
function p.symbol(frame)&lt;br /&gt;
	return p._symbol(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getAtomicWeight(frame)&lt;br /&gt;
	return p._getAtomicWeight(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getName(frame)&lt;br /&gt;
	return p._getName(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getPhase(frame)&lt;br /&gt;
	return p._getPhase(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link(frame)&lt;br /&gt;
	return p._link(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.check(frame)&lt;br /&gt;
	return p._check(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.neutron(frame)&lt;br /&gt;
	return p._neutron(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._neutron(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.correct and ele1.correct  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.N and ele1.N ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return ele1.N&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.compare_series(frame)&lt;br /&gt;
	-- For calling from #invoke.&lt;br /&gt;
    local load_args&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        load_args = lib_arg.getArgs(frame) --frame.args&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        load_args = frame&lt;br /&gt;
    end&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs( load_args ) do&lt;br /&gt;
		args[k] = v;	   &lt;br /&gt;
	end&lt;br /&gt;
	local arg1=&amp;#039;&amp;#039;	if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then	arg1 = mw.text.trim(args[1]) end&lt;br /&gt;
	local arg2=&amp;#039;&amp;#039;	if (args[2] and args[2] ~= &amp;#039;&amp;#039;) then	arg2 = mw.text.trim(args[2]) end&lt;br /&gt;
	return p.compareSeries(arg1, arg2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.compareSeries(series1, series2)&lt;br /&gt;
	local checked = false&lt;br /&gt;
	local series_left, eleSeries&lt;br /&gt;
	for v, x in ipairs(series_name_data) do&lt;br /&gt;
		for v1, x1 in ipairs(x) do&lt;br /&gt;
			if (x1 == series1) then &lt;br /&gt;
				series_left = {x[1]}&lt;br /&gt;
				checked = true&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if checked then break end&lt;br /&gt;
	end&lt;br /&gt;
	if not checked then&lt;br /&gt;
		eleSeries = p.getSeries({series1})&lt;br /&gt;
		eleSeries = mw.text.split( table.concat(eleSeries, &amp;#039;,&amp;#039;) .. &amp;#039;,&amp;#039; .. series1 , &amp;#039;,&amp;#039; ) &lt;br /&gt;
		for index, it in ipairs(eleSeries) do&lt;br /&gt;
			checked = false&lt;br /&gt;
			for v, x in ipairs(series_name_data) do&lt;br /&gt;
				for v1, x1 in ipairs(x) do&lt;br /&gt;
					if (x1 == it) then &lt;br /&gt;
						eleSeries[index] = x[1]&lt;br /&gt;
						checked = true&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if checked then break end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		series_left = eleSeries&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	checked = false&lt;br /&gt;
	for v, x in ipairs(series_name_data) do&lt;br /&gt;
		for v1, x1 in ipairs(x) do&lt;br /&gt;
			if (x1 == series2) then &lt;br /&gt;
				series_right = {x[1]}&lt;br /&gt;
				checked = true&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if checked then break end&lt;br /&gt;
	end&lt;br /&gt;
	if not checked then&lt;br /&gt;
		eleSeries = p.getSeries({series2})&lt;br /&gt;
		eleSeries = mw.text.split( table.concat(eleSeries, &amp;#039;,&amp;#039;) .. &amp;#039;,&amp;#039; .. series2 , &amp;#039;,&amp;#039;  ) &lt;br /&gt;
		for index, it in ipairs(eleSeries) do&lt;br /&gt;
			checked = false&lt;br /&gt;
			for v, x in ipairs(series_name_data) do&lt;br /&gt;
				for v1, x1 in ipairs(x) do&lt;br /&gt;
					if (x1 == it) then &lt;br /&gt;
						eleSeries[index] = x[1]&lt;br /&gt;
						checked = true&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if checked then break end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		series_right = eleSeries&lt;br /&gt;
	end&lt;br /&gt;
	if series_left.predicted then series_left.predicted = nil end&lt;br /&gt;
	if series_right.predicted then series_right.predicted = nil end&lt;br /&gt;
	for v_left, x_left in ipairs(series_left) do&lt;br /&gt;
		for v_right, x_right in ipairs(series_right) do&lt;br /&gt;
			if mw.text.trim(x_left) == mw.text.trim(x_right) then return &amp;#039;yes&amp;#039; end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if series_left == series_right then return &amp;#039;yes&amp;#039; end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.series(frame)&lt;br /&gt;
	-- For calling from #invoke.&lt;br /&gt;
    local load_args&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        load_args = lib_arg.getArgs(frame) --frame.args&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        if type(frame) ~= type({}) then args = {frame}&lt;br /&gt;
        else args = frame end&lt;br /&gt;
    end&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs( load_args ) do&lt;br /&gt;
		args[k] = v;	   &lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local eleSeries = p.getSeries(args)&lt;br /&gt;
	if (eleSeries.predicted) then return eleSeries[1] .. &amp;#039;（預測）&amp;#039; end&lt;br /&gt;
	return eleSeries[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getSeries(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return {&amp;#039;錯誤&amp;#039;} end&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then return {&amp;#039;未知&amp;#039;} end&lt;br /&gt;
	if (ele1.correct and ele1.correct  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		eleid = p.getListID(ele1.correct)&lt;br /&gt;
		ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
		if (eleid==-1) then return {&amp;#039;未知&amp;#039;} end&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.series and ele1.series ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		if (ele1.predictedSeries and ele1.predictedSeries ~= &amp;#039;&amp;#039;) then ele1.series.predicted=1 end&lt;br /&gt;
		return ele1.series&lt;br /&gt;
	end&lt;br /&gt;
	return {&amp;#039;錯誤&amp;#039;}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.protons(frame)&lt;br /&gt;
	return p._protons(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._protons(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.correct and ele1.correct  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.Z and ele1.Z ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return ele1.Z&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.wikidataID(frame)&lt;br /&gt;
    local result = p._wikidataID(p._loadArgFromFrame(frame))&lt;br /&gt;
    if result ~= &amp;#039;&amp;#039; then result = &amp;#039;Q&amp;#039; .. result end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._wikidataID(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.wikidata and ele1.wikidata ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return ele1.wikidata&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ElementProperty(frame)&lt;br /&gt;
	return p._getEleProperty(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.meltingPoint(frame)return p._getEleProperty(p._loadArgFromFrame(frame),&amp;quot;Melting&amp;quot;)end&lt;br /&gt;
function p.boilingPoint(frame)return p._getEleProperty(p._loadArgFromFrame(frame),&amp;quot;Boiling&amp;quot;)end&lt;br /&gt;
function p.density(frame)return p._getEleProperty(p._loadArgFromFrame(frame),&amp;quot;density&amp;quot;)end&lt;br /&gt;
function p.atomicRadius(frame)return p._getEleProperty(p._loadArgFromFrame(frame),&amp;quot;atomicRadius&amp;quot;)end&lt;br /&gt;
function p.covalentRadius(frame)return p._getEleProperty(p._loadArgFromFrame(frame),&amp;quot;CovalentRadius&amp;quot;)end&lt;br /&gt;
function p.vdwRadius(frame)return p._getEleProperty(p._loadArgFromFrame(frame),&amp;quot;vdwRadius&amp;quot;)end&lt;br /&gt;
function p.electronegativity(frame)return p._getEleProperty(p._loadArgFromFrame(frame),&amp;quot;EN&amp;quot;)end&lt;br /&gt;
&lt;br /&gt;
function p._loadArgFromFrame(frame)&lt;br /&gt;
	-- For calling from #invoke.&lt;br /&gt;
    local args&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        args = lib_arg.getArgs(frame) --frame.args&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        if type(frame) ~= type({}) then args = {frame}&lt;br /&gt;
        else args = frame end&lt;br /&gt;
    end&lt;br /&gt;
    return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._getEleProperty(args, _prop)&lt;br /&gt;
	local prop = _prop&lt;br /&gt;
	if _prop==nil then prop = args[2] or args.prop&lt;br /&gt;
		if prop == nil then return &amp;#039;&amp;#039;&lt;br /&gt;
		else prop = mw.text.trim(prop) end&lt;br /&gt;
	end&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; &lt;br /&gt;
	if type(args) == type(&amp;quot;string&amp;quot;) or type(args) == type(0) then eleString = mw.text.trim(tostring(args)) &lt;br /&gt;
	elseif (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end --去除模板引用時可能產生的空格&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1[prop] and ele1[prop] ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return ele1[prop]&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._getName(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return error.error{ &amp;#039;未輸入元素&amp;#039; } end&lt;br /&gt;
&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return error.error{ &amp;#039;未知的元素“&amp;#039; .. args[1] .. &amp;#039;”&amp;#039; } .. &amp;#039;[[Category:含有錯誤元素符號的條目]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return ele1.name&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._check(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return error.error{ &amp;#039;未輸入元素&amp;#039; } end&lt;br /&gt;
	local linkString=&amp;#039;&amp;#039; if (args[&amp;#039;link&amp;#039;] and args[&amp;#039;link&amp;#039;] ~= &amp;#039;&amp;#039;) then	linkString = mw.text.trim(args[&amp;#039;link&amp;#039;]) end&lt;br /&gt;
	if (linkString and linkString  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		if (linkString == &amp;#039;yes&amp;#039;) then&lt;br /&gt;
			pagetest=true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return error.error{ &amp;#039;未知的元素“&amp;#039; .. args[1] .. &amp;#039;”&amp;#039; } .. &amp;#039;[[Category:含有錯誤元素符號的條目]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.correct and ele1.correct  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return error.error{ &amp;#039;“&amp;#039; .. args[1] .. &amp;#039;”不是“&amp;#039;.. ele1.correct .. &amp;#039;”的正確拼法。&amp;#039; }&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.page and ele1.page ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if(pagetest)then&lt;br /&gt;
		return error.error{ &amp;#039;元素“&amp;#039; .. args[1] .. &amp;#039;”&amp;#039; .. &amp;#039;沒有對應的頁面。&amp;#039;}&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._symbol(args)&lt;br /&gt;
	if not(args[1] and args[1] ~= &amp;#039;&amp;#039;) then return error.error{ &amp;#039;未輸入元素&amp;#039; } end&lt;br /&gt;
	local myString = mw.text.trim(args[1]) --去除模板引用時可能產生的空格&lt;br /&gt;
	local eleid = p.getListID(myString)&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		if(tonumber(myString) or -1 &amp;gt; 0)then&lt;br /&gt;
			local ele_tmp = p.getElementByZ(tonumber(myString))&lt;br /&gt;
			if(ele_tmp and ele_tmp.Symbol)then return ele_tmp.Symbol end&lt;br /&gt;
		end&lt;br /&gt;
		return error.error{ &amp;#039;未知的元素“&amp;#039; .. args[1] .. &amp;#039;”&amp;#039; } .. &amp;#039;[[Category:含有錯誤元素符號的條目]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if(ele1.NotElement)then&lt;br /&gt;
		return ele1.Symbol&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.Z == nil) then return ele1.Symbol end&lt;br /&gt;
	local num = ele1.Z + (ele1.N or 0) --計算質量數&lt;br /&gt;
	local n = (ele1.N or 0)&lt;br /&gt;
	local number=tonumber(args[2])&lt;br /&gt;
	if (number and number  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		num = number&lt;br /&gt;
		n = num - ele1.Z&lt;br /&gt;
		if (n &amp;gt; 0) then --讀到有效的原子量才會進來這裡執行&lt;br /&gt;
			if (ele1.Isotope) then&lt;br /&gt;
				for v, x in ipairs(ele1.Isotope) do&lt;br /&gt;
					if (x.N == n) then&lt;br /&gt;
						if (x.Symbol and x.Symbol  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
							return x.Symbol&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return ele1.Symbol &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._link(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local arg1=&amp;#039;&amp;#039;	if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then	arg1 = mw.text.trim(args[1]) else return error.error{ &amp;#039;未輸入元素&amp;#039; } end&lt;br /&gt;
	local arg2=&amp;#039;&amp;#039;	if (args[2] and args[2] ~= &amp;#039;&amp;#039;) then	arg2 = mw.text.trim(args[2]) end&lt;br /&gt;
	local arg3=&amp;#039;&amp;#039;	if (args[3] and args[3] ~= &amp;#039;&amp;#039;) then	arg3 = mw.text.trim(args[3]) end&lt;br /&gt;
	local eleid = p.getListID(arg1)&lt;br /&gt;
	local has_m=&amp;#039;&amp;#039;&lt;br /&gt;
	if (arg3 and arg3  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		has_m=arg3&lt;br /&gt;
	end&lt;br /&gt;
	if (eleid == -1) then&lt;br /&gt;
		return error.error{ &amp;#039;未知的元素“&amp;#039; .. arg1 .. &amp;#039;”&amp;#039; } .. &amp;#039;[[Category:含有錯誤元素符號的條目]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if(ele1.NotElement)then&lt;br /&gt;
		return ele1.page&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.page and ele1.page  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		local num = ele1.Z + (ele1.N or 0) --計算質量數&lt;br /&gt;
		local n = ele1.N&lt;br /&gt;
		local hasmass=false&lt;br /&gt;
		local number=tonumber(arg2)&lt;br /&gt;
		if (number and number  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
			num = number&lt;br /&gt;
			n = num - ele1.Z&lt;br /&gt;
			hasmass=true&lt;br /&gt;
			if (n &amp;lt; 0) then&lt;br /&gt;
				return error.error{ &amp;#039;中子數不得為“&amp;#039; .. n .. &amp;#039;”&amp;#039; }&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if (args2 and args2 ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
				return error.error{ &amp;#039;未知的質量數“&amp;#039; .. args2 .. &amp;#039;”&amp;#039; }&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if (hasmass == true) then&lt;br /&gt;
			if (ele1.Isotope) then&lt;br /&gt;
				for v, x in ipairs(ele1.Isotope) do&lt;br /&gt;
					if (x.N == n) then&lt;br /&gt;
						if (x.page and x.page  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
							return  x.page&lt;br /&gt;
						else&lt;br /&gt;
							return error.error{ &amp;#039;元素“&amp;#039; .. args[1] .. &amp;#039;”&amp;#039; .. &amp;#039;質量數為“&amp;#039;.. num  ..&amp;#039;”的同位素沒有對應的頁面。&amp;#039;}&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				return ele1.page .. &amp;#039;-&amp;#039; .. num .. has_m&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return ele1.page &lt;br /&gt;
	end&lt;br /&gt;
	return error.error{ &amp;#039;元素“&amp;#039; .. args[1] .. &amp;#039;”&amp;#039; .. &amp;#039;沒有對應的頁面。&amp;#039;}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--This notation states that the various sources on Earth have substantially different isotopic constitutions, and uncertainties are incorporated in the two numbers. For these elements, there is not an &amp;#039;Earth average&amp;#039; constitution, and the &amp;#039;right&amp;#039; value is not its middle &lt;br /&gt;
p.conventional_atomic_weight={H=1.008,Li=6.941,B=10.81,C=12.011,N=14.007,O=15.999,Mg=24.305,Si=28.085,S=32.04,Cl=35.45,Ar=39.948,Br=79.904,Tl=204.38}&lt;br /&gt;
function p._get_atomic_weight(element)&lt;br /&gt;
	if (element) then&lt;br /&gt;
		if(type(element.stdAtomicWeight) == type(0))then return element.stdAtomicWeight , true&lt;br /&gt;
		else&lt;br /&gt;
			if(p.conventional_atomic_weight[element.Symbol or &amp;#039;&amp;#039;])then return p.conventional_atomic_weight[element.Symbol or &amp;#039;&amp;#039;] , true end&lt;br /&gt;
			if(type(element.stdAtomicWeight) == type({0,0}))then return element.stdAtomicWeight[1] , true end&lt;br /&gt;
		end&lt;br /&gt;
		if (element.Z and element.N) then return (element.Z + element.N) , false end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._getAtomicWeight(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local Weight, is_natural = p._get_atomic_weight(ele1)&lt;br /&gt;
	if Weight then&lt;br /&gt;
		if is_natural ~= true then&lt;br /&gt;
			return &amp;#039;[&amp;#039; .. Weight ..&amp;#039;]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return Weight&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._get_phase(element, temperature)&lt;br /&gt;
	local test_temperature = temperature or 298.15 --STP&lt;br /&gt;
	if (element) then&lt;br /&gt;
		if element.Melting then&lt;br /&gt;
			if element.Melting &amp;gt; test_temperature then --STP&lt;br /&gt;
				return &amp;quot;solid&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if element.Boiling then&lt;br /&gt;
			if element.Boiling &amp;gt; test_temperature then --STP&lt;br /&gt;
				return &amp;quot;liquid&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				return &amp;quot;gas&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._getPhase(args)&lt;br /&gt;
	--去除模板引用時可能產生的空格&lt;br /&gt;
	local eleString=&amp;#039;&amp;#039; if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then eleString = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	local temperature	= 298.15 if (args[2] and args[2] ~= &amp;#039;&amp;#039;) then temperature = tonumber( mw.text.trim(args[2]) ) or 298.15 end&lt;br /&gt;
	local eleid = p.getListID(eleString)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return p._get_phase(ele1) or &amp;#039;unknown&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getListID(_names)&lt;br /&gt;
	local names = _names&lt;br /&gt;
	if type(_names)==type({})then&lt;br /&gt;
		if type(_names.args)==type({})then&lt;br /&gt;
			names = _names.args[&amp;#039;1&amp;#039;] or _names.args[1]&lt;br /&gt;
		elseif _names[&amp;#039;1&amp;#039;] or _names[1] or _names.name then&lt;br /&gt;
			names = _names[&amp;#039;1&amp;#039;] or _names[1] or _names.name&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local body =&amp;#039;&amp;#039; &lt;br /&gt;
	if tonumber(names) or type(names) == type(0) then&lt;br /&gt;
		local index = tonumber(names)&lt;br /&gt;
		for v, x in ipairs(element_data) do                                &lt;br /&gt;
			if (x.Z == index) then&lt;br /&gt;
				return  v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	i=1&lt;br /&gt;
	for v, x in ipairs(element_data) do                                &lt;br /&gt;
		if ((x.name == names) or (x.page == names)) then&lt;br /&gt;
			return  i&lt;br /&gt;
		end&lt;br /&gt;
		for v1, x1 in ipairs(x.othername) do&lt;br /&gt;
			if (x1 == names) then&lt;br /&gt;
				return  i&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		i=i+1&lt;br /&gt;
	end&lt;br /&gt;
	return -1 &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.decaylink(frame)&lt;br /&gt;
	return p._decaylink(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.elementlink(frame)&lt;br /&gt;
	return p._elementlink(p._loadArgFromFrame(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._elementlink(args)&lt;br /&gt;
	local arg1=&amp;#039;&amp;#039;	if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then	arg1 = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	local arg2=&amp;#039;&amp;#039;	if (args[2] and args[2] ~= &amp;#039;&amp;#039;) then	arg2 = mw.text.trim(args[2]) end&lt;br /&gt;
	local eleid = p.getListID(arg1)&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return error.error{ &amp;#039;未知的元素“&amp;#039; .. arg1 .. &amp;#039;”&amp;#039; } .. &amp;#039;[[Category:含有錯誤元素符號的條目]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	local symbol1=ele1.Symbol&lt;br /&gt;
	if(arg2 and arg2 ~= &amp;#039;&amp;#039;)then if(arg2 ~= &amp;#039;1&amp;#039; )then&lt;br /&gt;
		if (ele1.compound)then symbol1 =&amp;#039;(&amp;#039; .. symbol1 .. &amp;#039;)&amp;#039; end&lt;br /&gt;
		symbol1 = symbol1 .. &amp;#039;&amp;lt;sub&amp;gt;&amp;#039; .. arg2 .. &amp;#039;&amp;lt;/sub&amp;gt;&amp;#039;&lt;br /&gt;
	end end&lt;br /&gt;
	if (ele1.compound)then&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. ele1.page .. &amp;#039;|&amp;#039; .. symbol1 .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.NotElement)then&lt;br /&gt;
		return error.error{ &amp;#039;“&amp;#039; .. args[1] .. &amp;#039;”不是元素。&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.correct and ele1.correct  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return error.error{ &amp;#039;“&amp;#039; .. args[1] .. &amp;#039;”不是“&amp;#039;.. ele1.correct .. &amp;#039;”的正確拼法。&amp;#039; }&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.page and ele1.page  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. ele1.page .. &amp;#039;|&amp;#039; .. symbol1 .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return error.error{ &amp;#039;元素“&amp;#039; .. args[1] .. &amp;#039;”沒有對應的頁面。&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._element_symbol(args)&lt;br /&gt;
	local arg1=&amp;#039;&amp;#039;	if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then	arg1 = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	local arg2=&amp;#039;&amp;#039;	if (args[2] and args[2] ~= &amp;#039;&amp;#039;) then	arg2 = mw.text.trim(args[2]) end&lt;br /&gt;
	local eleid = p.getListID(arg1)&lt;br /&gt;
	if (eleid==-1) then&lt;br /&gt;
		return error.error{ &amp;#039;未知的元素“&amp;#039; .. arg1 .. &amp;#039;”&amp;#039; } .. &amp;#039;[[Category:含有錯誤元素符號的條目]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	local symbol1=ele1.Symbol&lt;br /&gt;
	if(arg2 and arg2 ~= &amp;#039;&amp;#039;)then if(arg2 ~= &amp;#039;1&amp;#039; )then&lt;br /&gt;
		if (ele1.compound)then symbol1 =&amp;#039;(&amp;#039; .. symbol1 .. &amp;#039;)&amp;#039; end&lt;br /&gt;
		symbol1 = symbol1 .. &amp;#039;&amp;lt;sub&amp;gt;&amp;#039; .. arg2 .. &amp;#039;&amp;lt;/sub&amp;gt;&amp;#039;&lt;br /&gt;
	end end&lt;br /&gt;
	if (ele1.compound)then&lt;br /&gt;
		return symbol1&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.NotElement)then&lt;br /&gt;
		return error.error{ &amp;#039;“&amp;#039; .. args[1] .. &amp;#039;”不是元素。&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.correct and ele1.correct  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return error.error{ &amp;#039;“&amp;#039; .. args[1] .. &amp;#039;”不是“&amp;#039;.. ele1.correct .. &amp;#039;”的正確拼法。&amp;#039; }&lt;br /&gt;
	end&lt;br /&gt;
	if (ele1.page and ele1.page  ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
		return symbol1&lt;br /&gt;
	else&lt;br /&gt;
		return error.error{ &amp;#039;元素“&amp;#039; .. args[1] .. &amp;#039;”沒有對應的頁面。&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._decaylink(args)&lt;br /&gt;
	local arg1=&amp;#039;&amp;#039;	if (args[1] and args[1] ~= &amp;#039;&amp;#039;) then	arg1 = mw.text.trim(args[1]) else return &amp;#039;&amp;#039; end&lt;br /&gt;
	if(arg1==&amp;#039;p&amp;#039;) then arg1=&amp;#039;p+&amp;#039;end if(arg1==&amp;#039;n&amp;#039;) then arg1=&amp;#039;n0&amp;#039;end&lt;br /&gt;
	local decayid = p.getListID(arg1)&lt;br /&gt;
	if (decayid==-1) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local decay1 = p._copytable(element_data[decayid])&lt;br /&gt;
	if (decay1.decay)then&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. decay1.page .. &amp;#039;|&amp;#039; .. decay1.Symbol .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.IUPAC = { [0] = &amp;#039;n&amp;#039;, [1] = &amp;#039;u&amp;#039;, [2] = &amp;#039;b&amp;#039;, [3] = &amp;#039;t&amp;#039;, [4] = &amp;#039;q&amp;#039;, [5] = &amp;#039;p&amp;#039;, [6] = &amp;#039;h&amp;#039;, [7] = &amp;#039;s&amp;#039;, [8] = &amp;#039;o&amp;#039;, [9] = &amp;#039;e&amp;#039; }&lt;br /&gt;
p.IUPAC_name = { [0] = &amp;#039;nil&amp;#039;, [1] = &amp;#039;un&amp;#039;, [2] = &amp;#039;bi&amp;#039;, [3] = &amp;#039;tri&amp;#039;, [4] = &amp;#039;quad&amp;#039;, [5] = &amp;#039;pent&amp;#039;, &lt;br /&gt;
					[6] = &amp;#039;hex&amp;#039;, [7] = &amp;#039;sept&amp;#039;, [8] = &amp;#039;oct&amp;#039;, [9] = &amp;#039;enn&amp;#039;, [10] = &amp;#039;ium&amp;#039;, [11] = &amp;#039;um&amp;#039; }&lt;br /&gt;
&lt;br /&gt;
function p.DecodeByIUPAC_rules(symbol_data)&lt;br /&gt;
	local symbol = mw.ustring.lower(symbol_data)&lt;br /&gt;
	local symbol_len = mw.ustring.len(symbol)&lt;br /&gt;
	local Z_data = &amp;#039;&amp;#039;&lt;br /&gt;
	for i = 1, symbol_len do&lt;br /&gt;
		local get_id = nil&lt;br /&gt;
		for j = 0, 9 do if mw.ustring.sub(symbol ,i, i) == p.IUPAC[j] then get_id = j end end&lt;br /&gt;
		if get_id == nil then return nil end&lt;br /&gt;
		Z_data = Z_data .. get_id&lt;br /&gt;
	end&lt;br /&gt;
	return tonumber(Z_data)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.outputLuaListTemplate()&lt;br /&gt;
	local body=&amp;#039;&amp;#039;&lt;br /&gt;
	for _, ele in ipairs(element_data) do&lt;br /&gt;
		body = body .. &amp;quot;\t[\&amp;quot;&amp;quot; .. ele.name .. &amp;quot;\&amp;quot;] = {  },\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;{\n&amp;quot; .. body .. &amp;#039;}&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getElementByIUPAC_rules(index_input)&lt;br /&gt;
	local result = &amp;#039;&amp;#039;&lt;br /&gt;
	local result_name = &amp;#039;&amp;#039;&lt;br /&gt;
	local index = tonumber(index_input)&lt;br /&gt;
	if index ~= nil then index = math.floor(index) else index = 0 end&lt;br /&gt;
	local index_str = &amp;#039;&amp;#039; .. index&lt;br /&gt;
	local index_len = mw.ustring.len(index_str)&lt;br /&gt;
	if index &amp;gt; 100 then&lt;br /&gt;
		for i = 1, index_len do&lt;br /&gt;
			local data = p.IUPAC[tonumber(&amp;#039;&amp;#039; .. mw.ustring.sub(index_str ,i, i)) or 0]&lt;br /&gt;
			local name = p.IUPAC_name[tonumber(&amp;#039;&amp;#039; .. mw.ustring.sub(index_str ,i, i)) or 0]&lt;br /&gt;
			if i == 1 then &lt;br /&gt;
				result = result .. mw.ustring.upper(data)&lt;br /&gt;
				result_name = result_name .. mw.ustring.upper(mw.ustring.sub(name,1,1)) .. mw.ustring.sub(name,2,-1)&lt;br /&gt;
			else&lt;br /&gt;
				result = result .. data&lt;br /&gt;
				result_name = result_name .. name&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if result == &amp;#039;&amp;#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local result_name_index = 11 if mw.ustring.sub(result_name,-1,-1) ~= &amp;#039;i&amp;#039; then result_name_index = result_name_index - 1 end&lt;br /&gt;
	return { name=result_name .. p.IUPAC_name[result_name_index] , page=result, Symbol=result, Z=index }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getElementByZ(index)&lt;br /&gt;
	local body =&amp;#039;&amp;#039;         &lt;br /&gt;
	for v, x in ipairs(element_data) do                                &lt;br /&gt;
		if (x.Z == index) then&lt;br /&gt;
			return p._copytable(x)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if index &amp;gt; 0 then&lt;br /&gt;
		return p._copytable(p.getElementByIUPAC_rules(index))&lt;br /&gt;
	end&lt;br /&gt;
	return nil &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.next_element(symbol)&lt;br /&gt;
	local eleid = p.getListID(symbol)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	&lt;br /&gt;
	if ele1 == nil then ele_z = p.DecodeByIUPAC_rules(symbol) else if ele1.Z == nil then&lt;br /&gt;
		ele_z = p.DecodeByIUPAC_rules(symbol) else ele_z = ele1.Z end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ele_z ~= nil then&lt;br /&gt;
		return p.getElementByZ(ele_z + 1)&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.last_element(symbol)&lt;br /&gt;
	local eleid = p.getListID(symbol)&lt;br /&gt;
	local ele1 = p._copytable(element_data[eleid])&lt;br /&gt;
	&lt;br /&gt;
	if ele1 == nil then ele_z = p.DecodeByIUPAC_rules(symbol) else if ele1.Z == nil then&lt;br /&gt;
		ele_z = p.DecodeByIUPAC_rules(symbol) else ele_z = ele1.Z end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ele_z ~= nil then&lt;br /&gt;
		return p.getElementByZ(ele_z - 1)&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._copytable(input_table)&lt;br /&gt;
	local output_table&lt;br /&gt;
	if type(input_table) == type({}) then&lt;br /&gt;
		output_table = {}&lt;br /&gt;
		for k,v in pairs(input_table) do&lt;br /&gt;
			local temp&lt;br /&gt;
			if type(input_table) == type({}) then&lt;br /&gt;
				temp = mw.clone(p._copytable(v))&lt;br /&gt;
			elseif type(input_table) == type(tonumber) then&lt;br /&gt;
			else&lt;br /&gt;
				temp = mw.copy(v)&lt;br /&gt;
			end&lt;br /&gt;
			output_table[k]=temp&lt;br /&gt;
		end&lt;br /&gt;
	elseif type(input_table) == type(tonumber) then&lt;br /&gt;
		--do nothing&lt;br /&gt;
	else&lt;br /&gt;
		output_table = mw.clone(input_table)&lt;br /&gt;
	end&lt;br /&gt;
	return output_table&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ElectronConfiguration(frame)&lt;br /&gt;
	if type(lib_EC.ElectronConfiguration) ~= type(function()end) then lib_EC = require( &amp;#039;Module:Element/ElectronConfiguration&amp;#039; ) end&lt;br /&gt;
	return lib_EC.ElectronConfiguration(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._ElectronConfiguration(args)&lt;br /&gt;
	if type(lib_EC._ElectronConfiguration) ~= type(function()end) then lib_EC = require( &amp;#039;Module:Element/ElectronConfiguration&amp;#039; ) end&lt;br /&gt;
	return lib_EC._ElectronConfiguration(args)&lt;br /&gt;
end&lt;br /&gt;
function p.htmleleconf(eleconf, showall)&lt;br /&gt;
	if type(lib_EC._eleconftostring) ~= type(function()end) then lib_EC = require( &amp;#039;Module:Element/ElectronConfiguration&amp;#039; ) end&lt;br /&gt;
	return lib_EC._eleconftostring(eleconf, showall)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--本模塊的沙盒(測試)函數&lt;br /&gt;
function p.sandbox(frame)&lt;br /&gt;
	-- For calling from #invoke.&lt;br /&gt;
    local args&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        args = lib_arg.getArgs(frame) --frame.args&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        args = frame&lt;br /&gt;
    end&lt;br /&gt;
	return p._elementlink(args)&lt;br /&gt;
end&lt;br /&gt;
function p._sandbox(args)&lt;br /&gt;
	return element_data[p.getListID(args[1])].name &lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;A2569875</name></author>
	</entry>
</feed>