コード例 #1
0
 static void GenerateContent(TextWriter writer, DocItem docItem, DocItemValidationResult validationResult)
 {
     writer.WriteLine("<table width=\"100%\"><col width=\"10%\"/><col width=\"90%\"/>");
     writer.WriteLine("<tr><td class=\"NavigateHeader\" colspan=\"2\" align=\"left\">");
     writer.WriteLine("<a class=\"LogoLink\" href=\"reference_gacui.html\"><img src=\"../Content/GacLib_LogoAndTitle.gif\" alt=\"GacLib -- GPU Accelerated C++ User Interface\"/></a>");
     writer.WriteLine("</td></tr>");
     writer.WriteLine("<tr><td class=\"frameTable indexPanel\" valign=\"top\">");
     {
         List <DocItem> parentList = new List <DocItem>();
         {
             DocItem currentItem = docItem;
             while (currentItem != null)
             {
                 parentList.Insert(0, currentItem);
                 currentItem = currentItem.Parent;
             }
         }
         GenerateIndexTree(writer, validationResult.RootItems, parentList, 0, 0);
     }
     writer.WriteLine("</td><td class=\"frameTable contentPanel\" valign=\"top\">");
     {
         GenerateDocumentContent(writer, docItem, validationResult, d => Path.GetFileName(GetFileName(d)));
     }
     writer.WriteLine("</td></tr></table>");
 }
コード例 #2
0
 static void GenerateFiles(IEnumerable<DocItem> docItems, string outputFolder, DocItemValidationResult validationResult)
 {
     foreach (var item in docItems.OrderBy(i => i.Title))
     {
         GenerateFile(item, outputFolder, validationResult);
     }
 }
コード例 #3
0
ファイル: DocItemValidator.cs プロジェクト: mind-owner/Tools
        public static DocItemValidationResult Validate(DocItem[] docItems)
        {
            var    result     = new DocItemValidationResult(docItems);
            string errorLines = "";

            foreach (var item in docItems)
            {
                foreach (var entity in item.Content.Entities)
                {
                    switch (entity.Type)
                    {
                    case DocEntityType.LinkId:
                    {
                        if (entity.State == DocEntityState.Open)
                        {
                            if (!result.UniqueIdItemMap.ContainsKey(entity.Argument))
                            {
                                errorLines += string.Format("Cannot find document item by unique id {0} when validating /+linkid/s in {1}.\r\n", entity.Argument, item.Title);
                            }
                        }
                    }
                    break;

                    case DocEntityType.LinkSymbol:
                    {
                        if (entity.State == DocEntityState.Open)
                        {
                            if (!result.MemberIdItemMap.ContainsKey(entity.Argument))
                            {
                                if (entity.Argument.StartsWith("M:"))
                                {
                                    var methodItems = result
                                                      .MemberIdItemMap
                                                      .Where(p => p.Key.StartsWith(entity.Argument + "("))
                                                      .Select(p => p.Value)
                                                      .ToArray();
                                    if (methodItems.Length == 1)
                                    {
                                        entity.Argument = methodItems[0].Symbol;
                                        break;
                                    }
                                }
                                errorLines += string.Format("Cannot find document item by symbol {0} when validating /+linksymbol/s in {1}.\r\n", entity.Argument, item.Title);
                            }
                        }
                    }
                    break;
                    }
                }
            }
            if (errorLines != "")
            {
                throw new ArgumentException(errorLines);
            }
            return(result);
        }
コード例 #4
0
ファイル: DocItemValidator.cs プロジェクト: spirits-qi/Tools
 public static DocItemValidationResult Validate(DocItem[] docItems)
 {
     var result = new DocItemValidationResult(docItems);
     string errorLines = "";
     foreach (var item in docItems)
     {
         foreach (var entity in item.Content.Entities)
         {
             switch (entity.Type)
             {
                 case DocEntityType.LinkId:
                     {
                         if (entity.State == DocEntityState.Open)
                         {
                             if (!result.UniqueIdItemMap.ContainsKey(entity.Argument))
                             {
                                 errorLines += string.Format("Cannot find document item by unique id {0} when validating /+linkid/s in {1}.\r\n", entity.Argument, item.Title);
                             }
                         }
                     }
                     break;
                 case DocEntityType.LinkSymbol:
                     {
                         if (entity.State == DocEntityState.Open)
                         {
                             if (!result.MemberIdItemMap.ContainsKey(entity.Argument))
                             {
                                 if (entity.Argument.StartsWith("M:"))
                                 {
                                     var methodItems = result
                                         .MemberIdItemMap
                                         .Where(p => p.Key.StartsWith(entity.Argument + "("))
                                         .Select(p => p.Value)
                                         .ToArray();
                                     if (methodItems.Length == 1)
                                     {
                                         entity.Argument = methodItems[0].Symbol;
                                         break;
                                     }
                                 }
                                 errorLines += string.Format("Cannot find document item by symbol {0} when validating /+linksymbol/s in {1}.\r\n", entity.Argument, item.Title);
                             }
                         }
                     }
                     break;
             }
         }
     }
     if (errorLines != "")
     {
         throw new ArgumentException(errorLines);
     }
     return result;
 }
