Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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;
            }
        }
Ejemplo n.º 5
0
        /// <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;
            }
        }