Example #1
0
        static XElement BuildNsSection(TypeDom.TypeKindEnum kind, TypeDom[] types)
        {
            if (!types.Any())
            {
                return(null);
            }

            XElement tbody;

            var ret = Section(
                Names[kind + "_s"],
                x("table", a("class", "doc_table"), tbody = x("tbody"))
                );

            tbody.Add(BuildRow(new XElement[0], x("span", Names[Strings.Name]), Names[Strings.Description].ToSpan(), "th"));

            foreach (var type in types)
            {
                tbody.Add(BuildRow(
                              Enumerable.Repeat(GetImage(Navigation.GetIconCss((kind + (type.Type.IsPublic ? "Pub" : "Prot")).To <MemberIconsEnum>()), Names[kind.ToString()], Navigation.EmptyImage, Names[kind.ToString()]), 1),
                              BuildTypeUrl(type.Type, false),
                              XMLUtils.GetTagInnerXml(type.DocInfo, "summary", Navigation, false)
                              ));
            }
            return(ret);
        }
        static string Generate(SolutionDom sln)
        {
            XElement body;
            var      doc = GetDoc(out body);

            body.Add(x("h1", sln.Name));

            XElement tbody;

            var table = Section(
                Names[Strings.Namespace + "_s"],
                x("table", a("class", "doc_table"), tbody = x("tbody"))
                );

            tbody.Add(BuildRow(new XElement[0], x("span", Names[Strings.Name]), Names[Strings.Description].ToSpan(), "th"));

            foreach (var ns in sln.Namespaces)
            {
                tbody.Add(BuildRow(
                              Enumerable.Empty <XElement>(),
                              BuildNsUrl(ns.Name),
                              XMLUtils.GetTagInnerXml(ns.DocInfo, "summary", Navigation, false)
                              ));
            }

            body.Add(table);

            return(doc.ToString());
        }
Example #3
0
 static XElement BuildNestedTypes(IEnumerable <TypeDom> members)
 {
     if (members == null || !members.Any())
     {
         return(null);
     }
     return(BuildMembers(Names[Strings.NestedTypes], members.Select(_ =>
                                                                    new MemberColumns
     {
         Name = BuildTypeUrl(_.Type),
         Description = XMLUtils.GetTagInnerXml(_.DocInfo, "summary", Navigation, false)
     }
                                                                    )));
 }
Example #4
0
        static XElement BuildEnding(AssemblyDom asm, XElement docInfo)
        {
            var remarks = XMLUtils.GetTagInnerXml(docInfo, "remarks", Navigation, true);

            return
                (x("div",
                   remarks == null ? x("span") : Section(Names[Strings.Remarks], x("p", remarks)),
                   Section(Names[Strings.VersionInfo],
                           x("p",
                             x("b", Names[Strings.Version] + ": "), asm.Version,
                             x("br"),
                             x("b", Names[Strings.NetRuntimeVersion] + ": "), asm.RuntimeVersion
                             ),
                           a("class", "doc_version")
                           )
                   ));
        }
        static string Generate(MemberDom member)
        {
            var doc = GetDoc(out var body);

            body.Add(
                x("h1", member.Type.SimpleName + GetMemberName(member) + Names[Strings.SuffixDelimeter] +
                  Names[GetMethodKindName(member)] + " ", member.GetParametersLongSignature()),
                x("p", XMLUtils.GetTagInnerXml(member.DocInfo, "summary", Navigation, true)),
                NamespaceAssembly(member.DeclaringType),
                GenerateSyntax(member),
                BuldParameters(Names[Strings.TypeParameters], member.GenericArguments),
                BuldParameters(Names[Strings.Parameters], member.Params),
                BuildReturns(member),
                BuildEnding(member.Type.Assembly, member.DocInfo)
                );
            return(doc.ToString());
        }
Example #6
0
        static XElement GetMemberDescription(MemberDom m)
        {
            var ret = XMLUtils.GetTagInnerXml(m.DocInfo, "summary", Navigation, false) ?? string.Empty.ToSpan();

            var inherited = m.GetInheritedFrom();
            var overrides = m.GetOverrides();

            if (overrides != null)
            {
                ret.Add((" (" + Names[Strings.Overrides] + " ").ToSpan(), BuildMemberUrl(overrides, false, true), ")".ToSpan());
            }
            else if (inherited != null)
            {
                ret.Add((" (" + Names[Strings.InheritedFrom] + " ").ToSpan(), BuildTypeUrl(inherited), ")".ToSpan());
            }

            return(ret);
        }
Example #7
0
 static XElement BuildReturns(MemberDom m)
 {
     if (!(m is MethodDom meth))
     {
         return(BuildMemberType(m));
     }
     if (meth.MemberType == null || meth.MemberType == typeof(void))
     {
         return(null);
     }
     return
         (x("div",
            a("class", "doc_return"),
            x("h4", Names[Strings.ReturnValue], a("class", "doc_h4")),
            Names[Strings.Type] + ": ",
            BuildTypeUrl(meth.MemberType),
            x("br"),
            XMLUtils.GetTagInnerXml(m.DocInfo, "returns", Navigation, true)
            ));
 }
        static string Generate(TypeDom type)
        {
            var doc = GetDoc(out var body);

            body.Add(
                x("h1", type.GetDisplayName(false) + Names[Strings.SuffixDelimeter] + Names[type.TypeKind.ToString()]),
                x("p", XMLUtils.GetTagInnerXml(type.DocInfo, "summary", Navigation, true)),
                InheritanceSection(type),
                NamespaceAssembly(type.Type),
                GenerateSyntax(type),
                BuldParameters(Names[Strings.TypeParameters], type.GenericTypeParameters)
                );

            for (int i = 0; i <= (int)MemberTypeSection.Events; i++)
            {
                body.Add(BuildMembers((MemberTypeSection)i, type));
            }

            body.Add(BuildEnding(type.Assembly, type.DocInfo));

            return(doc.ToString());
        }