コード例 #5
0
        static void GenerateFile(DocItem docItem, string outputFolder, DocItemValidationResult validationResult)
        {
            string fileName = GetFileName(docItem, outputFolder);

            using (StreamWriter writer = new StreamWriter(new FileStream(fileName, FileMode.Create, FileAccess.Write), Encoding.UTF8))
            {
                writer.WriteLine("<html>");
                writer.WriteLine("<head>");
                writer.WriteLine("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=8\" />");
                writer.WriteLine("<link rel=\"Stylesheet\" type=\"text/css\" href=\"../Content/DocStyle.css\" />");
                writer.WriteLine("<link rel=\"Stylesheet\" type=\"text/css\" href=\"../Content/PageStyle.css\" />");
                writer.WriteLine("<title>{0}</title>", docItem.Title);
                writer.WriteLine("</head>");
                writer.WriteLine("<body>");
                GenerateContent(writer, docItem, validationResult);
                writer.WriteLine("</body>");
                writer.WriteLine("</html>");
            }
            GenerateFiles(docItem.SubItems, outputFolder, validationResult);
        }
コード例 #6
0
 static void GenerateFile(DocItem docItem, string outputFolder, DocItemValidationResult validationResult)
 {
     string fileName = outputFolder + GetKey(docItem) + ".xml";
     using (StreamWriter writer = new StreamWriter(new FileStream(fileName, FileMode.Create, FileAccess.Write), Encoding.UTF8))
     {
         XDocument xmlMeta = new XDocument();
         xmlMeta.Add(new XElement("metaDoc"));
         XElement xmlRoot = xmlMeta.Root;
         xmlRoot.Add(new XElement("title", docItem.Title));
         xmlRoot.Add(new XElement("uniqueId", GetKey(docItem)));
         if (docItem.Parent != null)
         {
             xmlRoot.Add(new XElement("parentUniqueId", GetKey(docItem.Parent)));
         }
         xmlRoot.Add(new XElement("subItems", docItem.SubItems.Select(d => new XElement("subItem", GetKey(d))).ToArray()));
         GenerateContent(xmlRoot, docItem, validationResult);
         xmlMeta.Save(writer);
     }
     GenerateFiles(docItem.SubItems, outputFolder, validationResult);
 }
コード例 #7
0
        static void GenerateFile(DocItem docItem, string outputFolder, DocItemValidationResult validationResult)
        {
            string fileName = outputFolder + GetKey(docItem) + ".xml";

            using (StreamWriter writer = new StreamWriter(new FileStream(fileName, FileMode.Create, FileAccess.Write), Encoding.UTF8))
            {
                XDocument xmlMeta = new XDocument();
                xmlMeta.Add(new XElement("metaDoc"));
                XElement xmlRoot = xmlMeta.Root;
                xmlRoot.Add(new XElement("title", docItem.Title));
                xmlRoot.Add(new XElement("uniqueId", GetKey(docItem)));
                if (docItem.Parent != null)
                {
                    xmlRoot.Add(new XElement("parentUniqueId", GetKey(docItem.Parent)));
                }
                xmlRoot.Add(new XElement("subItems", docItem.SubItems.Select(d => new XElement("subItem", GetKey(d))).ToArray()));
                GenerateContent(xmlRoot, docItem, validationResult);
                xmlMeta.Save(writer);
            }
            GenerateFiles(docItem.SubItems, outputFolder, validationResult);
        }
コード例 #8
0
 static void GenerateContent(XElement xmlRoot, DocItem docItem, DocItemValidationResult validationResult)
 {
     {
         List<DocItem> parentList = new List<DocItem>();
         {
             DocItem currentItem = docItem;
             while (currentItem != null)
             {
                 parentList.Insert(0, currentItem);
                 currentItem = currentItem.Parent;
             }
         }
         xmlRoot.Add(new XElement("indexTree", GenerateIndexTree(validationResult.RootItems, parentList, 0, 0).ToArray()));
     }
     var writer = new StringWriter();
     {
         StaticHtmlDocGenerator.GenerateDocumentContent(writer, docItem, validationResult, d => string.Format("$UNIQUEIDLINK({0})", GetKey(d)));
     }
     string content = writer.ToString();
     xmlRoot.Add(new XElement("content", content));
 }
