/// <summary> /// Convert from Markdown string to VT100 encoded string or HTML. Returns MarkdownInfo object. /// </summary> /// <param name="markdownString">String with Markdown content to be converted.</param> /// <param name="conversionType">Specifies type of conversion, either VT100 or HTML.</param> /// <param name="optionInfo">Specifies the rendering options for VT100 rendering.</param> /// <returns>MarkdownInfo object with the converted output.</returns> public static MarkdownInfo Convert(string markdownString, MarkdownConversionType conversionType, MarkdownOptionInfo optionInfo) { var renderInfo = new MarkdownInfo(); var writer = new StringWriter(); MarkdownPipeline pipeline = null; if (conversionType.HasFlag(MarkdownConversionType.HTML)) { pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build(); var renderer = new Markdig.Renderers.HtmlRenderer(writer); renderInfo.Html = Markdig.Markdown.Convert(markdownString, renderer, pipeline).ToString(); } if (conversionType.HasFlag(MarkdownConversionType.VT100)) { pipeline = new MarkdownPipelineBuilder().Build(); // Use the VT100 renderer. var renderer = new VT100Renderer(writer, optionInfo); renderInfo.VT100EncodedString = Markdig.Markdown.Convert(markdownString, renderer, pipeline).ToString(); } // Always have AST available. var parsed = Markdig.Markdown.Parse(markdownString, pipeline); renderInfo.Tokens = parsed; return(renderInfo); }
/// <summary> /// Read the MarkdownOptionInfo set in SessionState. /// </summary> protected override void BeginProcessing() { mdOption = SessionState.PSVariable.GetValue("MarkdownOptionInfo", new MarkdownOptionInfo()) as MarkdownOptionInfo; if (mdOption == null) { throw new InvalidOperationException(); } if (AsVT100EncodedString) { conversionType = MarkdownConversionType.VT100; } }
private void ConvertEachFile(IEnumerable <string> paths, MarkdownConversionType conversionType, bool isLiteral, PSMarkdownOptionInfo optionInfo) { foreach (var path in paths) { var resolvedPaths = ResolvePath(path, isLiteral); foreach (var resolvedPath in resolvedPaths) { WriteObject( MarkdownConverter.Convert( ReadContentFromFile(resolvedPath)?.Result, conversionType, optionInfo)); } } }
/// <summary> /// Read the PSMarkdownOptionInfo set in SessionState. /// </summary> protected override void BeginProcessing() { _mdOption = PSMarkdownOptionInfoCache.Get(this.CommandInfo); bool?supportsVT100 = this.Host?.UI.SupportsVirtualTerminal; // supportsVT100 == null if the host is null. // supportsVT100 == false if host does not support VT100. if (supportsVT100 != true) { _mdOption.EnableVT100Encoding = false; } if (AsVT100EncodedString) { _conversionType = MarkdownConversionType.VT100; } }
/// <summary> /// Read the PSMarkdownOptionInfo set in SessionState. /// </summary> protected override void BeginProcessing() { mdOption = this.CommandInfo.Module.SessionState.PSVariable.GetValue("PSMarkdownOptionInfo", new PSMarkdownOptionInfo()) as PSMarkdownOptionInfo; if (mdOption == null) { throw new InvalidOperationException(); } bool?supportsVT100 = this.Host?.UI.SupportsVirtualTerminal; // supportsVT100 == null if the host is null. // supportsVT100 == false if host does not support VT100. if (supportsVT100 != true) { mdOption.EnableVT100Encoding = false; } if (AsVT100EncodedString) { conversionType = MarkdownConversionType.VT100; } }