コード例 #1
0
ファイル: EditorWindow.cs プロジェクト: yerumaku/DocWriter
 // Turns the provided ECMA XML node into HTML and appends it to the current node on the rendered HTML
 public static void AppendEcmaNode(this IEditorWindow editorWindow, XElement ecmaXml)
 {
     if (editorWindow.CurrentObject != null)
     {
         var html = DocConverter.ToHtml(ecmaXml, "", editorWindow.CurrentObject.DocumentDirectory);
         editorWindow.RunJS("insertHtmlAfterCurrentNode", WebViewExtensions.EscapeHtml(html));
     }
 }
コード例 #2
0
ファイル: DocModel.cs プロジェクト: yerumaku/DocWriter
 public string ToHtml(XElement root)
 {
     return(DocConverter.ToHtml(root, "inmemory", DocumentDirectory));
 }
コード例 #3
0
ファイル: DocModel.cs プロジェクト: yerumaku/DocWriter
 public string GetHtmlForNode(XElement element, string xpath)
 {
     return(DocConverter.ToHtml(element.XPathSelectElement(xpath), Name.ToString(), DocumentDirectory));
 }
コード例 #4
0
    static void Process(XDocument d, string path)
    {
        var elements = d.XPathSelectElements(path);

        foreach (var element in elements)
        {
            var str = element.ToString();
            //Console.WriteLine (str);
            var html = DocConverter.ToHtml(element, currentFile, Path.GetDirectoryName(path));
            var ret  = DocConverter.ToXml(html);

            var sb = new StringBuilder();
            foreach (var c in element.Nodes())
            {
                sb.Append(c.ToString());
            }
            var expected = sb.ToString();
            //estr = estr.Replace (" />", "/>");
            sb.Clear();
            foreach (var c in ret)
            {
                try {
                    if (c is XComment)
                    {
                        sb.Append((c as XComment).Value);
                    }
                    else
                    {
                        sb.Append(c.ToString());
                    }
                } catch (ArgumentException e) {
                    // An XML comment cannot end with "-" looks like a bug
                }
            }
            var result = sb.ToString();

            if (expected != result)
            {
                var diff      = new XmlDiff(XmlDiffOptions.IgnoreWhitespace);
                var xexpected = new XmlTextReader(new StringReader("<group>" + expected + "</group>"));
                var xresult   = new XmlTextReader(new StringReader("<group>" + result + "</group>"));

                var equal = diff.Compare(xexpected, xresult);                  //, new XmlTextWriter (Console.Out));


                if (!equal && expected != result)
                {
                    bool found = false;
                    for (int i = 0; i < expected.Length && i < result.Length; i++)
                    {
                        if (expected [i] != result [i])
                        {
                            Report(expected, result, i);

                            // We redo the steps above, purely as it is easier to debug what happened right after
                            // the error is reported.
                            html  = DocConverter.ToHtml(element, currentFile, Path.GetDirectoryName(path));
                            ret   = DocConverter.ToXml(html);
                            found = true;
                            break;
                        }
                    }
                    if (!found)
                    {
                        Report(expected, result, Math.Min(expected.Length, result.Length));
                    }
                }
            }
        }
    }