diff --git a/DysonNetwork.Zone/Pages/Index.cshtml.cs b/DysonNetwork.Zone/Pages/Index.cshtml.cs index 519ea5e..0615198 100644 --- a/DysonNetwork.Zone/Pages/Index.cshtml.cs +++ b/DysonNetwork.Zone/Pages/Index.cshtml.cs @@ -12,10 +12,9 @@ public class IndexModel( PostService.PostServiceClient postClient, RemotePublisherService rps, RemoteAccountService ras, - MarkdownConverter markdownConverter // Inject MarkdownConverter + MarkdownConverter markdownConverter ) : PageModel { - private readonly MarkdownConverter _markdownConverter = markdownConverter; // Store the injected service public SnPublicationSite? Site { get; set; } public SnPublisher? Publisher { get; set; } public Account? UserAccount { get; set; } @@ -62,7 +61,7 @@ public class IndexModel( foreach ( var post in FeaturedPosts.Where(post => !string.IsNullOrEmpty(post.Content)) ) - post.Content = _markdownConverter.ToHtml(post.Content!); + post.Content = markdownConverter.ToHtml(post.Content!); } } } diff --git a/DysonNetwork.Zone/Pages/Posts.cshtml b/DysonNetwork.Zone/Pages/Posts.cshtml index f938c8d..f2f98bc 100644 --- a/DysonNetwork.Zone/Pages/Posts.cshtml +++ b/DysonNetwork.Zone/Pages/Posts.cshtml @@ -12,7 +12,7 @@ if (Model.Publisher != null) { - pageTitle = $"Posts"; + pageTitle = "Posts"; pageDescription = $"Browse posts written by {Model.Publisher.Nick}."; if (Model.Publisher.Background != null) ogImageUrl = $"{Request.Scheme}://{Request.Host}/drive/files/{Model.Publisher.Background.Id}"; @@ -74,7 +74,7 @@
@{ - var maxPagesToShow = 5; // e.g., 2 before, current, 2 after + const int maxPagesToShow = 5; // e.g., 2 before, current, 2 after var startPage = Math.Max(1, Model.CurrentPage - (maxPagesToShow / 2)); var endPage = Math.Min(Model.TotalPages, Model.CurrentPage + (maxPagesToShow / 2)); diff --git a/DysonNetwork.Zone/Pages/Posts.cshtml.cs b/DysonNetwork.Zone/Pages/Posts.cshtml.cs index 9b52a26..04603ba 100644 --- a/DysonNetwork.Zone/Pages/Posts.cshtml.cs +++ b/DysonNetwork.Zone/Pages/Posts.cshtml.cs @@ -11,10 +11,9 @@ namespace DysonNetwork.Zone.Pages; public class PostsModel( PostService.PostServiceClient postClient, RemotePublisherService rps, - MarkdownConverter markdownConverter // Inject MarkdownConverter + MarkdownConverter markdownConverter ) : PageModel { - private readonly MarkdownConverter _markdownConverter = markdownConverter; // Store the injected service public SnPublicationSite? Site { get; set; } public SnPublisher? Publisher { get; set; } public List Posts { get; set; } = []; @@ -49,7 +48,7 @@ public class PostsModel( // Convert the markdown content to HTML foreach (var post in Posts.Where(post => !string.IsNullOrEmpty(post.Content))) - post.Content = _markdownConverter.ToHtml(post.Content!, softBreaks: post.Type != PostType.Article); + post.Content = markdownConverter.ToHtml(post.Content!, softBreaks: post.Type != PostType.Article); } } } \ No newline at end of file diff --git a/DysonNetwork.Zone/Pages/Posts/Details.cshtml b/DysonNetwork.Zone/Pages/Posts/Details.cshtml index 3461e97..e7989d6 100644 --- a/DysonNetwork.Zone/Pages/Posts/Details.cshtml +++ b/DysonNetwork.Zone/Pages/Posts/Details.cshtml @@ -3,10 +3,10 @@ @model DysonNetwork.Zone.Pages.Posts.DetailsModel @{ Layout = "_LayoutContained"; - + var post = Model.Post; var pageTitle = post?.Title ?? "Post"; - var pageDescription = post?.Description; + var pageDescription = post?.Description; string? ogImageUrl = null; var canonicalUrl = $"{Request.Scheme}://{Request.Host}{Request.Path}{Request.QueryString}"; @@ -24,6 +24,7 @@ ogImageUrl = $"{Request.Scheme}://{Request.Host}/drive/files/{imageAttachment.Id}"; } } + ViewData["Title"] = pageTitle; } @@ -31,43 +32,39 @@ @if (!string.IsNullOrWhiteSpace(pageDescription)) { - - - + + + } - + - - - + + + @if (!string.IsNullOrEmpty(ogImageUrl)) { - + } - - @if(post != null) + + @if (post != null) { - + @if (post.EditedAt.HasValue) { - + } - @foreach (var tag in post.Tags) + @foreach (var tagName in post.Tags.Select(tag => !string.IsNullOrEmpty(tag.Name) ? tag.Name : tag.Slug).Where(tagName => !string.IsNullOrEmpty(tagName))) { - var tagName = !string.IsNullOrEmpty(tag.Name) ? tag.Name : tag.Slug; - if(!string.IsNullOrEmpty(tagName)) - { - - } + } } - - + + @if (!string.IsNullOrEmpty(ogImageUrl)) { - + } } @@ -84,7 +81,7 @@ {

@Model.Post.Description

} - +
@@ -92,7 +89,7 @@ Posted on @Model.Post.CreatedAt.ToDateTimeOffset().ToString("yyyy-MM-dd HH:mm")
- + @if (Model.Post.EditedAt.HasValue) {
@@ -109,10 +106,6 @@
- @if (!string.IsNullOrWhiteSpace(Model.Post.Description)) - { -

@Model.Post.Description

- } @Html.Raw(Model.Post.Content)
diff --git a/DysonNetwork.Zone/Pages/Posts/Details.cshtml.cs b/DysonNetwork.Zone/Pages/Posts/Details.cshtml.cs index 3e5052d..0ba7997 100644 --- a/DysonNetwork.Zone/Pages/Posts/Details.cshtml.cs +++ b/DysonNetwork.Zone/Pages/Posts/Details.cshtml.cs @@ -4,21 +4,21 @@ using DysonNetwork.Zone.Publication; // Add this using statement using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using PostType = DysonNetwork.Shared.Proto.PostType; namespace DysonNetwork.Zone.Pages.Posts; public class DetailsModel(PostService.PostServiceClient postClient, MarkdownConverter markdownConverter) : PageModel { - private readonly MarkdownConverter _markdownConverter = markdownConverter; [FromRoute] public string Slug { get; set; } = null!; - + public SnPublicationSite? Site { get; set; } public SnPost? Post { get; set; } public async Task OnGetAsync() { Site = HttpContext.Items[PublicationSiteMiddleware.SiteContextKey] as SnPublicationSite; - + if (string.IsNullOrEmpty(Slug)) return NotFound(); @@ -33,10 +33,11 @@ public class DetailsModel(PostService.PostServiceClient postClient, MarkdownConv } Post = SnPost.FromProtoValue(response); - - // Convert markdown content to HTML + + // Convert the markdown content to HTML if (Post != null && !string.IsNullOrEmpty(Post.Content)) - Post.Content = _markdownConverter.ToHtml(Post.Content); + Post.Content = markdownConverter.ToHtml(Post.Content, + softBreaks: Post.Type != DysonNetwork.Shared.Models.PostType.Article); return Page(); }