diff --git a/src/Yavsc/Helpers/HtmlHelpers.cs b/src/Yavsc/Helpers/HtmlHelpers.cs index 81490d6e..69ce6733 100644 --- a/src/Yavsc/Helpers/HtmlHelpers.cs +++ b/src/Yavsc/Helpers/HtmlHelpers.cs @@ -2,22 +2,65 @@ using System; using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Mvc.ViewFeatures; using Yavsc.Models.Drawing; +using AsciiDocNet; +using Yavsc.Models.Blog; +using System.Linq.Expressions; + + +public static class AsciiDocHelpers + { + public static IHtmlContent AsciiDocFor (this IHtmlHelper html, + Expression> expression) + { + var span = new TagBuilder("p"){ TagRenderMode = TagRenderMode.SelfClosing }; + span.InnerHtml.Append ( + html.ValueFor(expression, "{0}")); + return span.RenderBody(); + } + + public static string AsciiDoc(IHtmlHelper htmlHelper, string text) + { + return AsciiDoc(htmlHelper, text, null); + } + + private static string AsciiDoc(IHtmlHelper htmlHelper, string text, object htmlAttributes) + { + // Create tag builder + var builder = new TagBuilder("div"); + var document = Document.Parse(text); + + // builder.InnerHtml = . + + // Add attributes + builder.MergeAttribute("class", "ascii"); + builder.MergeAttributes(new RouteValueDictionary(htmlAttributes)); + + // Render tag + return builder.ToString(); + } + } + + namespace Yavsc.Helpers { + + public static class HtmlHelpers { public static HtmlString Color(this Color c) { - if (c==null) return new HtmlString("#000"); - return new HtmlString(String.Format("#{0:X2}{1:X2}{2:X2}", c.Red, c.Green, c.Blue)); + if (c == null) return new HtmlString("#000"); + return new HtmlString(String.Format("#{0:X2}{1:X2}{2:X2}", c.Red, c.Green, c.Blue)); } public static string ToAbsolute(this HttpRequest request, string url) { var host = request.Host; - var isSecure = request.Headers[Constants.SshHeaderKey]=="on"; + var isSecure = request.Headers[Constants.SshHeaderKey] == "on"; return (isSecure ? "https" : "http") + $"://{host}/{url}"; } + } } diff --git a/src/Yavsc/Views/Blogspot/Details.cshtml b/src/Yavsc/Views/Blogspot/Details.cshtml index e610197a..f37ac91d 100644 --- a/src/Yavsc/Views/Blogspot/Details.cshtml +++ b/src/Yavsc/Views/Blogspot/Details.cshtml @@ -69,8 +69,8 @@ $('span.field-validation-valid[data-valmsg-for="Content"]').html(

@Model.Title

- -
+ @Html.AsciiDocFor(model => model.Content) +


diff --git a/src/Yavsc/Views/_ViewImports.cshtml b/src/Yavsc/Views/_ViewImports.cshtml index 88cfb2e3..f3f5f140 100755 --- a/src/Yavsc/Views/_ViewImports.cshtml +++ b/src/Yavsc/Views/_ViewImports.cshtml @@ -29,8 +29,8 @@ @using Yavsc.Helpers; @using PayPal.PayPalAPIInterfaceService.Model; - @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Yavsc @inject IAuthorizationService AuthorizationService @inject Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer SR @inject Microsoft.Extensions.Options.IOptions SiteSettings