モジュール:Chem
ナビゲーションに移動
検索に移動
-- 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