diff -r 94a0eceff038 MoinMoin/converter2/html_out.py
--- a/MoinMoin/converter2/html_out.py	Tue Aug 10 14:22:42 2010 +0200
+++ b/MoinMoin/converter2/html_out.py	Sat Aug 14 20:32:16 2010 +0200
@@ -13,7 +13,8 @@
 from emeraldtree import ElementTree as ET
 
 from MoinMoin import wikiutil
-from MoinMoin.util.tree import html, moin_page, xlink, xml
+from MoinMoin.util.tree import moin_page, xlink, xml
+from MoinMoin.util.tree import html, svg, mathml
 
 
 class ElementException(RuntimeError):
@@ -34,6 +35,8 @@
 class Attributes(object):
     namespaces_valid_output = frozenset([
         html,
+        svg,
+        mathml,
     ])
 
     visit_class = Attribute('class')
diff -r 94a0eceff038 MoinMoin/converter2/image_in.py
--- a/MoinMoin/converter2/image_in.py	Tue Aug 10 14:22:42 2010 +0200
+++ b/MoinMoin/converter2/image_in.py	Sat Aug 14 20:32:16 2010 +0200
@@ -34,7 +34,7 @@
 
 from . import default_registry
 from MoinMoin.util.mime import Type, type_moin_document
-default_registry.register(Converter._factory, Type('image/svg+xml'), type_moin_document)
+#default_registry.register(Converter._factory, Type('image/svg+xml'), type_moin_document)
 default_registry.register(Converter._factory, Type('image/png'), type_moin_document)
 default_registry.register(Converter._factory, Type('image/jpeg'), type_moin_document)
 default_registry.register(Converter._factory, Type('image/gif'), type_moin_document)