コード例 #9
0
        static void GenerateContent(XElement xmlRoot, DocItem docItem, DocItemValidationResult validationResult)
        {
            {
                List <DocItem> parentList = new List <DocItem>();
                {
                    DocItem currentItem = docItem;
                    while (currentItem != null)
                    {
                        parentList.Insert(0, currentItem);
                        currentItem = currentItem.Parent;
                    }
                }
                xmlRoot.Add(new XElement("indexTree", GenerateIndexTree(validationResult.RootItems, parentList, 0, 0).ToArray()));
            }
            var writer = new StringWriter();
            {
                StaticHtmlDocGenerator.GenerateDocumentContent(writer, docItem, validationResult, d => string.Format("$UNIQUEIDLINK({0})", GetKey(d)));
            }
            string content = writer.ToString();

            xmlRoot.Add(new XElement("content", content));
        }
コード例 #10
0
 static void GenerateFile(DocItem docItem, string outputFolder, DocItemValidationResult validationResult)
 {
     string fileName = GetFileName(docItem, outputFolder);
     using (StreamWriter writer = new StreamWriter(new FileStream(fileName, FileMode.Create, FileAccess.Write), Encoding.UTF8))
     {
         writer.WriteLine("<html>");
         writer.WriteLine("<head>");
         writer.WriteLine("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=8\" />");
         writer.WriteLine("<link rel=\"Stylesheet\" type=\"text/css\" href=\"../Content/DocStyle.css\" />");
         writer.WriteLine("<link rel=\"Stylesheet\" type=\"text/css\" href=\"../Content/PageStyle.css\" />");
         writer.WriteLine("<title>{0}</title>", docItem.Title);
         writer.WriteLine("</head>");
         writer.WriteLine("<body>");
         GenerateContent(writer, docItem, validationResult);
         writer.WriteLine("</body>");
         writer.WriteLine("</html>");
     }
     GenerateFiles(docItem.SubItems, outputFolder, validationResult);
 }
コード例 #11
0
 static void GenerateContent(TextWriter writer, DocItem docItem, DocItemValidationResult validationResult)
 {
     writer.WriteLine("<table width=\"100%\"><col width=\"10%\"/><col width=\"90%\"/>");
     writer.WriteLine("<tr><td class=\"NavigateHeader\" colspan=\"2\" align=\"left\">");
     writer.WriteLine("<a class=\"LogoLink\" href=\"reference_gacui.html\"><img src=\"../Content/GacLib_LogoAndTitle.gif\" alt=\"GacLib -- GPU Accelerated C++ User Interface\"/></a>");
     writer.WriteLine("</td></tr>");
     writer.WriteLine("<tr><td class=\"frameTable indexPanel\" valign=\"top\">");
     {
         List<DocItem> parentList = new List<DocItem>();
         {
             DocItem currentItem = docItem;
             while (currentItem != null)
             {
                 parentList.Insert(0, currentItem);
                 currentItem = currentItem.Parent;
             }
         }
         GenerateIndexTree(writer, validationResult.RootItems, parentList, 0, 0);
     }
     writer.WriteLine("</td><td class=\"frameTable contentPanel\" valign=\"top\">");
     {
         GenerateDocumentContent(writer, docItem, validationResult, d => Path.GetFileName(GetFileName(d)));
     }
     writer.WriteLine("</td></tr></table>");
 }
コード例 #12
0
 public static void GenerateStaticHtmlDocument(string outputFolder, DocItemValidationResult validationResult)
 {
     GenerateFiles(validationResult.RootItems, outputFolder, validationResult);
 }
コード例 #13
0
 public static void GenerateDocumentContent(TextWriter writer, DocItem docItem, DocItemValidationResult validationResult, Func<DocItem, string> linkTransformer)
 {
     string currentColor = "000000";
     writer.Write("<p><font color=\"{0}\">", currentColor);
     foreach (var docEntity in docItem.Content.Entities)
     {
         switch (docEntity.Type)
         {
             case DocEntityType.Bold:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<b>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</b>");
                         break;
                 }
                 break;
             case DocEntityType.Header1:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<h1>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</h1>");
                         break;
                 }
                 break;
             case DocEntityType.Header2:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<h2>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</h2>");
                         break;
                 }
                 break;
             case DocEntityType.Header3:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<h3>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</h3>");
                         break;
                 }
                 break;
             case DocEntityType.LinkId:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<a href=\"{0}\">", linkTransformer(validationResult.UniqueIdItemMap[docEntity.Argument]));
                         break;
                     case DocEntityState.Close:
                         writer.Write("</a>");
                         break;
                 }
                 break;
             case DocEntityType.LinkSymbol:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<a href=\"{0}\">", linkTransformer(validationResult.MemberIdItemMap[docEntity.Argument]));
                         break;
                     case DocEntityState.Close:
                         writer.Write("</a>");
                         break;
                 }
                 break;
             case DocEntityType.Table:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<div  class=\"docTable\"><table>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</table></div>");
                         break;
                 }
                 break;
             case DocEntityType.RowHeader:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<thead><tr>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</tr></thead>");
                         break;
                 }
                 break;
             case DocEntityType.Row:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<tr>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</tr>");
                         break;
                 }
                 break;
             case DocEntityType.Col:
                 switch (docEntity.State)
                 {
                     case DocEntityState.Open:
                         writer.Write("<td>");
                         break;
                     case DocEntityState.Close:
                         writer.Write("</td>");
                         break;
                 }
                 break;
             case DocEntityType.Code:
                 writer.Write("<table><tr><td>");
                 GenerateText(writer, docEntity.Argument);
                 writer.Write("</td></tr></table>");
                 break;
             case DocEntityType.Slash:
                 GenerateText(writer, "/");
                 break;
             case DocEntityType.Crlf:
                 writer.Write("<br/>");
                 break;
             case DocEntityType.Para:
                 writer.Write("</font></p><p><font color=\"{0}\">", currentColor);
                 break;
             case DocEntityType.Nop:
                 break;
             case DocEntityType.Img:
                 writer.Write("<img src=\"{0}\"/>", docEntity.Argument);
                 break;
             case DocEntityType.Color:
                 currentColor = docEntity.Argument;
                 writer.Write("</font><font color=\"{0}\">", currentColor);
                 break;
             case DocEntityType.Text:
                 GenerateText(writer, docEntity.Argument);
                 break;
         }
     }
     writer.Write("</font></p>");
 }
