private void ConvertDoc(string inputDoc, string rootOutputDirectory) { var outputDir = GetOutputDirectory(inputDoc, rootOutputDirectory); var outputFile = Path.Combine(outputDir, GetOuputFilename(inputDoc)); var inputFileInfo = new FileInfo(inputDoc); if (!Directory.Exists(outputDir)) { Console.WriteLine("Output Directory Doesn't Exist: '" + outputDir + "'"); return; } if (!inputFileInfo.Exists) { Console.WriteLine("Input File Doesn't Exist: '" + inputDoc + "'"); return; } var ns = ExtractNamespaceFromFile(outputFile); // we might need to convert this namespace to an explicit value if (PackageNamespaceToStandalone.TryGetValue(ns, out var standaloneNs)) { ns = standaloneNs; } // get the MD converter for the namespace var converter = _defaultConverter; if (CustomConverters.TryGetValue(ns, out var customConverter)) { converter = customConverter; } var markdown = converter.ConvertFile(inputDoc); if (JavaDocFormatters.CustomReplacers.TryGetValue(ns, out var replacers)) { foreach (var r in replacers) { markdown = r.Replace(markdown); } } var doc = new ConvertedDocument(inputFileInfo, new FileInfo(outputFile), ns, markdown); if (JavaDocFormatters.CustomProcessors.TryGetValue(ns, out var processor)) { processor(doc); } markdown = doc.Markdown; // it may have changed var fileContent = AppendYamlHeader(ns, markdown); File.WriteAllText(outputFile, fileContent, Encoding.UTF8); }