From 6524a4f6182283da1f769f42c6297f9fbef2e5df Mon Sep 17 00:00:00 2001 From: Oliver Booth Date: Tue, 8 Aug 2023 00:34:15 +0100 Subject: [PATCH] feat: inject custom markdown pipeline --- OliverBooth/Pages/Blog/Article.cshtml.cs | 7 +++++-- OliverBooth/Program.cs | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/OliverBooth/Pages/Blog/Article.cshtml.cs b/OliverBooth/Pages/Blog/Article.cshtml.cs index abaadd0..5fa96e4 100644 --- a/OliverBooth/Pages/Blog/Article.cshtml.cs +++ b/OliverBooth/Pages/Blog/Article.cshtml.cs @@ -1,3 +1,4 @@ +using Markdig; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.EntityFrameworkCore; @@ -9,10 +10,12 @@ namespace OliverBooth.Pages.Blog; public class Article : PageModel { private readonly IDbContextFactory _dbContextFactory; + private readonly MarkdownPipeline _markdownPipeline; - public Article(IDbContextFactory dbContextFactory) + public Article(IDbContextFactory dbContextFactory, MarkdownPipeline markdownPipeline) { _dbContextFactory = dbContextFactory; + _markdownPipeline = markdownPipeline; } public Author Author { get; private set; } @@ -28,7 +31,7 @@ public class Article : PageModel content = content.Replace("\n\n", "\n"); } - return Markdig.Markdown.ToHtml(content.Trim()); + return Markdown.ToHtml(content.Trim(), _markdownPipeline); } public IActionResult OnGet(int year, int month, int day, string slug) diff --git a/OliverBooth/Program.cs b/OliverBooth/Program.cs index 2e3ec7d..8155825 100644 --- a/OliverBooth/Program.cs +++ b/OliverBooth/Program.cs @@ -1,3 +1,4 @@ +using Markdig; using NLog.Extensions.Logging; using OliverBooth.Data; using OliverBooth.Services; @@ -9,6 +10,20 @@ builder.Configuration.AddTomlFile("data/config.toml", true, true); builder.Logging.ClearProviders(); builder.Logging.AddNLog(); builder.Services.AddHostedSingleton(); +builder.Services.AddSingleton(new MarkdownPipelineBuilder() + .UseAbbreviations() + .UseAdvancedExtensions() + .UseBootstrap() + .UseCitations() + .UseDiagrams() + .UseFigures() + .UseFooters() + .UseFootnotes() + .UseGlobalization() + .UseMathematics() + .UseAutoIdentifiers() + .UseAutoLinks() + .Build()); builder.Services.AddDbContextFactory(); builder.Services.AddDbContextFactory();