示例#1
0
 public static void ExecutePipeline(MetadataModel yaml, ResolverContext context)
 {
     foreach (var pipeline in pipelines)
     {
         pipeline.Run(yaml, context);
     }
 }
示例#2
0
        /// <summary>
        /// TODO: input Namespace list instead; 
        /// TODO: Save to ...yml.map
        /// </summary>
        /// <param name="allMembers"></param>
        /// <returns></returns>
        public static MetadataModel ResolveMetadata(
            Dictionary<string, MetadataItem> allMembers,
            Dictionary<string, ReferenceItem> allReferences,
            string apiFolder,
            bool preserveRawInlineComments,
            IEnumerable<string> externalReferencePackages)
        {
            MetadataModel viewModel = new MetadataModel();
            viewModel.TocYamlViewModel = new MetadataItem()
            {
                Type = MemberType.Toc,
                Items = allMembers.Where(s => s.Value.Type == MemberType.Namespace).Select(s => s.Value).ToList(),
            };
            viewModel.Members = new List<MetadataItem>();
            ResolverContext context = new ResolverContext
            {
                ApiFolder = apiFolder,
                References = allReferences,
                PreserveRawInlineComments = preserveRawInlineComments,
            };

            ExecutePipeline(viewModel, context);

            return viewModel;
        }
示例#3
0
 public static void ExecutePipeline(MetadataModel yaml, ResolverContext context)
 {
     foreach (var pipeline in pipelines)
     {
         pipeline.Run(yaml, context);
     }
 }
示例#4
0
        /// <summary>
        /// TODO: input Namespace list instead;
        /// TODO: Save to ...yml.map
        /// </summary>
        /// <param name="allMembers"></param>
        /// <returns></returns>
        public static MetadataModel ResolveMetadata(
            Dictionary <string, MetadataItem> allMembers,
            Dictionary <string, ReferenceItem> allReferences,
            string apiFolder,
            bool preserveRawInlineComments,
            IEnumerable <string> externalReferencePackages)
        {
            MetadataModel viewModel = new MetadataModel();

            viewModel.TocYamlViewModel = new MetadataItem()
            {
                Type  = MemberType.Toc,
                Items = allMembers.Where(s => s.Value.Type == MemberType.Namespace).Select(s => s.Value).ToList(),
            };
            viewModel.Members = new List <MetadataItem>();
            ResolverContext context = new ResolverContext
            {
                ApiFolder  = apiFolder,
                References = allReferences,
                PreserveRawInlineComments = preserveRawInlineComments,
            };

            ExecutePipeline(viewModel, context);

            return(viewModel);
        }
示例#5
0
 public void Run(MetadataModel yaml, ResolverContext context)
 {
     if (yaml.Members != null && yaml.Members.Count > 0)
     {
         UpdateDerivedClassMapping(yaml.Members, context.References);
         AppendDerivedClass(yaml.Members);
     }
 }
示例#6
0
 public void Run(MetadataModel yaml, ResolverContext context)
 {
     if (yaml.Members != null && yaml.Members.Count > 0)
     {
         UpdateDerivedClassMapping(yaml.Members, context.References);
         AppendDerivedClass(yaml.Members);
     }
 }
示例#7
0
 public void Run(MetadataModel yaml, ResolverContext context)
 {
     TreeIterator.Preorder(yaml.TocYamlViewModel, null,
                           s => s.IsInvalid ? null : s.Items,
                           (current, parent) =>
     {
         current.Parent = parent;
         return(true);
     });
 }
示例#8
0
文件: SetParent.cs 项目: dotnet/docfx
 public void Run(MetadataModel yaml, ResolverContext context)
 {
     TreeIterator.Preorder(yaml.TocYamlViewModel, null,
         s => s.IsInvalid ? null : s.Items,
         (current, parent) =>
         {
             current.Parent = parent;
             return true;
         });
 }
示例#9
0
 public void Run(MetadataModel yaml, ResolverContext context)
 {
     TreeIterator.Preorder(
         yaml.TocYamlViewModel,
         null,
         s => s.IsInvalid ? null : s.Items,
         (current, parent) =>
     {
         if (current.InheritDoc != null)
         {
             InheritDoc(current, context);
             current.InheritDoc = null;
         }
         return(true);
     });
 }
示例#10
0
        /// <summary>
        /// The yaml layout should be 
        /// namespace -- class level -- method level
        /// </summary>
        /// <param name="allMembers"></param>
        /// <returns></returns>
        public void Run(MetadataModel yaml, ResolverContext context)
        {
            StringBuilder message = new StringBuilder();
            foreach (var member in yaml.TocYamlViewModel.Items)
            {
                var result = CheckNamespaces(member);
                if (!string.IsNullOrEmpty(result))
                {
                    message.AppendLine(result);
                }
            }

            if (message.Length > 0)
            {
                Logger.LogWarning(message.ToString());
            }
        }