diff -r 94a0eceff038 MoinMoin/converter2/mathmlentities.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MoinMoin/converter2/mathmlentities.py	Sat Aug 14 20:32:16 2010 +0200
@@ -0,0 +1,762 @@
+entitydefs = {
+"Larr": "&#8606;",
+"DownArrowUpArrow": "&#8693;",
+"xharr": "&#10231;",
+"DoubleVerticalBar": "&#8741;",
+"HumpDownHump": "&#8782;",
+"eparsl": "&#10723;",
+"bull": "&#8226;",
+"DiacriticalGrave": "&#96;",
+"boxdl": "&#9488;",
+"nvrArr": "&#8655;",
+"blacktriangledown": "&#9662;",
+"otimes": "&#8855;",
+"gl": "&#8823;",
+"lAarr": "&#8666;",
+"lessapprox": "&#8818;",
+"UpperLeftArrow": "&#8598;",
+"lEg": "&#8922;",
+"lsquor": "&#8218;",
+"NotLessTilde": "&#8820;",
+"Longleftarrow": "&#10232;",
+"boxdL": "&#9557;",
+"EmptySmallSquare": "&#9723;",
+"nrtrie": "&#8941;",
+"utrif": "&#9652;",
+"bNot": "&#10989;",
+"Not": "&#10988;",
+"smile": "&#8995;",
+"angmsd": "&#8737;",
+"Lscr": "&#8466;",
+"harrcir": "&#10568;",
+"Wedge": "&#8896;",
+"ocirc": "&#244;",
+"dHar": "&#10597;",
+"rsquor": "&#8217;",
+"suplarr": "&#10619;",
+"equivDD": "&#10872;",
+"OverBar": "&#175;",
+"Qscr": "&#119980;",
+"Rang": "&#12299;",
+"larrtl": "&#8610;",
+"ohbar": "&#10677;",
+"LeftArrow": "&#8592;",
+"ntriangleleft": "&#8938;",
+"DoubleRightArrow": "&#8658;",
+"Backslash": "&#8726;",
+"Gg": "&#8921;",
+"NotGreaterEqual": "&#8817;",
+"harrw": "&#8621;",
+"lsime": "&#10893;",
+"nparallel": "&#8742;",
+"epar": "&#8917;",
+"NestedLessLess": "&#8810;",
+"iinfin": "&#10716;",
+"PrecedesEqual": "&#10927;",
+"boxDL": "&#9559;",
+"cularr": "&#8630;",
+"nlsim": "&#8820;",
+"DoubleLeftRightArrow": "&#8660;",
+"angrtvbd": "&#10653;",
+"lparlt": "&#10643;",
+"Gscr": "&#119970;",
+"UpTeeArrow": "&#8613;",
+"elsdot": "&#10903;",
+"sext": "&#10038;",
+"LessFullEqual": "&#8806;",
+"SquareSubsetEqual": "&#8849;",
+"ldca": "&#10550;",
+"boxDl": "&#9558;",
+"hscr": "&#119997;",
+"blacktriangleleft": "&#9666;",
+"npolint": "&#10772;",
+"OpenCurlyQuote": "&#8216;",
+"utri": "&#9653;",
+"EmptyVerySmallSquare": "&#9643;",
+"rightleftharpoons": "&#8652;",
+"rarrb": "&#8677;",
+"leg": "&#8922;",
+"lharul": "&#10602;",
+"lesdot": "&#10879;",
+"LowerRightArrow": "&#8600;",
+"leq": "&#8804;",
+"les": "&#10877;",
+"vltri": "&#8882;",
+"rarrtl": "&#8611;",
+"Udblac": "&#368;",
+"GreaterEqual": "&#8805;",
+"supmult": "&#10946;",
+"Iscr": "&#8464;",
+"angmsdac": "&#10666;",
+"angmsdab": "&#10665;",
+"angmsdaa": "&#10664;",
+"ReverseElement": "&#8715;",
+"angmsdaf": "&#10669;",
+"angmsdae": "&#10668;",
+"angmsdad": "&#10667;",
+"squf": "&#9642;",
+"angmsdah": "&#10671;",
+"oscr": "&#8500;",
+"dblac": "&#733;",
+"rppolint": "&#10770;",
+"gesdotol": "&#10884;",
+"DoubleLeftTee": "&#10980;",
+"circleddash": "&#8861;",
+"DoubleLongRightArrow": "&#10233;",
+"CupCap": "&#8781;",
+"Vee": "&#8897;",
+"boxVl": "&#9570;",
+"Therefore": "&#8756;",
+"DownArrow": "&#8595;",
+"LeftRightArrow": "&#8596;",
+"NotSquareSubsetEqual": "&#8930;",
+"lesdotor": "&#10883;",
+"Star": "&#8902;",
+"angrt": "&#8735;",
+"pscr": "&#120005;",
+"trisb": "&#10701;",
+"gE": "&#8807;",
+"boxVL": "&#9571;",
+"GreaterLess": "&#8823;",
+"Fscr": "&#8497;",
+"ForAll": "&#8704;",
+"andv": "&#10842;",
+"Zscr": "&#119989;",
+"UnderBracket": "&#9141;",
+"Icirc": "&#206;",
+"Lang": "&#12298;",
+"latail": "&#10521;",
+"LeftUpVector": "&#8639;",
+"RuleDelayed": "&#10740;",
+"UpDownArrow": "&#8597;",
+"bigtriangleup": "&#9651;",
+"lsim": "&#8818;",
+"phone": "&#9742;",
+"RightUpVectorBar": "&#10580;",
+"boxvL": "&#9569;",
+"icirc": "&#238;",
+"vrtri": "&#8883;",
+"SuchThat": "&#8715;",
+"jscr": "&#119999;",
+"parsim": "&#10995;",
+"GreaterEqualLess": "&#8923;",
+"ldrushar": "&#10571;",
+"LeftCeiling": "&#8968;",
+"Int": "&#8748;",
+"malt": "&#10016;",
+"NotTildeEqual": "&#8772;",
+"GreaterSlantEqual": "&#10878;",
+"boxvl": "&#9508;",
+"lobrk": "&#12314;",
+"yscr": "&#120014;",
+"nvlt": "&#8814;",
+"male": "&#9794;",
+"rarrfs": "&#10526;",
+"OverBracket": "&#9140;",
+"vangrt": "&#8894;",
+"RightDownTeeVector": "&#10589;",
+"Prime": "&#8243;",
+"RightVector": "&#8640;",
+"Ll": "&#8920;",
+"OpenCurlyDoubleQuote": "&#8220;",
+"submult": "&#10945;",
+"Lt": "&#8810;",
+"NotSuperset": "&#8837;",
+"topcir": "&#10993;",
+"CapitalDifferentialD": "&#8517;",
+"smte": "&#10924;",
+"LeftTriangle": "&#8882;",
+"uHar": "&#10595;",
+"LeftDownVector": "&#8643;",
+"Rscr": "&#8475;",
+"trianglelefteq": "&#8884;",
+"LeftAngleBracket": "&#9001;",
+"roplus": "&#10798;",
+"dharl": "&#8643;",
+"lbbrk": "&#12308;",
+"Jscr": "&#119973;",
+"ntgl": "&#8825;",
+"nharr": "&#8622;",
+"CirclePlus": "&#8853;",
+"tprime": "&#8244;",
+"Hcirc": "&#292;",
+"ltrie": "&#8884;",
+"ltrif": "&#9666;",
+"Uarrocir": "&#10569;",
+"NotGreaterTilde": "&#8821;",
+"DownTee": "&#8868;",
+"blacktriangleright": "&#9656;",
+"maltese": "&#10016;",
+"lap": "&#8818;",
+"larrsim": "&#10611;",
+"lbrke": "&#10635;",
+"xhArr": "&#10234;",
+"tritime": "&#10811;",
+"NotRightTriangle": "&#8939;",
+"profline": "&#8978;",
+"PlusMinus": "&#177;",
+"laemptyv": "&#10676;",
+"lE": "&#8806;",
+"LeftTeeVector": "&#10586;",
+"cularrp": "&#10557;",
+"CounterClockwiseContourIntegral": "&#8755;",
+"leftrightharpoons": "&#8651;",
+"otimesas": "&#10806;",
+"Hscr": "&#8459;",
+"lozf": "&#10731;",
+"circledast": "&#8859;",
+"NotLeftTriangle": "&#8938;",
+"cudarrl": "&#10552;",
+"LeftTriangleBar": "&#10703;",
+"NotSucceedsSlantEqual": "&#8929;",
+"le": "&#8804;",
+"RightCeiling": "&#8969;",
+"Lleftarrow": "&#8666;",
+"GreaterGreater": "&#10914;",
+"cscr": "&#119992;",
+"upharpoonleft": "&#8639;",
+"Breve": "&#728;",
+"Odblac": "&#336;",
+"RightArrowBar": "&#8677;",
+"jcirc": "&#309;",
+"multimap": "&#8888;",
+"odiv": "&#10808;",
+"hybull": "&#8259;",
+"UnderBrace": "&#65080;",
+"Cap": "&#8914;",
+"CircleTimes": "&#8855;",
+"ContourIntegral": "&#8750;",
+"gscr": "&#8458;",
+"SucceedsSlantEqual": "&#8829;",
+"LeftUpVectorBar": "&#10584;",
+"pluscir": "&#10786;",
+"Succeeds": "&#8827;",
+"gesles": "&#10900;",
+"Integral": "&#8747;",
+"rAarr": "&#8667;",
+"larrfs": "&#10525;",
+"leftharpoondown": "&#8637;",
+"NotTilde": "&#8769;",
+"operp": "&#10681;",
+"NotLess": "&#8814;",
+"xutri": "&#9651;",
+"NotCongruent": "&#8802;",
+"squarf": "&#9642;",
+"el": "&#10905;",
+"leqq": "&#8806;",
+"female": "&#9792;",
+"dlcorn": "&#8990;",
+"UpTee": "&#8869;",
+"looparrowleft": "&#8619;",
+"nless": "&#8814;",
+"oast": "&#8859;",
+"Ocirc": "&#212;",
+"harr": "&#8596;",
+"Gcirc": "&#284;",
+"lesseqqgtr": "&#8922;",
+"angmsdag": "&#10670;",
+"lcub": "&#123;",
+"UnderParenthesis": "&#65078;",
+"smt": "&#10922;",
+"midcir": "&#10992;",
+"LongRightArrow": "&#10230;",
+"RightTeeVector": "&#10587;",
+"reg": "&#174;",
+"LeftTriangleEqual": "&#8884;",
+"CloseCurlyQuote": "&#8217;",
+"ycirc": "&#375;",
+"orv": "&#10843;",
+"DoubleRightTee": "&#8872;",
+"uharl": "&#8639;",
+"NotTildeTilde": "&#8777;",
+"lsimg": "&#10895;",
+"boxUl": "&#9564;",
+"rtriltri": "&#10702;",
+"PartialD": "&#8706;",
+"ntrianglelefteq": "&#8940;",
+"ange": "&#10660;",
+"bscr": "&#119991;",
+"Barwed": "&#8966;",
+"rangle": "&#9002;",
+"times": "&#215;",
+"measuredangle": "&#8737;",
+"gtreqqless": "&#8923;",
+"Escr": "&#8496;",
+"DoubleContourIntegral": "&#8751;",
+"Tilde": "&#8764;",
+"LeftUpTeeVector": "&#10592;",
+"SquareIntersection": "&#8851;",
+"omid": "&#10678;",
+"boxUL": "&#9565;",
+"rang": "&#9002;",
+"OverBrace": "&#65079;",
+"scpolint": "&#10771;",
+"RightUpDownVector": "&#10575;",
+"lrhar": "&#8651;",
+"RightFloor": "&#8971;",
+"wscr": "&#120012;",
+"mldr": "&#8230;",
+"raemptyv": "&#10675;",
+"OverParenthesis": "&#65077;",
+"lthree": "&#8907;",
+"Diamond": "&#8900;",
+"Longleftrightarrow": "&#10234;",
+"LeftDownVectorBar": "&#10585;",
+"parallel": "&#8741;",
+"Delta": "&#916;",
+"LeftArrowRightArrow": "&#8646;",
+"LessGreater": "&#8822;",
+"ltrPar": "&#10646;",
+"RightTeeArrow": "&#8614;",
+"LeftVector": "&#8636;",
+"NotSubsetEqual": "&#8840;",
+"cemptyv": "&#10674;",
+"TripleDot": "&#8411;",
+"DiacriticalAcute": "&#180;",
+"LongLeftRightArrow": "&#10231;",
+"ogt": "&#10689;",
+"triangleleft": "&#9667;",
+"gtreqless": "&#8923;",
+"ntrianglerighteq": "&#8941;",
+"ascr": "&#119990;",
+"gtrless": "&#8823;",
+"Coproduct": "&#8720;",
+"lesges": "&#10899;",
+"xcirc": "&#9711;",
+"lsqb": "&#91;",
+"llarr": "&#8647;",
+"ocir": "&#8858;",
+"LeftDoubleBracket": "&#12314;",
+"ulcorn": "&#8988;",
+"Dagger": "&#8225;",
+"lharu": "&#8636;",
+"SquareSuperset": "&#8848;",
+"Ucirc": "&#219;",
+"Mscr": "&#8499;",
+"rscr": "&#120007;",
+"UnionPlus": "&#8846;",
+"hcirc": "&#293;",
+"leftthreetimes": "&#8907;",
+"lhard": "&#8637;",
+"CircleDot": "&#8857;",
+"DownLeftRightVector": "&#10576;",
+"xoplus": "&#8853;",
+"ang": "&#8736;",
+"DiacriticalDoubleAcute": "&#733;",
+"SucceedsTilde": "&#8831;",
+"nleftrightarrow": "&#8622;",
+"SmallCircle": "&#8728;",
+"urtri": "&#9721;",
+"uscr": "&#120010;",
+"leftharpoonup": "&#8636;",
+"blacktriangle": "&#9652;",
+"Lmidot": "&#319;",
+"xscr": "&#120013;",
+"smeparsl": "&#10724;",
+"angle": "&#8736;",
+"DownTeeArrow": "&#8615;",
+"NotLessEqual": "&#8816;",
+"kscr": "&#120000;",
+"qprime": "&#8279;",
+"rlhar": "&#8652;",
+"Scirc": "&#348;",
+"SquareUnion": "&#8852;",
+"LeftUpDownVector": "&#10577;",
+"larrpl": "&#10553;",
+"olcross": "&#10683;",
+"LessTilde": "&#8818;",
+"gcirc": "&#285;",
+"mumap": "&#8888;",
+"RightArrowLeftArrow": "&#8644;",
+"dscr": "&#119993;",
+"Equal": "&#10869;",
+"Nscr": "&#119977;",
+"larrhk": "&#8617;",
+"RightTriangleEqual": "&#8885;",
+"middot": "&#183;",
+"nrtri": "&#8939;",
+"DiacriticalTilde": "&#732;",
+"lopar": "&#12312;",
+"lscr": "&#8467;",
+"plusacir": "&#10787;",
+"lnap": "&#10889;",
+"SupersetEqual": "&#8839;",
+"loplus": "&#10797;",
+"lltri": "&#9722;",
+"raquo": "&#187;",
+"odsold": "&#10684;",
+"gsiml": "&#10896;",
+"ltcc": "&#10918;",
+"emptyv": "&#8709;",
+"rtrie": "&#8885;",
+"Ccirc": "&#264;",
+"ldrdhar": "&#10599;",
+"nlt": "&#8814;",
+"Union": "&#8899;",
+"leftarrowtail": "&#8610;",
+"UnderBar": "&#818;",
+"Wcirc": "&#372;",
+"nvHarr": "&#8654;",
+"nle": "&#8816;",
+"nlarr": "&#8602;",
+"RightDoubleBracket": "&#12315;",
+"Hat": "&#770;",
+"LessEqualGreater": "&#8922;",
+"DiacriticalDot": "&#729;",
+"doublebarwedge": "&#8966;",
+"npar": "&#8742;",
+"rtrif": "&#9656;",
+"vartriangleright": "&#8883;",
+"ApplyFunction": "&#8289;",
+"vartriangleleft": "&#8882;",
+"triangleright": "&#9657;",
+"RightUpVector": "&#8638;",
+"xotime": "&#8855;",
+"LeftDownTeeVector": "&#10593;",
+"DownRightVector": "&#8641;",
+"Bscr": "&#8492;",
+"triangle": "&#9653;",
+"xlArr": "&#10232;",
+"apacir": "&#10863;",
+"DownArrowBar": "&#10515;",
+"PrecedesSlantEqual": "&#8828;",
+"LeftArrowBar": "&#8676;",
+"Vvdash": "&#8874;",
+"mapstoleft": "&#8612;",
+"leqslant": "&#10877;",
+"gel": "&#8923;",
+"ClockwiseContourIntegral": "&#8754;",
+"llhard": "&#10603;",
+"lceil": "&#8968;",
+"Because": "&#8757;",
+"LessLess": "&#10913;",
+"NotSupersetEqual": "&#8841;",
+"ReverseEquilibrium": "&#8651;",
+"NotSubset": "&#8836;",
+"larrbfs": "&#10527;",
+"sdot": "&#8901;",
+"Otimes": "&#10807;",
+"lfloor": "&#8970;",
+"NotEqual": "&#8800;",
+"dtri": "&#9663;",
+"ulcrop": "&#8975;",
+"PrecedesTilde": "&#8830;",
+"Proportion": "&#8759;",
+"Yscr": "&#119988;",
+"Cscr": "&#119966;",
+"NotPrecedesEqual": "&#10927;",
+"ldsh": "&#8626;",
+"rAtail": "&#10524;",
+"lne": "&#8808;",
+"leftrightarrows": "&#8646;",
+"lescc": "&#10920;",
+"LeftVectorBar": "&#10578;",
+"Uscr": "&#119984;",
+"odot": "&#8857;",
+"longleftrightarrow": "&#10231;",
+"rlarr": "&#8644;",
+"circledcirc": "&#8858;",
+"boxuL": "&#9563;",
+"comp": "&#8705;",
+"lnE": "&#8808;",
+"lrtri": "&#8895;",
+"CircleMinus": "&#8854;",
+"NotDoubleVerticalBar": "&#8742;",
+"NotPrecedesSlantEqual": "&#8928;",
+"ldquor": "&#8222;",
+"lrarr": "&#8646;",
+"lg": "&#8822;",
+"SubsetEqual": "&#8838;",
+"complement": "&#8705;",
+"langd": "&#10641;",
+"eqvparsl": "&#10725;",
+"langle": "&#9001;",
+"Hacek": "&#711;",
+"ofcir": "&#10687;",
+"EqualTilde": "&#8770;",
+"lfisht": "&#10620;",
+"Exists": "&#8707;",
+"tridot": "&#9708;",
+"nabla": "&#8711;",
+"opar": "&#10679;",
+"TildeEqual": "&#8771;",
+"RightVectorBar": "&#10579;",
+"larrlp": "&#8619;",
+"boxhD": "&#9573;",
+"lang": "&#9001;",
+"UpArrowBar": "&#10514;",
+"UpEquilibrium": "&#10606;",
+"gtcir": "&#10874;",
+"NotGreaterLess": "&#8825;",
+"nvlArr": "&#8653;",
+"glE": "&#10898;",
+"boxhU": "&#9576;",
+"ReverseUpEquilibrium": "&#10607;",
+"lAtail": "&#10523;",
+"boxhd": "&#9516;",
+"ccirc": "&#265;",
+"Vscr": "&#119985;",
+"Dscr": "&#119967;",
+"bigtriangledown": "&#9661;",
+"wcirc": "&#373;",
+"MinusPlus": "&#8723;",
+"boxhu": "&#9524;",
+"dtrif": "&#9662;",
+"Conint": "&#8751;",
+"bemptyv": "&#10672;",
+"intlarhk": "&#10775;",
+"luruhar": "&#10598;",
+"lpar": "&#40;",
+"complexes": "&#8450;",
+"hamilt": "&#8459;",
+"leftrightsquigarrow": "&#8621;",
+"ltri": "&#9667;",
+"dlcrop": "&#8973;",
+"lbrksld": "&#10639;",
+"els": "&#8924;",
+"tint": "&#8749;",
+"lbrkslu": "&#10637;",
+"Oscr": "&#119978;",
+"And": "&#10835;",
+"RightDownVectorBar": "&#10581;",
+"VerticalSeparator": "&#10072;",
+"lgE": "&#10897;",
+"ultri": "&#9720;",
+"Wscr": "&#119986;",
+"DoubleLongLeftArrow": "&#10232;",
+"gla": "&#10917;",
+"Proportional": "&#8733;",
+"boxul": "&#9496;",
+"simlE": "&#10911;",
+"udblac": "&#369;",
+"SucceedsEqual": "&#8829;",
+"rdsh": "&#8627;",
+"DoubleUpDownArrow": "&#8661;",
+"RoundImplies": "&#10608;",
+"ucirc": "&#251;",
+"it": "&#8290;",
+"eqslantless": "&#8924;",
+"ltlarr": "&#10614;",
+"telrec": "&#8981;",
+"NotReverseElement": "&#8716;",
+"UpArrowDownArrow": "&#8645;",
+"ic": "&#8291;",
+"leftleftarrows": "&#8647;",
+"par": "&#8741;",
+"profsurf": "&#8979;",
+"DoubleUpArrow": "&#8657;",
+"leftarrow": "&#8592;",
+"lotimes": "&#10804;",
+"Ascr": "&#119964;",
+"nldr": "&#8229;",
+"circlearrowright": "&#8635;",
+"ntlg": "&#8824;",
+"triplus": "&#10809;",
+"acirc": "&#226;",
+"odash": "&#8861;",
+"boxHd": "&#9572;",
+"Implies": "&#8658;",
+"iscr": "&#119998;",
+"nltri": "&#8938;",
+"longleftarrow": "&#10229;",
+"ecir": "&#8790;",
+"boxHu": "&#9575;",
+"rotimes": "&#10805;",
+"boxHD": "&#9574;",
+"DoubleDownArrow": "&#8659;",
+"angzarr": "&#9084;",
+"compfn": "&#8728;",
+"NestedGreaterGreater": "&#8811;",
+"exponentiale": "&#8519;",
+"ltdot": "&#8918;",
+"boxHU": "&#9577;",
+"NotLeftTriangleEqual": "&#8940;",
+"curvearrowleft": "&#8630;",
+"lBarr": "&#10510;",
+"lurdshar": "&#10570;",
+"nltrie": "&#8940;",
+"gEl": "&#8923;",
+"Xscr": "&#119987;",
+"GreaterFullEqual": "&#8807;",
+"demptyv": "&#10673;",
+"LeftTee": "&#8867;",
+"Jcirc": "&#308;",
+"siml": "&#10909;",
+"Equilibrium": "&#8652;",
+"sscr": "&#120008;",
+"LeftTeeArrow": "&#8612;",
+"DifferentialD": "&#8518;",
+"olarr": "&#8634;",
+"GreaterTilde": "&#8819;",
+"RightUpTeeVector": "&#10588;",
+"Congruent": "&#8801;",
+"Kscr": "&#119974;",
+"TildeFullEqual": "&#8773;",
+"ecirc": "&#234;",
+"LeftFloor": "&#8970;",
+"mscr": "&#120002;",
+"SquareSubset": "&#8847;",
+"nleftarrow": "&#8602;",
+"LeftRightVector": "&#10574;",
+"ntriangleright": "&#8939;",
+"dwangle": "&#10662;",
+"VerticalTilde": "&#8768;",
+"lessgtr": "&#8822;",
+"NotRightTriangleEqual": "&#8941;",
+"Or": "&#10836;",
+"oslash": "&#248;",
+"laquo": "&#171;",
+"xlarr": "&#10229;",
+"RightTriangleBar": "&#10704;",
+"xdtri": "&#9661;",
+"VerticalBar": "&#8739;",
+"Colone": "&#10868;",
+"lsquo": "&#8216;",
+"VerticalLine": "&#124;",
+"leftrightarrow": "&#8596;",
+"tscr": "&#120009;",
+"rdquo": "&#8221;",
+"lesssim": "&#8818;",
+"Sub": "&#8912;",
+"Sum": "&#8721;",
+"sstarf": "&#8902;",
+"rarrbfs": "&#10528;",
+"cirscir": "&#10690;",
+"olt": "&#10688;",
+"cirE": "&#10691;",
+"circlearrowleft": "&#8634;",
+"larr": "&#8592;",
+"DownRightTeeVector": "&#10591;",
+"Ycirc": "&#374;",
+"RightTee": "&#8866;",
+"NotPrecedes": "&#8832;",
+"circ": "&#94;",
+"cire": "&#8791;",
+"FilledSmallSquare": "&#9724;",
+"Intersection": "&#8898;",
+"twoheadleftarrow": "&#8606;",
+"RightTriangle": "&#8883;",
+"RightDownVector": "&#8642;",
+"NotTildeFullEqual": "&#8775;",
+"daleth": "&#8504;",
+"loang": "&#62808;",
+"InvisibleTimes": "&#8290;",
+"RightAngleBracket": "&#9002;",
+"scirc": "&#349;",
+"hookleftarrow": "&#8617;",
+"triminus": "&#10810;",
+"lesdoto": "&#10881;",
+"oS": "&#9416;",
+"nhpar": "&#10994;",
+"trianglerighteq": "&#8885;",
+"Square": "&#9633;",
+"DotEqual": "&#8784;",
+"nleq": "&#8816;",
+"ruluhar": "&#10600;",
+"downharpoonleft": "&#8643;",
+"qint": "&#10764;",
+"range": "&#10661;",
+"rangd": "&#10642;",
+"Precedes": "&#8826;",
+"NotExists": "&#8708;",
+"profalar": "&#9006;",
+"qscr": "&#120006;",
+"TildeTilde": "&#8776;",
+"Cup": "&#8915;",
+"lessdot": "&#8918;",
+"triangledown": "&#9663;",
+"LowerLeftArrow": "&#8601;",
+"Sqrt": "&#8730;",
+"Cconint": "&#8752;",
+"ltimes": "&#8905;",
+"NotCupCap": "&#8813;",
+"gtlPar": "&#10645;",
+"osol": "&#8856;",
+"RightArrow": "&#8594;",
+"HorizontalLine": "&#9472;",
+"ltquest": "&#10875;",
+"starf": "&#9733;",
+"CenterDot": "&#183;",
+"zscr": "&#120015;",
+"circledS": "&#9416;",
+"LongLeftArrow": "&#10229;",
+"Pscr": "&#119979;",
+"lmidot": "&#320;",
+"odblac": "&#337;",
+"DoubleLongLeftRightArrow": "&#10234;",
+"Cedilla": "&#184;",
+"CloseCurlyDoubleQuote": "&#8221;",
+"lnsim": "&#8934;",
+"larrb": "&#8676;",
+"esdot": "&#8784;",
+"DownLeftVector": "&#8637;",
+"SquareSupersetEqual": "&#8850;",
+"Del": "&#8711;",
+"delta": "&#948;",
+"Cayleys": "&#8493;",
+"timesb": "&#8864;",
+"NotElement": "&#8713;",
+"ldquo": "&#8220;",
+"Assign": "&#8788;",
+"bullet": "&#8226;",
+"NotVerticalBar": "&#8740;",
+"rsquo": "&#8217;",
+"nscr": "&#120003;",
+"cir": "&#9675;",
+"NotGreater": "&#8815;",
+"lHar": "&#10594;",
+"ovbar": "&#9021;",
+"Sscr": "&#119982;",
+"HumpEqual": "&#8783;",
+"DoubleDot": "&#168;",
+"trie": "&#8796;",
+"glj": "&#10916;",
+"olcir": "&#10686;",
+"Cross": "&#10799;",
+"DownLeftTeeVector": "&#10590;",
+"DownBreve": "&#785;",
+"escr": "&#8495;",
+"exist": "&#8707;",
+"angsph": "&#8738;",
+"lbarr": "&#10508;",
+"DownLeftVectorBar": "&#10582;",
+"LessSlantEqual": "&#10877;",
+"oplus": "&#8853;",
+"triangleq": "&#8796;",
+"Acirc": "&#194;",
+"orarr": "&#8635;",
+"rect": "&#9645;",
+"FilledVerySmallSquare": "&#9642;",
+"DownRightVectorBar": "&#10583;",
+"ltcir": "&#10873;",
+"cirmid": "&#10991;",
+"lesseqgtr": "&#8922;",
+"DoubleLeftArrow": "&#8656;",
+"Ecirc": "&#202;",
+"Superset": "&#8835;",
+"rdldhar": "&#10601;",
+"NotSucceeds": "&#8833;",
+"loarr": "&#8701;",
+"xodot": "&#8857;",
+"vscr": "&#120011;",
+"ominus": "&#8854;",
+"Element": "&#8712;",
+"rightleftarrows": "&#8644;",
+"fscr": "&#119995;",
+"InvisibleComma": "&#8291;",
+"Tscr": "&#119983;",
+"Subset": "&#8912;",
+"timesbar": "&#10801;",
+"prurel": "&#8880;",
+"rtri": "&#9657;",
+"NotSquareSupersetEqual": "&#8931;",
+"UpArrow": "&#8593;",
+"Product": "&#8719;",
+"NotLessGreater": "&#8824;",
+"Colon": "&#8759;",
+"UpperRightArrow": "&#8599;",
+"circledR": "&#174;",
+"uwangle": "&#10663;",
+"aleph": "&#8501;",
+}
+
diff -r 94a0eceff038 MoinMoin/converter2/xml_in.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MoinMoin/converter2/xml_in.py	Sat Aug 14 20:32:16 2010 +0200
@@ -0,0 +1,39 @@
+"""
+MoinMoin - XML input converter
+
+Parses XML input directly into DOM tree (no change).
+
+@copyright: 2010 MoinMoin:ThomasWaldmann
+@license: GNU GPL, see COPYING for details.
+"""
+
+from emeraldtree.tree import parse, XMLParser, TreeBuilder
+from mathmlentities import entitydefs
+
+class MathMLParser(XMLParser):
+    def __init__(self, *args, **kw):
+        super(MathMLParser, self).__init__(*args, **kw)
+        self.entity = entitydefs
+
+
+class Converter(object):
+    """
+    Convert XML into DOM Tree.
+    """
+    @classmethod
+    def _factory(cls, input, output, **kw):
+        return cls(input_type=input)
+
+    def __init__(self, input_type):
+        self.input_type = input_type
+
+    def __call__(self, content):
+        parser = MathMLParser(target=TreeBuilder())
+        return parse(content, parser).getroot()
+
+
+from . import default_registry
+from MoinMoin.util.mime import Type, type_moin_document
+default_registry.register(Converter._factory, Type('image/svg+xml'), type_moin_document)
+default_registry.register(Converter._factory, Type('text/mathml'), type_moin_document)
+
diff -r 94a0eceff038 MoinMoin/items/__init__.py
--- a/MoinMoin/items/__init__.py	Tue Aug 10 14:22:42 2010 +0200
+++ b/MoinMoin/items/__init__.py	Sat Aug 14 20:32:16 2010 +0200
@@ -213,7 +213,7 @@
     def _render_data(self):
         from MoinMoin.converter2 import default_registry as reg
         from MoinMoin.util.mime import Type, type_moin_document
