Module:Math script

From Polytope Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:Math script/doc

local blackboard_lookup =
  { a =
    '๐•’'
  , b =
    '๐•“'
  , c =
    '๐•”'
  , d =
    '๐••'
  , e =
    '๐•–'
  , f =
    '๐•—'
  , g =
    '๐•˜'
  , h =
    '๐•™'
  , i =
    '๐•š'
  , j =
    '๐•›'
  , k =
    '๐•œ'
  , l =
    '๐•'
  , m =
    '๐•ž'
  , n =
    '๐•Ÿ'
  , o =
    '๐• '
  , p =
    '๐•ก'
  , q =
    '๐•ข'
  , r =
    '๐•ฃ'
  , s =
    '๐•ค'
  , t =
    '๐•ฅ'
  , u =
    '๐•ฆ'
  , v =
    '๐•ง'
  , w =
    '๐•จ'
  , x =
    '๐•ฉ'
  , y =
    '๐•ช'
  , z =
    '๐•ซ'
  , A =
    '๐”ธ'
  , B =
    '๐”น'
  , C =
    'โ„‚'
  , D =
    '๐”ป'
  , E =
    '๐”ผ'
  , F =
    '๐”ฝ'
  , G =
    '๐”พ'
  , H =
    'โ„'
  , I =
    '๐•€'
  , J =
    '๐•'
  , K =
    '๐•‚'
  , L =
    '๐•ƒ'
  , M =
    '๐•„'
  , N =
    'โ„•'
  , O =
    '๐•†'
  , P =
    'โ„™'
  , Q =
    'โ„š'
  , R =
    'โ„'
  , S =
    '๐•Š'
  , T =
    '๐•‹'
  , U =
    '๐•Œ'
  , V =
    '๐•'
  , W =
    '๐•Ž'
  , X =
    '๐•'
  , Y =
    '๐•'
  , Z =
    'โ„ค'
  , gamma =
    'โ„ฝ'
  , pi =
    'โ„ผ'
  , Gamma =
    'โ„พ'
  , Pi =
    'โ„ฟ'
  , Sigma =
    'โ…€'
  };


local greek_lookup =
  { Alpha =
    'ฮ‘'
  , Beta =
    'ฮ’'
  , Gamma =
    'ฮ“'
  , Delta =
    'ฮ”'
  , Epsilon =
    'ฮ•'
  , Zeta =
    'ฮ–'
  , Eta =
    'ฮ—'
  , Theta =
    'ฮ˜'
  , Iota =
    'ฮ™'
  , Kappa =
    'ฮš'
  , Lambda =
    'ฮ›'
  , Mu =
    'ฮœ'
  , Nu =
    'ฮ'
  , Xi =
    'ฮž'
  , Omicron =
    'ฮŸ'
  , Pi =
    'ฮ '
  , Rho =
    'ฮก'
  , Sigma =
    'ฮฃ'
  , Tau =
    'ฮค'
  , Upsilon =
    'ฮฅ'
  , Phi =
    'ฮฆ'
  , Chi =
    'ฮง'
  , Psi =
    'ฮจ'
  , Omega =
    'ฮฉ'
  , alpha =
    'ฮฑ'
  , beta =
    'ฮฒ'
  , gamma =
    'ฮณ'
  , delta =
    'ฮด'
  , epsilon =
    'ฮต'
  , zeta =
    'ฮถ'
  , eta =
    'ฮท'
  , theta =
    'ฮธ'
  , iota =
    'ฮน'
  , kappa =
    'ฮบ'
  , lambda =
    'ฮป'
  , mu =
    'ฮผ'
  , nu =
    'ฮฝ'
  , xi =
    'ฮพ'
  , omicron =
    'ฮฟ'
  , pi =
    'ฯ€'
  , rho =
    'ฯ'
  , sigma =
    'ฯƒ'
  , tau =
    'ฯ„'
  , upsilon =
    'ฯ…'
  , phi =
    'ฯ†'
  , chi =
    'ฯ‡'
  , psi =
    'ฯˆ'
  , omega =
    'ฯ‰'
  -- Extra greek characters for fun
  , Digamma =
    'ฯœ'
  , Heta =
    'อฐ'
  , Koppa =
    'ฯ˜'
  , San =
    'ฯบ'
  , Sampi =
    'ฯ '
  , Sho =
    'ฯท'
  , Tsan =
    'อถ'
  , digamma =
    'ฯ'
  , heta =
    'อฑ'
  , koppa =
    'ฯ™'
  , san =
    'ฯป'
  , sampi =
    'ฯก'
  , sho =
    'ฯธ'
  , tsan =
    'อท'
  };

local mathcal_lookup =
  { A =
    '๐“'
  , B =
    '๐“‘'
  , C =
    '๐“’'
  , D =
    '๐““'
  , E =
    '๐“”'
  , F =
    '๐“•'
  , G =
    '๐“–'
  , H =
    '๐“—'
  , I =
    '๐“˜'
  , J =
    '๐“™'
  , K =
    '๐“š'
  , L =
    '๐“›'
  , M =
    '๐“œ'
  , N =
    '๐“'
  , O =
    '๐“ž'
  , P =
    '๐“Ÿ'
  , Q =
    '๐“ '
  , R =
    '๐“ก'
  , S =
    '๐“ข'
  , T =
    '๐“ฃ'
  , U =
    '๐“ค'
  , V =
    '๐“ฅ'
  , W =
    '๐“ฆ'
  , X =
    '๐“ง'
  , Y =
    '๐“จ'
  , Z =
    '๐“ฉ'
  , a =
    '๐“ช'
  , b =
    '๐“ซ'
  , c =
    '๐“ฌ'
  , d =
    '๐“ญ'
  , e =
    '๐“ฎ'
  , f =
    '๐“ฏ'
  , g =
    '๐“ฐ'
  , h =
    '๐“ฑ'
  , i =
    '๐“ฒ'
  , j =
    '๐“ณ'
  , k =
    '๐“ด'
  , l =
    '๐“ต'
  , m =
    '๐“ถ'
  , n =
    '๐“ท'
  , o =
    '๐“ธ'
  , p =
    '๐“น'
  , q =
    '๐“บ'
  , r =
    '๐“ป'
  , s =
    '๐“ผ'
  , t =
    '๐“ฝ'
  , u =
    '๐“พ'
  , v =
    '๐“ฟ'
  , w =
    '๐”€'
  , x =
    '๐”'
  , y =
    '๐”‚'
  , z =
    '๐”ƒ'
  };

local hebrew_lookup =
  { aleph =
    'โ„ต'
  , bet =
    'โ„ถ'
  , gimmel =
    'โ„ท'
  , dalet =
    'โ„ธ'
  }

blackboard = function(frame)
  return blackboard_lookup[frame.args[1]]
end

greek = function(frame)
  return greek_lookup[frame.args[1]]
end

-- Puts lower case letters in italics and capitals in normal.
styledgreek = function(frame)
  local arg = frame.args[1]
  local fStyle = 'normal'
  if (arg:lower() == arg) then
  	fStyle = 'italic'
  end
  local res = mw.html.create('span')
    :addClass('texhtml mvar')
    :css('font-style', fStyle)
    :node(greek_lookup[arg])
  return res
end

mathcal = function(frame)
  return mathcal_lookup[frame.args[1]]
end

hebrew = function(frame)
  return hebrew_lookup[frame.args[1]]
end

return
  { blackboard =
    blackboard
  , greek =
    greek
  , styledgreek =
    styledgreek
  , mathcal =
    mathcal
  , hebrew =
    hebrew
  };