From d7bfbef149ba18ebf66b04786a90e57d2e185a1d Mon Sep 17 00:00:00 2001
From: guqing <38999863+guqing@users.noreply.github.com>
Date: Wed, 12 Apr 2023 20:50:31 +0800
Subject: [PATCH] refactor: excerpt as the meta description on the page of post
and single page (#3745)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
#### What type of PR is this?
/kind improvement
/area core
#### What this PR does / why we need it:
将文章摘要作为 meta description 以优化文章页的 SEO
how to test it?
查看文章页和自定义页面的 head 中是否具有 `` 标签
#### Which issue(s) this PR fixes:
Fixes #2682
#### Does this PR introduce a user-facing change?
```release-note
将文章摘要作为 meta description 以优化文章页的 SEO
```
---
.../dialect/ContentTemplateHeadProcessor.java | 45 +++++++++-
.../ContentTemplateHeadProcessorTest.java | 88 +++++++++++++++++++
.../dialect/HaloProcessorDialectTest.java | 1 +
3 files changed, 132 insertions(+), 2 deletions(-)
create mode 100644 application/src/test/java/run/halo/app/theme/dialect/ContentTemplateHeadProcessorTest.java
diff --git a/application/src/main/java/run/halo/app/theme/dialect/ContentTemplateHeadProcessor.java b/application/src/main/java/run/halo/app/theme/dialect/ContentTemplateHeadProcessor.java
index 02af63841..81d776da7 100644
--- a/application/src/main/java/run/halo/app/theme/dialect/ContentTemplateHeadProcessor.java
+++ b/application/src/main/java/run/halo/app/theme/dialect/ContentTemplateHeadProcessor.java
@@ -1,5 +1,10 @@
package run.halo.app.theme.dialect;
+import static org.apache.commons.lang3.ObjectUtils.defaultIfNull;
+import static org.apache.commons.lang3.StringUtils.defaultIfBlank;
+
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.AllArgsConstructor;
@@ -37,10 +42,20 @@ public class ContentTemplateHeadProcessor implements TemplateHeadProcessor {
Mono>> htmlMetasMono = Mono.empty();
if (isPostTemplate(context)) {
htmlMetasMono = nameMono.flatMap(postFinder::getByName)
- .map(post -> post.getSpec().getHtmlMetas());
+ .map(post -> {
+ List