Beispiel #1
0
        public void CustomInsertTypesRenderAsBlock()
        {
            var ops = JArray.Parse(@"[
               {insert: 'hello '},
               { insert: { myblot: 'my friend' } },
               { insert: '!' },
               {insert: {myblot: 'how r u?'}, attributes: {renderAsBlock: true}}
            ]");
            XmlCustomRenderer renderer = (doc, op, contextOp) =>
            {
                var insert = (InsertDataCustom)op.Insert;
                if (insert.CustomType == "myblot")
                {
                    var textNode = doc.CreateTextNode(insert.Value.ToString());
                    if (op.Attributes.RenderAsBlock == true)
                    {
                        var div = doc.CreateElement("div");
                        div.AppendChild(textNode);
                        return(div);
                    }
                    return(textNode);
                }
                return(doc.CreateTextNode("unknown"));
            };
            var qdc = new XmlConverter(ops,
                                       new XmlConverterOptions {
                CustomRenderer = renderer
            });
            var xml = qdc.Convert().OuterXml;

            xml.Should().Be("<template><p>hello my friend!</p><div>how r u?</div></template>");
        }
Beispiel #2
0
        public void CustomBlotUsesGivenRenderer()
        {
            var ops = JArray.Parse(@"[
                { insert: { bolditalic: 'my text' } },
                { insert: { blah: 1 } }
             ]");
            XmlCustomRenderer renderer = (doc, op, contextOp) =>
            {
                var insert = (InsertDataCustom)op.Insert;
                if (insert.CustomType == "bolditalic")
                {
                    var b = doc.CreateElement("b");
                    var i = b.AppendChild(doc.CreateElement("i"))
                            .AppendChild(doc.CreateTextNode(
                                             insert.Value.ToString()));
                    return(b);
                }
                return(doc.CreateTextNode("unknown"));
            };
            var qdc = new XmlConverter(ops,
                                       new XmlConverterOptions {
                CustomRenderer = renderer
            });
            var xml = qdc.Convert().OuterXml;

            xml.Should().Be("<template><p><b><i>my text</i></b>unknown</p></template>");
        }