Exemplo n.º 1
0
        /// <summary>
        /// Generate a class page.
        /// </summary>
        /// <param name="c">
        /// The class.
        /// </param>
        /// <param name="outputPath">
        /// The output path.
        /// </param>
        public void GenerateClassPage(Class c, string outputPath)
        {
            string template = File.ReadAllText("Templates\\classpage.html");

            var toc = this.GenerateToc(c);

            template = template.Replace(tokenToc, toc);

            // replace classname
            template = template.Replace(tokenPageTitle, c.Name);
            template = template.Replace(tokenClassName, c.Name);
            template = template.Replace(tokenDigramJson, c.ClassDiagramJSON());
            template = template.Replace(tokenClassInherits, c.InheritanceClass == null ? c.Inherits : c.InheritanceClass.HtmlLinkToPage());
            template = template.Replace(tokenClassParent, c.ContainmentParent == null ? string.Empty : c.ContainmentBreadcrumb());
            template = template.Replace(tokenClassRemark, c.Remark);
            template = template.Replace(tokenPropertiesTable, this.GeneratePropertiesTable(c));
            template = template.Replace(tokenClassTable, this.GenerateContainedClassesTable(c));
            template = template.Replace(tokenClassInheritanceTable, this.GenerateInheritanceClassesTable(c));
            template = template.Replace(tokenModelDiagram, c.ModelDiagramJSON());
            template = template.Replace(tokenAuthorName, this.authorNameLiteral);
            template = template.Replace(tokenDate, DateTime.Now.ToShortDateString());

            var savepath = c.HtmlPage();

            File.WriteAllText(outputPath + "\\" + savepath, template);

            foreach (var cc in c.Classes)
            {
                this.GenerateClassPage(cc, outputPath);
            }
        }