Add blog post preview
This commit is contained in:
parent
a47f18533b
commit
fa143f5ab4
4 changed files with 20 additions and 5 deletions
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
15
Website/ViewModels/BlogPostPreviewViewModel.cs
Normal file
15
Website/ViewModels/BlogPostPreviewViewModel.cs
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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; }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue