モジュール:Chem

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動

ここに呼び出す説明文 『 モジュール:Chem/doc 』 が作成されていません。

-- Chem Tag Workaround
local p = {}

function p.format(s)
	local keisu = 1
	local nk = 1
	local v = ""
	for i=1,string.len(s) do
		c=string.sub(s, i, i)
		if keisu == 1 and c:match("%d") then
			v = v .. c
		elseif c:match("%a") then
			keisu = 0
			if nk == -1 then
				v = v .. "</sub>" .. c
			else
				v = v .. c
			end
			nk = 1
		elseif c:match("%d") and nk == 1 then
			v = v .. "<sub>" .. c
			nk = -1
		elseif c:match("%d") then
			v = v .. c
			nk = -1
		else
			v = v .. c
		end
	end
	if nk == -1 then
		v = v .. "</sub>"
	end
	return v
end

function p.chem(frame)
	local val = ""
	local oh = 0
	for i=1,#frame do
		chm = p.format(frame[i])
		if oh==0 then
			val = val .. chm
			oh = 1
		elseif chm == "->" then
			val = val .. "→"
			oh = 0
		else
			val = val .. "+" .. chm
		end
	end
	return val
end

return p