Moduł:wzór chemiczny: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
wycofuję drugi parametr ze względu na kontrowersje w Barze
Znacznik: Anulowanie edycji
wsparcie dla znakow [] (poniewaz tworzymy link do poszczegolnych symboli, parser potyka sie na obecnosci potrojnych [lub ], np. w diopsyd)
 
Linia 4:
local T_ELEM = 0
local T_NUM = 1
local T_CHARGET_OPEN = 2 -- '['
local T_NUM_CHARGET_CLOSE = 3 -- ']'
local T_CHARGE = 4
local T_NUM_CHARGE = 5
local T_NOCHANGE = 100
 
Linia 15 ⟶ 17:
end
end
 
 
function genlink(t, x)
Linia 27 ⟶ 28:
elseif t == T_NUM then
return "<sub class=\"chem-sub\">" .. x .. "</sub>"
elseif t == T_OPEN or t == T_CLOSE then
return "&#8203;" .. x .. "&#8203;" -- zero-width space
elseif t == T_CHARGE then
return "<sup class=\"chem-sup\">" .. rempar(x) .. "</sup>"
Linia 47 ⟶ 50:
if not x then x = f:match('^[\\+\\-]', i); t = T_CHARGE; end
if not x then x = f:match('^[%d.]+', i); t = T_NUM; end
if not x then x = f:match('^[%[]', i); t = T_OPEN; end
if not x then x = f:match('^[%]]', i); t = T_CLOSE; end
if not x then x = f:match('^.', i); t = T_NOCHANGE; end
if x then i = i + x:len(); else i = i + 1000; error("Nieprawidłowy lub nieobsługiwany wzór: " .. f); end