private static void GeneratePreviousReleasesPage(DocumentationTarget target, string headerTemplate)
        {
            var template          = File.ReadAllText(@"..\..\DocumentationTemplates\PreviousReleasesTemplate.md");
            var processedTemplate = ProcessPreviousReleasesTemplateText(template, headerTemplate);

            File.WriteAllText($"{DocumentPath(target)}PreviousReleases.md", processedTemplate);
        }
        private static void GenerateHomePage(IEnumerable <AnalyzerDetails> implementedAnalyzersDetails,
                                             IEnumerable <AnalyzerDetails> plannedAnalyzerDetails,
                                             DocumentationTarget target,
                                             string fileName,
                                             string headerTemplate,
                                             string versionTemplate,
                                             Func <string, string> linkCreator)
        {
            var template          = File.ReadAllText(@"..\..\DocumentationTemplates\HomeTemplate.md");
            var processedTemplate = ProcessHomeTemplateText(template,
                                                            implementedAnalyzersDetails,
                                                            plannedAnalyzerDetails,
                                                            headerTemplate,
                                                            versionTemplate,
                                                            linkCreator);

            File.WriteAllText($"{DocumentPath(target)}{fileName}.md", processedTemplate);
        }
        private static void GenerateCategoryPages(IList <AnalyzerDetails> implementedAnalyzersDetails,
                                                  IList <AnalyzerDetails> plannedAnalyzerDetails,
                                                  DocumentationTarget target,
                                                  string headerTemplate,
                                                  Func <string, string> linkCreator)
        {
            var template = File.ReadAllText(@"..\..\DocumentationTemplates\CategoryTemplate.md");

            foreach (var category in AnalyzerCategories.AnalyzerCategoryList)
            {
                var processedContents = ProcessCategoryTemplateText(template,
                                                                    category,
                                                                    implementedAnalyzersDetails,
                                                                    plannedAnalyzerDetails,
                                                                    headerTemplate,
                                                                    linkCreator);
                File.WriteAllText($"{DocumentPath(target)}{category.Name.Replace(" ", "")}.md", processedContents);
            }
        }
        private static void GenerateAnalyzerDocuments(IEnumerable <AnalyzerDetails> analyzersDetails,
                                                      ImplementationStatus status,
                                                      DocumentationTarget target,
                                                      string headerTemplate,
                                                      Func <string, string> linkCreator)
        {
            var template = File.ReadAllText(@"..\..\DocumentationTemplates\AnalyzerTemplate.md");

            foreach (var details in analyzersDetails)
            {
                var analyzerName = details.DiagnosticId;
                Console.WriteLine($@"Generating {analyzerName}.md");

                var extraWords        = CreateExtraWordsSet(analyzerName);
                var processedContents =
                    ProcessAnalyzerTemplateText(template, details, status, extraWords, headerTemplate, linkCreator);

                File.WriteAllText($"{DocumentPath(target)}{analyzerName}.md", processedContents);
            }
        }
 private static string DocumentPath(DocumentationTarget target) =>
     target.Match().To<string>()
           .With(ReadMe).Do(@"..\..\..\")
           .With(Wiki).Do(@"..\..\..\..\Arnolyzer.wiki\")
           .Else(@"..\..\..\..\Arnolyzer_pages\")
           .Result();
 private static void GeneratePreviousReleasesPage(DocumentationTarget target, string headerTemplate)
 {
     var template = File.ReadAllText(@"..\..\DocumentationTemplates\PreviousReleasesTemplate.md");
     var processedTemplate = ProcessPreviousReleasesTemplateText(template, headerTemplate);
     File.WriteAllText($"{DocumentPath(target)}PreviousReleases.md", processedTemplate);
 }
 private static void GenerateCategoryPages(IList<AnalyzerDetails> implementedAnalyzersDetails,
                                           IList<AnalyzerDetails> plannedAnalyzerDetails,
                                           DocumentationTarget target,
                                           string headerTemplate,
                                           Func<string, string> linkCreator)
 {
     var template = File.ReadAllText(@"..\..\DocumentationTemplates\CategoryTemplate.md");
     foreach (var category in AnalyzerCategories.AnalyzerCategoryList)
     {
         var processedContents = ProcessCategoryTemplateText(template,
                                                             category,
                                                             implementedAnalyzersDetails,
                                                             plannedAnalyzerDetails,
                                                             headerTemplate,
                                                             linkCreator);
         File.WriteAllText($"{DocumentPath(target)}{category.Name.Replace(" ", "")}.md", processedContents);
     }
 }
 private static void GenerateHomePage(IEnumerable<AnalyzerDetails> implementedAnalyzersDetails,
                                      IEnumerable<AnalyzerDetails> plannedAnalyzerDetails,
                                      DocumentationTarget target,
                                      string fileName,
                                      string headerTemplate,
                                      string versionTemplate,
                                      Func<string, string> linkCreator)
 {
     var template = File.ReadAllText(@"..\..\DocumentationTemplates\HomeTemplate.md");
     var processedTemplate = ProcessHomeTemplateText(template,
                                                     implementedAnalyzersDetails,
                                                     plannedAnalyzerDetails,
                                                     headerTemplate,
                                                     versionTemplate,
                                                     linkCreator);
     File.WriteAllText($"{DocumentPath(target)}{fileName}.md", processedTemplate);
 }
        private static void GenerateAnalyzerDocuments(IEnumerable<AnalyzerDetails> analyzersDetails,
                                                      ImplementationStatus status,
                                                      DocumentationTarget target,
                                                      string headerTemplate,
                                                      Func<string, string> linkCreator)
        {
            var template = File.ReadAllText(@"..\..\DocumentationTemplates\AnalyzerTemplate.md");
            foreach (var details in analyzersDetails)
            {
                var analyzerName = details.DiagnosticId;
                Console.WriteLine($@"Generating {analyzerName}.md");

                var extraWords = CreateExtraWordsSet(analyzerName);
                var processedContents =
                    ProcessAnalyzerTemplateText(template, details, status, extraWords, headerTemplate, linkCreator);

                File.WriteAllText($"{DocumentPath(target)}{analyzerName}.md", processedContents);
            }
        }
 private static string DocumentPath(DocumentationTarget target) =>
 target.Match().To <string>()
 .With(ReadMe).Do(@"..\..\..\")
 .With(Wiki).Do(@"..\..\..\..\Arnolyzer.wiki\")
 .Else(@"..\..\..\..\Arnolyzer_pages\")
 .Result();