1(* Text Exporter *)
2
3Begin["System`Convert`TextDump`"]
4
5
6SVGExport[filename_, expr_, opts___] :=
7  Module[{strm, data, p, q, expr2},
8    strm = OpenWrite[filename];
9    If[strm === $Failed, Return[$Failed]];
10    expr2 = If[Head[expr]=!=System`Graphics, System`Graphics[{System`Inset[ToString[expr]]}], expr];
11	 expr2= MathMLForm[expr2];
12    data=ToString[expr2];
13    p = StringPosition[data, "data:image/svg+xml;base64"][[1]][[2]];
14    (*Let's assume that the end of the string is reached just before the last quote. *)
15    q = StringPosition[data,"\""][[-1]][[-2]];
16    data = StringTake[data  ,{p+2,q-1}];
17    WriteString[strm, System`Convert`B64Dump`B64Decode[data]];
18    Close[strm];
19  ]
20
21ImportExport`RegisterExport[
22    "SVG",
23	System`Convert`TextDump`SVGExport,
24	FunctionChannels -> {"FileNames"},
25	Options -> {"ByteOrderMark"},
26	DefaultElement -> "Plaintext",
27	BinaryFormat -> False
28]
29
30
31End[]
32