public MarkdownPagesMiddleWare(MarkdownPagesOptions options, RequestDelegate next)
        {
            this.Options = options;
            _next        = next;

            var htmlTextBuilder = new StringBuilder();

            htmlTextBuilder.Append(
                "<!DOCTYPE html>\n" +
                "<html>\n" +
                "<head>\n");

            options.MetaTags.ForEach(metaTag => htmlTextBuilder.AppendLine(metaTag));

            var cssLinks = options.CssLinks.Select(url => $"<link rel=\"stylesheet\" href=\"{url}\" />");

            foreach (var cssLink in cssLinks)
            {
                htmlTextBuilder.AppendLine(cssLink);
            }

            htmlTextBuilder.Append(
                "</head>\n" +
                "<body>\n");

            this.HtmlTextBegining = htmlTextBuilder.ToString();

            var pipelineBuilder = new MarkdownPipelineBuilder()
                                  .UsePipeTables()
                                  .UseGridTables();

            if (options.EnableAutoLink)
            {
                pipelineBuilder.UseAutoLinks();
            }
            this.MarkdownPipeline = pipelineBuilder.Build();
        }
 // <summary>
 /// This method is called to enable Markdown Pages feature in an application.
 /// </summary>
 public static IApplicationBuilder UseMarkdownPages(this IApplicationBuilder app, MarkdownPagesOptions options)
 {
     return(app.UseMiddleware <MarkdownPagesMiddleWare>(options));
 }