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)); }