コード例 #14
0
 static void GenerateFiles(IEnumerable <DocItem> docItems, string outputFolder, DocItemValidationResult validationResult)
 {
     foreach (var item in docItems.OrderBy(i => i.Title))
     {
         GenerateFile(item, outputFolder, validationResult);
     }
 }
コード例 #15
0
 public static void GenerateStaticHtmlDocument(string outputFolder, DocItemValidationResult validationResult)
 {
     GenerateFiles(validationResult.RootItems, outputFolder, validationResult);
 }
コード例 #16
0
        public static void GenerateDocumentContent(TextWriter writer, DocItem docItem, DocItemValidationResult validationResult, Func <DocItem, string> linkTransformer)
        {
            string currentColor = "000000";

            writer.Write("<p><font color=\"{0}\">", currentColor);
            foreach (var docEntity in docItem.Content.Entities)
            {
                switch (docEntity.Type)
                {
                case DocEntityType.Bold:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<b>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</b>");
                        break;
                    }
                    break;

                case DocEntityType.Header1:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<h1>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</h1>");
                        break;
                    }
                    break;

                case DocEntityType.Header2:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<h2>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</h2>");
                        break;
                    }
                    break;

                case DocEntityType.Header3:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<h3>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</h3>");
                        break;
                    }
                    break;

                case DocEntityType.LinkId:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<a href=\"{0}\">", linkTransformer(validationResult.UniqueIdItemMap[docEntity.Argument]));
                        break;

                    case DocEntityState.Close:
                        writer.Write("</a>");
                        break;
                    }
                    break;

                case DocEntityType.LinkSymbol:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<a href=\"{0}\">", linkTransformer(validationResult.MemberIdItemMap[docEntity.Argument]));
                        break;

                    case DocEntityState.Close:
                        writer.Write("</a>");
                        break;
                    }
                    break;

                case DocEntityType.Table:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<div  class=\"docTable\"><table>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</table></div>");
                        break;
                    }
                    break;

                case DocEntityType.RowHeader:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<thead><tr>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</tr></thead>");
                        break;
                    }
                    break;

                case DocEntityType.Row:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<tr>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</tr>");
                        break;
                    }
                    break;

                case DocEntityType.Col:
                    switch (docEntity.State)
                    {
                    case DocEntityState.Open:
                        writer.Write("<td>");
                        break;

                    case DocEntityState.Close:
                        writer.Write("</td>");
                        break;
                    }
                    break;

                case DocEntityType.Code:
                    writer.Write("<table><tr><td>");
                    GenerateText(writer, docEntity.Argument);
                    writer.Write("</td></tr></table>");
                    break;

                case DocEntityType.Slash:
                    GenerateText(writer, "/");
                    break;

                case DocEntityType.Crlf:
                    writer.Write("<br/>");
                    break;

                case DocEntityType.Para:
                    writer.Write("</font></p><p><font color=\"{0}\">", currentColor);
                    break;

                case DocEntityType.Nop:
                    break;

                case DocEntityType.Img:
                    writer.Write("<img src=\"{0}\"/>", docEntity.Argument);
                    break;

                case DocEntityType.Color:
                    currentColor = docEntity.Argument;
                    writer.Write("</font><font color=\"{0}\">", currentColor);
                    break;

                case DocEntityType.Text:
                    GenerateText(writer, docEntity.Argument);
                    break;
                }
            }
            writer.Write("</font></p>");
        }