-        from MoinMoin.util.tree import html
+        from MoinMoin.util.tree import html, svg, mathml
         request = self.request
         # TODO: Real output format
         html_conv = reg.get(type_moin_document,
@@ -223,7 +223,12 @@
 
         from array import array
         out = array('u')
-        doc.write(out.fromunicode, namespaces={html.namespace: ''}, method='xml')
+        doc.write(out.fromunicode,
+                  namespaces={html.namespace: '',
+                              svg.namespace: '',
+                              mathml.namespace: '',
+                             },
+                  method='xml')
         return out.tounicode()
 
     def _render_data_xml(self):
@@ -825,6 +830,8 @@
     """ SVG images use <object> tag mechanism from RenderableBinary base class """
     supported_mimetypes = ['image/svg+xml']
 
+    def feed_input_conv(self):
+        return self.rev
 
 class RenderableBitmapImage(RenderableImage):
     """ PNG/JPEG/GIF images use <img> tag (better browser support than <object>) """
@@ -1030,6 +1037,13 @@
                               )
 
 
+class MathML(Text):
+    """ MathML """
+    supported_mimetypes = ['text/mathml']
+
+    def feed_input_conv(self):
+        return self.rev
+
 class MarkupItem(Text):
     """ some kind of item with markup (and internal links) """
     def before_revision_commit(self, newrev, data):
