static void Main(string[] args) { try { GenerationOptions options = new GenerationOptions(args); var types = MarkdownGenerator.BuildFrom(options.Target, options.NamespaceMatch, options.AccessibilityLevel); if (types.Length == 0) { return; } if (!Directory.Exists(options.Output)) { Directory.CreateDirectory(options.Output); } else { DirectoryInfo directory = new DirectoryInfo(options.Output); foreach (FileInfo file in directory.GetFiles()) { file.Delete(); } foreach (DirectoryInfo subDirectory in directory.GetDirectories()) { subDirectory.Delete(true); } } var homeBuilder = new MarkdownBuilder(); homeBuilder.Header(1, "Contents"); homeBuilder.AppendLine(); switch (options.Mode) { case GenerationMode.FilePerClass: GenerateFilePerClass(homeBuilder, options.Output, types); break; case GenerationMode.FilePerNamespace: GenerateFilePerNamespace(homeBuilder, options.Output, types); break; default: throw new Exception("Unknown generation mode"); } File.WriteAllText(Path.Combine(options.Output, "Contents.md"), homeBuilder.ToString()); } catch (Exception ex) { Console.WriteLine("An exception is thrown: " + GetFullExceptionMessage(ex)); Console.ReadKey(); } }