zotan.pw-web/Pages/BlogPost.cshtml

35 lines
1.1 KiB
Plaintext

@page "/blog/{post}"
@using System.Text.RegularExpressions
@using zotanpw.Backend
@model BlogPostModel
@{
if (Model.Post == null)
return;
ViewData["title"] = "blog";
ViewData["subtitle"] = Model.Post.Shorthand;
ViewData["og-sitename"] = $"zotan.pw >> {ViewData["title"]}";
ViewData["og-title"] = Model.Post.Title;
if (System.IO.File.Exists($"wwwroot/files/blog/{Model.Post.Shorthand}.webp"))
ViewData["og-image"] = $"/files/blog/{Model.Post.Shorthand}.webp";
var desc = Model.Post.Content;
desc = Regex.Replace(desc, @"\s+", " "); // collapse whitespace
desc = Regex.Replace(desc, @"(?i)<\/?[aibu][^>]*>", ""); // remove <a>, <i>, <b> and <u> html tags
desc = desc.Trim(); // remove leading and trailing whitespace
desc = Regex.Match(desc, @"<p>([^<].*?)<\/p>").Groups[1].ToString().GetUntil("."); // get first sentence
ViewData["og-desc"] = desc;
#if (DEBUG)
Model.Post.UpdateContentAndMetadata();
#endif
}
<b>@Model.Post.PublishedOn.ToString("yyyy-MM-dd")</b> - @Utils.a_an(Model.Post.ReadTimeMinutes) @Model.Post.ReadTimeMinutes minute read (150 wpm)
<h1 id="post">@Model.Post.Title</h1>
<div>
@Html.Raw(Model.Post.Content)
</div>