示例#11
0
        /// <summary>
        /// The yaml layout should be
        /// namespace -- class level -- method level
        /// </summary>
        /// <param name="allMembers"></param>
        /// <returns></returns>
        public void Run(MetadataModel yaml, ResolverContext context)
        {
            StringBuilder message = new StringBuilder();

            foreach (var member in yaml.TocYamlViewModel.Items)
            {
                var result = CheckNamespaces(member);
                if (!string.IsNullOrEmpty(result))
                {
                    message.AppendLine(result);
                }
            }

            if (message.Length > 0)
            {
                Logger.LogWarning(message.ToString());
            }
        }
示例#12
0
        public void Run(MetadataModel yaml, ResolverContext context)
        {
            TreeIterator.Preorder(yaml.TocYamlViewModel, null,
                s =>
                {
                    if (s.IsInvalid || (s.Type != MemberType.Namespace && s.Type != MemberType.Toc)) return null;
                    else return s.Items;
                },
                (member, parent) =>
                {
                    if (member.Type != MemberType.Toc)
                    {
                        yaml.Members.Add(member);
                    }

                    return true;
                });
        }
示例#13
0
 public void Run(MetadataModel yaml, ResolverContext context)
 {
     TreeIterator.Preorder(yaml.TocYamlViewModel, null,
         s => s.IsInvalid ? null : s.Items,
         (current, parent) =>
         {
             MetadataItem page;
             var addingReferences = new List<ReferenceItem>();
             var documentReferences = current.References;
             if (current.Type.IsPageLevel())
             {
                 page = current;
                 current.References = new Dictionary<string, ReferenceItem>();
             }
             else
             {
                 page = parent;
                 current.References = null;
             }
             if (documentReferences != null && documentReferences.Count > 0)
             {
                 foreach (var key in documentReferences.Keys)
                 {
                     TryAddReference(context, page, addingReferences, key);
                 }
             }
             foreach (var key in GetReferenceKeys(current))
             {
                 TryAddReference(context, page, addingReferences, key);
             }
             if (current.Type == MemberType.Namespace)
             {
                 foreach (var item in current.Items)
                 {
                     TryAddReference(context, page, addingReferences, item.Name);
                 }
             }
             AddIndirectReference(context, page, addingReferences);
             return true;
         });
 }
示例#14
0
 public void Run(MetadataModel yaml, ResolverContext context)
 {
     TreeIterator.Preorder(yaml.TocYamlViewModel, null,
                           s => s.IsInvalid ? null : s.Items,
                           (current, parent) =>
     {
         MetadataItem page;
         var addingReferences   = new List <ReferenceItem>();
         var documentReferences = current.References;
         if (current.Type.IsPageLevel())
         {
             page = current;
             current.References = new Dictionary <string, ReferenceItem>();
         }
         else
         {
             page = parent;
             current.References = null;
         }
         if (documentReferences != null && documentReferences.Count > 0)
         {
             foreach (var key in documentReferences.Keys)
             {
                 TryAddReference(context, page, addingReferences, key);
             }
         }
         foreach (var key in GetReferenceKeys(current))
         {
             TryAddReference(context, page, addingReferences, key);
         }
         if (current.Type == MemberType.Namespace)
         {
             foreach (var item in current.Items)
             {
                 TryAddReference(context, page, addingReferences, item.Name);
             }
         }
         AddIndirectReference(context, page, addingReferences);
         return(true);
     });
 }
示例#15
0
        public void Run(MetadataModel yaml, ResolverContext context)
        {
            TreeIterator.Preorder(
                yaml.TocYamlViewModel,
                null,
                s => s.IsInvalid ? null : s.Items,
                (member, parent) =>
            {
                // get all the possible places where link is possible
                if (member.Syntax != null && member.Syntax.Content != null)
                {
                    SyntaxLanguage[] keys = new SyntaxLanguage[member.Syntax.Content.Count];
                    member.Syntax.Content.Keys.CopyTo(keys, 0);
                    foreach (var key in keys)
                    {
                        member.Syntax.Content[key] = NormalizeLines(member.Syntax.Content[key]);
                    }
                }

                return(true);
            });
        }
示例#16
0
        public void Run(MetadataModel yaml, ResolverContext context)
        {
            TreeIterator.Preorder(
                yaml.TocYamlViewModel,
                null,
                s => s.IsInvalid ? null : s.Items,
                (member, parent) =>
                {
                    // get all the possible places where link is possible
                    if (member.Syntax != null && member.Syntax.Content != null)
                    {
                        SyntaxLanguage[] keys = new SyntaxLanguage[member.Syntax.Content.Count];
                        member.Syntax.Content.Keys.CopyTo(keys, 0);
                        foreach(var key in keys)
                        {
                            member.Syntax.Content[key] = NormalizeLines(member.Syntax.Content[key]);
                        }
                    }

                    return true;
                });
        }
示例#17
0
        public void Run(MetadataModel yaml, ResolverContext context)
        {
            TreeIterator.Preorder(yaml.TocYamlViewModel, null,
                                  s =>
            {
                if (s.IsInvalid || (s.Type != MemberType.Namespace && s.Type != MemberType.Toc))
                {
                    return(null);
                }
                else
                {
                    return(s.Items);
                }
            },
                                  (member, parent) =>
            {
                if (member.Type != MemberType.Toc)
                {
                    yaml.Members.Add(member);
                }

                return(true);
            });
        }