Add blog post preview

This commit is contained in:
Robert Marshall 2019-04-28 11:20:06 +01:00
parent a47f18533b
commit fa143f5ab4
4 changed files with 20 additions and 5 deletions

View file

@ -22,7 +22,7 @@ namespace Website.Controllers
public async Task<IActionResult> Page(int page) public async Task<IActionResult> Page(int page)
{ {
var offset = (page - 1) * MaxPostsPerPage; var offset = (page - 1) * MaxPostsPerPage;
var posts = (await _repo.GetLatestPostsAsync(MaxPostsPerPage, offset)).Select(p => new BlogPostViewModel(p)); var posts = (await _repo.GetLatestPostsAsync(MaxPostsPerPage, offset)).Select(p => new BlogPostPreviewViewModel(p));
var maxPages = (await _repo.GetCountAsync()) / MaxPostsPerPage; var maxPages = (await _repo.GetCountAsync()) / MaxPostsPerPage;
var model = new BlogViewModel(posts, page, maxPages); var model = new BlogViewModel(posts, page, maxPages);
return View(model); return View(model);

View file

@ -18,7 +18,7 @@ namespace Website.Controllers
public async Task<IActionResult> Index() public async Task<IActionResult> Index()
{ {
var post = await _blogRepo.GetLatestPostAsync(); var post = await _blogRepo.GetLatestPostAsync();
var model = new BlogPostViewModel(post); var model = new BlogPostPreviewViewModel(post);
return View(model); return View(model);
} }
} }

View file

@ -0,0 +1,15 @@
using System;
using Markdig;
using Markdig.SyntaxHighlighting;
using Website.Models;
namespace Website.ViewModels
{
public class BlogPostPreviewViewModel:BlogPostViewModel
{
public BlogPostPreviewViewModel(BlogPost blogPost):base(blogPost)
{
Content = Markdown.ToHtml(blogPost.Content.Substring(0, 1000), GetPipeline()).Trim();
}
}
}

View file

@ -16,7 +16,7 @@ namespace Website.ViewModels
Content = Markdown.ToHtml(blogPost.Content, GetPipeline()).Trim(); Content = Markdown.ToHtml(blogPost.Content, GetPipeline()).Trim();
} }
private MarkdownPipeline GetPipeline()=>new MarkdownPipelineBuilder() protected MarkdownPipeline GetPipeline()=>new MarkdownPipelineBuilder()
//.UseAdvancedExtensions() //.UseAdvancedExtensions()
.UseAutoLinks() .UseAutoLinks()
.UseSoftlineBreakAsHardlineBreak() .UseSoftlineBreakAsHardlineBreak()
@ -24,7 +24,7 @@ namespace Website.ViewModels
.Build(); .Build();
public string Title { get; private set; } public string Title { get; private set; }
public string Content { get; private set; } public string Content { get; protected set; }
public DateTime Timestamp { get; private set; } public DateTime Timestamp { get; private set; }
public string Url { get; private set; } public string Url { get; private set; }
} }