private void ValidateHelpMarkdown(string helpFolder, IList <string> helpRecords, ReportLogger <HelpIssue> helpLogger) { foreach (var helpMarkdown in helpRecords) { var file = Path.Combine(helpFolder, helpMarkdown + ".md"); var content = File.ReadAllText(file); try { var parser = new MarkdownParser(); var transformer = new ModelTransformerVersion2(); var markdownModel = parser.ParseString(new[] { content }); var model = transformer.NodeModelToMamlModel(markdownModel).FirstOrDefault(); } catch (Exception ex) { HelpIssue issue = new HelpIssue { Target = helpMarkdown, Severity = 1, ProblemId = PlatyPSSchemaViolation, Description = "Help content doesn't conform to PlatyPS Schema definition", Remediation = string.Format("No.") }; helpLogger.LogRecord(issue); Console.Error.WriteLine($"Failed to parse {file} by PlatyPS, {ex.Message}"); } } }
/// <summary> /// This is a helper method to do all 3 steps. /// </summary> /// <param name="markdown"></param> /// <returns></returns> public static string MarkdownStringToMamlString(string markdown) { var parser = new MarkdownParser(); var transformer = new ModelTransformerVersion2(); var renderer = new MamlRenderer(); var markdownModel = parser.ParseString(new string[] { markdown }); var mamlModel = transformer.NodeModelToMamlModel(markdownModel); string maml = renderer.MamlModelToString(mamlModel); return(maml); }
private string MarkdownStringToMarkdownString(string markdown, ParserMode parserMode) { // Parse var parser = new MarkdownParser(); var markdownModel = parser.ParseString(new string[] { markdown }, ParserMode.FormattingPreserve, null); // Convert model to Maml var transformer = new ModelTransformerVersion2(); var mamlModel = transformer.NodeModelToMamlModel(markdownModel).FirstOrDefault(); // Render as markdown var renderer = new MarkdownV2Renderer(parserMode); return(renderer.MamlModelToString(mamlModel, true)); }