feat: 添加内容热重载指令 (#4)
All checks were successful
Build blog docker image / Build-Blog-Image (push) Successful in 1m34s

Reviewed-on: #4
This commit is contained in:
2024-08-23 20:24:32 +08:00
parent e6ed407285
commit 9111affeec
143 changed files with 894 additions and 222 deletions

View File

@@ -1,14 +1,15 @@
using AngleSharp;
using AngleSharp.Dom;
using Microsoft.Extensions.Logging;
using YaeBlog.Core.Abstractions;
using YaeBlog.Core.Models;
using YaeBlog.Core.Services;
namespace YaeBlog.Core.Processors;
public class HeadlinePostRenderProcessor(
IConfiguration angleConfiguration,
TableOfContentService tableOfContentService) : IPostRenderProcessor
IEssayContentService essayContentService,
ILogger<HeadlinePostRenderProcessor> logger) : IPostRenderProcessor
{
public async Task<BlogEssay> ProcessAsync(BlogEssay essay)
{
@@ -62,7 +63,10 @@ public class HeadlinePostRenderProcessor(
FindParentHeadline(topHeadline, level2List).Children.AddRange(level3List);
topHeadline.Children.AddRange(level2List);
tableOfContentService.AddHeadline(essay.FileName, topHeadline);
if (!essayContentService.TryAddHeadline(essay.FileName, topHeadline))
{
logger.LogWarning("Failed to add headline of {}.", essay.FileName);
}
return essay.WithNewHtmlContent(document.DocumentElement.OuterHtml);
}

View File

@@ -3,6 +3,7 @@ using AngleSharp.Dom;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using YaeBlog.Core.Abstractions;
using YaeBlog.Core.Exceptions;
using YaeBlog.Core.Models;
namespace YaeBlog.Core.Processors;
@@ -47,12 +48,12 @@ public class ImagePostRenderProcessor(ILogger<ImagePostRenderProcessor> logger,
filename = Path.Combine(essayFilename, filename);
}
filename = Path.Combine(_options.Root, filename);
filename = Path.Combine(_options.Root, "posts", filename);
if (!Path.Exists(filename))
{
logger.LogError("Failed to found image: {}.", filename);
throw new InvalidOperationException();
throw new BlogFileException($"Image {filename} doesn't exist.");
}
string imageLink = "api/files/" + filename;