diff --git a/src/main/java/cc/lik/timefactor/process/TimeFactorProcess.java b/src/main/java/cc/lik/timefactor/process/TimeFactorProcess.java index 5d485f3..5a78873 100644 --- a/src/main/java/cc/lik/timefactor/process/TimeFactorProcess.java +++ b/src/main/java/cc/lik/timefactor/process/TimeFactorProcess.java @@ -276,7 +276,12 @@ private Mono processTagsSeoData(ITemplateContext context, IModel model, */ private Mono processMomentsSeoData(ITemplateContext context, IModel model, SeoOverride override) { - return buildListPageSeoData(context, model, rules -> "/moments", override); + // 瞬间路由在上下文中注入了 title 变量,作为 提取失败时的中间回退 + var contextTitle = Optional.ofNullable(context.getVariable("title")).map(Object::toString) + .filter(s -> !s.isBlank()).orElse(null); + // MomentVo 在上下文中是延迟加载的 Mono 对象,无法直接获取 metadata.name,降级使用站点信息 + return buildListPageSeoData(context, model, rules -> "/moments", override, contextTitle, + null); } /** @@ -288,8 +293,12 @@ private Mono<Void> processMomentsSeoData(ITemplateContext context, IModel model, */ private Mono<Void> processMomentSeoData(ITemplateContext context, IModel model, SeoOverride override) { + // 瞬间路由在上下文中注入了 title 变量,作为 <title> 提取失败时的中间回退 + var contextTitle = Optional.ofNullable(context.getVariable("title")).map(Object::toString) + .filter(s -> !s.isBlank()).orElse(null); // MomentVo 在上下文中是延迟加载的 Mono 对象,无法直接获取 metadata.name,降级使用站点信息 - return buildListPageSeoData(context, model, rules -> "/moments", override); + return buildListPageSeoData(context, model, rules -> "/moments", override, contextTitle, + null); } /** diff --git a/src/main/java/cc/lik/timefactor/service/SettingConfigGetter.java b/src/main/java/cc/lik/timefactor/service/SettingConfigGetter.java index 26f8bac..5b8333b 100644 --- a/src/main/java/cc/lik/timefactor/service/SettingConfigGetter.java +++ b/src/main/java/cc/lik/timefactor/service/SettingConfigGetter.java @@ -1,9 +1,8 @@ package cc.lik.timefactor.service; +import java.util.List; import lombok.Data; import reactor.core.publisher.Mono; -import reactor.core.publisher.Operators; -import java.util.List; public interface SettingConfigGetter { Mono<BasicConfig> getBasicConfig(); diff --git a/src/main/resources/extensions/settings.yaml b/src/main/resources/extensions/settings.yaml index 4af5184..d3aecd4 100644 --- a/src/main/resources/extensions/settings.yaml +++ b/src/main/resources/extensions/settings.yaml @@ -182,11 +182,11 @@ spec: title: 文章归档 - %SITENAME% description: 文章归档 - %SITEDESC% - templateId: moments - title: 瞬间 - %SITENAME% - description: 瞬间 - %SITEDESC% + title: "%TITLE% - %SITENAME%" + description: "%TITLE% - %SITEDESC%" - templateId: moment - title: 瞬间 - %SITENAME% - description: 瞬间 - %SITEDESC% + title: "%TITLE% - %SITENAME%" + description: "%TITLE% - %SITEDESC%" - templateId: photos title: 图库 - %SITENAME% description: 图库 - %SITEDESC% @@ -194,7 +194,7 @@ spec: title: 朋友圈 - %SITENAME% description: 朋友圈 - %SITEDESC% - templateId: douban - title: "%TITLE%" + title: "%TITLE% - %SITENAME%" description: "%TITLE% - %SITEDESC%" - templateId: bangumi title: 番剧 - %SITENAME%