mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Math
synced 2024-11-28 01:10:09 +00:00
a7dc3ef012
survive sanitizing. It can be rendered by the corresponding unicode character, but this doesn't display correctly without the proper fonts installed.
25 lines
1.2 KiB
OCaml
25 lines
1.2 KiB
OCaml
open Tex
|
|
open Render_info
|
|
|
|
type t = TREE_MN of string | TREE_MO of string | TREE_MI of string | TREE_MF of string | TREE_MFB of string * string
|
|
|
|
let rec make_mathml_tree = function
|
|
TREE_MN a::otr,TEX_LITERAL(MHTMLABLEC(_,_,_,MN,b))::itr -> make_mathml_tree(TREE_MN (a^b)::otr,itr)
|
|
| otr,TEX_LITERAL(MHTMLABLEC(_,_,_,MN,a))::itr -> make_mathml_tree(TREE_MN a::otr,itr)
|
|
| otr,TEX_LITERAL(MHTMLABLEC(_,_,_,MO,a))::itr -> make_mathml_tree(TREE_MO a::otr,itr)
|
|
| otr,TEX_LITERAL(MHTMLABLEC(_,_,_,MI,a))::itr -> make_mathml_tree(TREE_MI a::otr,itr)
|
|
| otr,TEX_LITERAL(MHTMLABLEC(_,_,_,MF,a))::itr -> make_mathml_tree(TREE_MF a::otr,itr)
|
|
| otr,TEX_LITERAL(MHTMLABLEFC(_,_,_,MF,a,b))::itr -> make_mathml_tree(TREE_MFB (a,b)::otr,itr)
|
|
| otr,TEX_CURLY(crl)::itr -> make_mathml_tree(otr,crl@itr)
|
|
| otr,[] -> List.rev otr
|
|
| _ -> failwith "failed to render mathml"
|
|
|
|
let render_mathml_tree = function
|
|
TREE_MN s -> "<mn>"^s^"</mn>"
|
|
| TREE_MI s -> "<mi>"^s^"</mi>"
|
|
| TREE_MO s -> "<mo>"^s^"</mo>"
|
|
| TREE_MF s -> "<mi>"^s^" </mi>"
|
|
| TREE_MFB (s,b) -> "<mi>"^s^"</mi>"^"<mo>"^b^"</mo>"
|
|
|
|
let render tree = try Some (Util.mapjoin render_mathml_tree (make_mathml_tree ([],tree))) with _ -> None
|