diff --git a/Website/Controllers/BlogController.cs b/Website/Controllers/BlogController.cs index 610e73c..f0f76d9 100644 --- a/Website/Controllers/BlogController.cs +++ b/Website/Controllers/BlogController.cs @@ -22,7 +22,7 @@ namespace Website.Controllers public async Task Page(int page) { 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 model = new BlogViewModel(posts, page, maxPages); return View(model); diff --git a/Website/Controllers/HomeController.cs b/Website/Controllers/HomeController.cs index 226d0fd..23f31a7 100644 --- a/Website/Controllers/HomeController.cs +++ b/Website/Controllers/HomeController.cs @@ -18,7 +18,7 @@ namespace Website.Controllers public async Task Index() { var post = await _blogRepo.GetLatestPostAsync(); - var model = new BlogPostViewModel(post); + var model = new BlogPostPreviewViewModel(post); return View(model); } } diff --git a/Website/ViewModels/BlogPostPreviewViewModel.cs b/Website/ViewModels/BlogPostPreviewViewModel.cs new file mode 100644 index 0000000..00ff2a1 --- /dev/null +++ b/Website/ViewModels/BlogPostPreviewViewModel.cs @@ -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(); + } + } +} \ No newline at end of file diff --git a/Website/ViewModels/BlogPostViewModel.cs b/Website/ViewModels/BlogPostViewModel.cs index 814de59..8fccca2 100644 --- a/Website/ViewModels/BlogPostViewModel.cs +++ b/Website/ViewModels/BlogPostViewModel.cs @@ -16,15 +16,15 @@ namespace Website.ViewModels Content = Markdown.ToHtml(blogPost.Content, GetPipeline()).Trim(); } - private MarkdownPipeline GetPipeline()=>new MarkdownPipelineBuilder() + protected MarkdownPipeline GetPipeline()=>new MarkdownPipelineBuilder() //.UseAdvancedExtensions() .UseAutoLinks() .UseSoftlineBreakAsHardlineBreak() .UseSyntaxHighlighting() .Build(); - public string Title { get; private set; } - public string Content { get; private set; } + public string Title { get; private set; } + public string Content { get; protected set; } public DateTime Timestamp { get; private set; } public string Url { get; private set; } }