From 90cef277f5d4923fa5cce4f81362e0562f96fe9a Mon Sep 17 00:00:00 2001 From: hishamco Date: Fri, 27 Jan 2017 06:15:48 +0300 Subject: [PATCH] Support CommonMarkSettings via MarkdownViewEngineOptions --- src/MarkdownViewEngine/MarkdownPage.cs | 8 ++++++-- src/MarkdownViewEngine/MarkdownViewEngine.cs | 6 +++--- src/MarkdownViewEngine/MarkdownViewEngineOptions.cs | 5 ++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/MarkdownViewEngine/MarkdownPage.cs b/src/MarkdownViewEngine/MarkdownPage.cs index 7ac6894..de3ae8f 100644 --- a/src/MarkdownViewEngine/MarkdownPage.cs +++ b/src/MarkdownViewEngine/MarkdownPage.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.Options; using System; using System.IO; using System.Linq; @@ -13,10 +14,13 @@ namespace MarkdownViewEngine public class MarkdownPage : IMarkdownPage { private readonly IFileProvider _contentRootFileProvider; + private readonly MarkdownViewEngineOptions _options; - public MarkdownPage(IFileProvider contentRootFileProvider) + public MarkdownPage(IFileProvider contentRootFileProvider, + MarkdownViewEngineOptions options) { _contentRootFileProvider = contentRootFileProvider; + _options = options; } public IHtmlContent BodyContent { get; set; } @@ -61,7 +65,7 @@ public async Task ExecuteAsync() markdown = content; } - var html = CommonMarkConverter.Convert(markdown); + var html = CommonMarkConverter.Convert(markdown, _options.MarkdownSettings); BodyContent = new HtmlString(html); } } diff --git a/src/MarkdownViewEngine/MarkdownViewEngine.cs b/src/MarkdownViewEngine/MarkdownViewEngine.cs index b2232f0..6438424 100644 --- a/src/MarkdownViewEngine/MarkdownViewEngine.cs +++ b/src/MarkdownViewEngine/MarkdownViewEngine.cs @@ -108,7 +108,7 @@ private ViewEngineResult LocatePageFromViewLocations( var fileInfo = _contentRootFileProvider.GetFileInfo(view); if (fileInfo.Exists) { - var page = new MarkdownPage(_contentRootFileProvider) + var page = new MarkdownPage(_contentRootFileProvider, _options) { Path = view }; @@ -130,7 +130,7 @@ private ViewEngineResult LocatePageFromPath(string executingFilePath, string pag return ViewEngineResult.NotFound(applicationRelativePath, Enumerable.Empty()); } - var page = new MarkdownPage(_contentRootFileProvider) + var page = new MarkdownPage(_contentRootFileProvider, _options) { Path = applicationRelativePath }; @@ -188,7 +188,7 @@ private IMarkdownPage GetViewStartPage() var fileInfo = _contentRootFileProvider.GetFileInfo(view); if (fileInfo.Exists) { - page = new MarkdownPage(_contentRootFileProvider) + page = new MarkdownPage(_contentRootFileProvider, _options) { Path = view }; diff --git a/src/MarkdownViewEngine/MarkdownViewEngineOptions.cs b/src/MarkdownViewEngine/MarkdownViewEngineOptions.cs index 65d60f1..5f29890 100644 --- a/src/MarkdownViewEngine/MarkdownViewEngineOptions.cs +++ b/src/MarkdownViewEngine/MarkdownViewEngineOptions.cs @@ -1,9 +1,12 @@ -using System.Collections.Generic; +using CommonMark; +using System.Collections.Generic; namespace MarkdownViewEngine { public class MarkdownViewEngineOptions { public IList ViewLocationFormats { get; } = new List(); + + public CommonMarkSettings MarkdownSettings { get; } = CommonMarkSettings.Default.Clone(); } } \ No newline at end of file