From 2384e72817b05058601351ed263c49b956a830cc Mon Sep 17 00:00:00 2001 From: terwer Date: Tue, 5 Sep 2023 19:06:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BE=AE=E4=BF=A1=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E6=94=AF=E6=8C=81=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/gitlab-hexo/gitlabHexoApiAdaptor.ts | 3 ++ src/adaptors/web/wechat/wechatWebAdaptor.ts | 32 ++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/adaptors/api/gitlab-hexo/gitlabHexoApiAdaptor.ts b/src/adaptors/api/gitlab-hexo/gitlabHexoApiAdaptor.ts index d199fa86..7de12fa3 100644 --- a/src/adaptors/api/gitlab-hexo/gitlabHexoApiAdaptor.ts +++ b/src/adaptors/api/gitlab-hexo/gitlabHexoApiAdaptor.ts @@ -54,8 +54,10 @@ class GitlabHexoApiAdaptor extends CommonGitlabApiAdaptor { this.logger.info("准备处理 Gitlabhexo 正文") this.logger.debug("md =>", { md: md }) let updatedMd = md + // MD暂时无法处理标记,先搁置 // 处理MD + updatedPost.markdown = updatedMd this.logger.info("Gitlabhexo 正文处理完毕") this.logger.debug("updatedMd =>", { updatedMd: updatedMd }) @@ -66,6 +68,7 @@ class GitlabHexoApiAdaptor extends CommonGitlabApiAdaptor { } else { post.description = post.html } + return updatedPost } } diff --git a/src/adaptors/web/wechat/wechatWebAdaptor.ts b/src/adaptors/web/wechat/wechatWebAdaptor.ts index 94793bd9..7b0ca027 100644 --- a/src/adaptors/web/wechat/wechatWebAdaptor.ts +++ b/src/adaptors/web/wechat/wechatWebAdaptor.ts @@ -26,9 +26,10 @@ import { BaseWebApi } from "~/src/adaptors/web/base/baseWebApi.ts" import * as cheerio from "cheerio" import { HtmlUtil, JsonUtil, ObjectUtil, StrUtil } from "zhi-common" -import { Post, UserBlog } from "zhi-blog-api" +import { BlogConfig, PageTypeEnum, Post, UserBlog } from "zhi-blog-api" import { toRaw } from "vue" import { isDev } from "~/src/utils/constants.ts" +import _ from "lodash" /** * 微信公众号网页授权适配器 @@ -480,6 +481,35 @@ class WechatWebAdaptor extends BaseWebApi { return {} } + + public override async preEditPost(post: Post, id?: string, publishCfg?: any): Promise { + // 公共的属性预处理 + const doc = await super.preEditPost(post, id, publishCfg) + + // 微信公众号自定义的处理 + const cfg: BlogConfig = publishCfg?.cfg + const updatedPost = _.cloneDeep(doc) as Post + this.logger.info("准备处理微信公众号正文") + + let updatedHtml = post.html + + // 修复图片格式 + // + + updatedPost.markdown = updatedHtml + this.logger.info("微信公众号正文处理完毕") + + // 发布格式 + if (cfg?.pageType == PageTypeEnum.Markdown) { + post.description = post.markdown + } else { + post.description = post.html + } + + return updatedPost + } } export { WechatWebAdaptor }