From 4a7b1a2d6b1254bd6a2456542853597e3348e6b7 Mon Sep 17 00:00:00 2001 From: terwer Date: Sun, 6 Aug 2023 22:41:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=88=AB=E5=90=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 10 +- pnpm-lock.yaml | 113 +++++++++++++----- .../api/base/github/CommonGithubApiAdaptor.ts | 96 +++++++++++++++ src/adaptors/index.ts | 38 +++--- src/components/publish/BatchPublishIndex.vue | 4 +- .../singleplatform/github/HexoSetting.vue | 3 - src/composables/usePublish.ts | 24 +++- src/workers/QuickPublish.vue | 6 +- vite.config.ts | 4 - 9 files changed, 233 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index 28dff7cf..318a1296 100644 --- a/package.json +++ b/package.json @@ -62,13 +62,13 @@ "vue-router": "^4.2.4", "xmlbuilder2": "^3.1.1", "zhi-blog-api": "^1.20.11", - "zhi-common": "^1.12.1", + "zhi-common": "^1.13.1", "zhi-device": "^2.3.0", - "zhi-fetch-middleware": "^0.2.12", - "zhi-github-middleware": "^0.1.9", + "zhi-fetch-middleware": "^0.2.14", + "zhi-github-middleware": "^0.1.14", "zhi-lib-base": "^0.4.4", "zhi-notion-markdown": "^0.1.1", - "zhi-siyuan-api": "^2.0.3", - "zhi-xmlrpc-middleware": "^0.4.7" + "zhi-siyuan-api": "^2.0.5", + "zhi-xmlrpc-middleware": "^0.4.9" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39d5f796..815623c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,17 +54,17 @@ dependencies: specifier: ^1.20.11 version: 1.20.11 zhi-common: - specifier: ^1.12.1 - version: 1.12.1 + specifier: ^1.13.1 + version: 1.13.1 zhi-device: specifier: ^2.3.0 version: 2.3.0 zhi-fetch-middleware: - specifier: ^0.2.12 - version: 0.2.12 + specifier: ^0.2.14 + version: 0.2.14 zhi-github-middleware: - specifier: ^0.1.9 - version: 0.1.9 + specifier: ^0.1.14 + version: 0.1.14 zhi-lib-base: specifier: ^0.4.4 version: 0.4.4 @@ -72,11 +72,11 @@ dependencies: specifier: ^0.1.1 version: 0.1.1 zhi-siyuan-api: - specifier: ^2.0.3 - version: 2.0.3 + specifier: ^2.0.5 + version: 2.0.5 zhi-xmlrpc-middleware: - specifier: ^0.4.7 - version: 0.4.7 + specifier: ^0.4.9 + version: 0.4.9 devDependencies: '@intlify/vite-plugin-vue-i18n': @@ -2006,7 +2006,6 @@ packages: /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} @@ -2018,7 +2017,6 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: true /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} @@ -2432,6 +2430,15 @@ packages: source-map: 0.6.1 dev: true + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + /code-block-writer@10.1.1: resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} dev: true @@ -2451,11 +2458,9 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} @@ -2860,7 +2865,6 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -3423,6 +3427,11 @@ packages: '@esbuild/win32-x64': 0.18.18 dev: true + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: false @@ -3885,6 +3894,11 @@ packages: loader-utils: 3.2.1 dev: true + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + /get-func-name@2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true @@ -4212,7 +4226,6 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true /is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} @@ -5562,6 +5575,11 @@ packages: engines: {node: '>=0.10'} dev: false + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false + /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} @@ -5843,7 +5861,6 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -5865,7 +5882,6 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - dev: true /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} @@ -6078,6 +6094,14 @@ packages: punycode: 2.3.0 dev: true + /transliteration@2.3.5: + resolution: {integrity: sha512-HAGI4Lq4Q9dZ3Utu2phaWgtm3vB6PkLUFqWAScg/UW+1eZ/Tg6Exo4oC0/3VUol/w4BlefLhUUSVBr/9/ZGQOw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + yargs: 17.7.2 + dev: false + /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -6747,7 +6771,6 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} @@ -6794,6 +6817,11 @@ packages: engines: {node: '>=0.4'} dev: true + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true @@ -6811,6 +6839,24 @@ packages: engines: {node: '>= 6'} dev: true + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: false + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: false + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -6832,10 +6878,11 @@ packages: zhi-lib-base: 0.4.4 dev: false - /zhi-common@1.12.1: - resolution: {integrity: sha512-9PjWI6Wqk/X/WnZSqgMC1GY5fZx8U1gwpo8K5JDSZZaT5uii8uG/YNGU/tC9MHwj9zj828L+mYjDTaluk1PETQ==} + /zhi-common@1.13.1: + resolution: {integrity: sha512-70RsXqyd3z0U6sWwyTKd2/eJL70KT45qmZD4LIML8Xn5rE6L02d9yaSC4YHB21P9Ws3j1d2NfcqX804axTT3SQ==} dependencies: js-yaml: 4.1.0 + transliteration: 2.3.5 zhi-lib-base: 0.4.4 dev: false @@ -6843,20 +6890,20 @@ packages: resolution: {integrity: sha512-we04mMt4BEqeKDxoqdJQsDFYImYlcp/yaAIkpxpMGg+9tBURfNeHPHIHkFias9VbM8yuk6xjAX6B2xJjvYE/iw==} dev: false - /zhi-fetch-middleware@0.2.12: - resolution: {integrity: sha512-j8bZ+sXhHkZR+906Nb/l+3V29aR//NjKYeCG1cCqf2jEiKGbJJGx7cB/LkLunODBoKpg5etcEX3GGNg48VOBWA==} + /zhi-fetch-middleware@0.2.14: + resolution: {integrity: sha512-KqQSId72RYn+M8ft4cG0QQHOf11gI8+hnteBdZ1TxrBHNHOG3pIHswJBr5u1Y7uWHBN5tYNj05TfXycpJ2dBIA==} dependencies: - zhi-common: 1.12.1 + zhi-common: 1.13.1 zhi-device: 2.3.0 zhi-lib-base: 0.4.4 dev: false - /zhi-github-middleware@0.1.9: - resolution: {integrity: sha512-69I6wGIdZf1HubHMGFYf6kP6wyxvbG5xxyR1LSbNPGM4D6oQZSWJgNt+KWPJT7sosGQH8WSC1tO7+7Apm9H0Fw==} + /zhi-github-middleware@0.1.14: + resolution: {integrity: sha512-jLAwXviXNJ/KQ4Lz7eiNZMHNnyzXELDGp0fnm+ORlN+tnyy9Nn6VSgtq0h6q7DVnT6PXGrCnb4vXVXFBWdYvvA==} dependencies: '@octokit/core': 5.0.0 js-base64: 3.7.5 - zhi-common: 1.12.1 + zhi-common: 1.13.1 zhi-lib-base: 0.4.4 dev: false @@ -6874,18 +6921,18 @@ packages: - supports-color dev: false - /zhi-siyuan-api@2.0.3: - resolution: {integrity: sha512-l7hEC1B9lfETgXNh+4W1ZFPch9jrXWmGOQv5bH1jO8CHXxOhqt2yjILr+5z/R9LiKSlgQguP06aBP3nbs+m0aQ==} + /zhi-siyuan-api@2.0.5: + resolution: {integrity: sha512-VrFmDeM87Eexyi06pvZgagjU+Ut8OwMb4yXvxyoFp67Ejijk3UZStMRrs+1v/uOxf3lQjC9yuWRzM9ar00EBFg==} dependencies: zhi-blog-api: 1.20.11 - zhi-common: 1.12.1 + zhi-common: 1.13.1 zhi-lib-base: 0.4.4 dev: false - /zhi-xmlrpc-middleware@0.4.7: - resolution: {integrity: sha512-4JkOdu75cUzs3Urz1faHyhU2DQs9X2+DQpvAt2Ayr9Ax4+bZdg35rm4JB5gm+aqYv/k4cd8B+SjSa/mOAR5how==} + /zhi-xmlrpc-middleware@0.4.9: + resolution: {integrity: sha512-lYUUWOsg59huDb6TZyp59vt76m55rUS6vb53ffClaknLPo3p9l4WVO+zpiQTf+CNJern622sWov44n2c4rcixA==} dependencies: - zhi-common: 1.12.1 + zhi-common: 1.13.1 zhi-device: 2.3.0 zhi-lib-base: 0.4.4 dev: false diff --git a/src/adaptors/api/base/github/CommonGithubApiAdaptor.ts b/src/adaptors/api/base/github/CommonGithubApiAdaptor.ts index fd2fe057..b7d9788b 100644 --- a/src/adaptors/api/base/github/CommonGithubApiAdaptor.ts +++ b/src/adaptors/api/base/github/CommonGithubApiAdaptor.ts @@ -24,6 +24,12 @@ */ import { BaseBlogApi } from "~/src/adaptors/api/base/baseBlogApi.ts" +import { createAppLogger } from "~/src/utils/appLogger.ts" +import { CategoryInfo, Post, UserBlog } from "zhi-blog-api" +import { CommonGithubClient, GithubConfig } from "zhi-github-middleware" +import { CommonGithubConfig } from "~/src/adaptors/api/base/github/CommonGithubConfig.ts" +import { StrUtil } from "zhi-common" +import { toRaw } from "vue" /** * Github API 适配器 @@ -33,7 +39,97 @@ import { BaseBlogApi } from "~/src/adaptors/api/base/baseBlogApi.ts" * @since 0.9.0 */ class CommonGithubApiAdaptor extends BaseBlogApi { + private githubClient: CommonGithubClient + constructor(appInstance: any, cfg: CommonGithubConfig) { + super(appInstance, cfg) + this.logger = createAppLogger("common-github-api-adaptor") + + const githubConfig = new GithubConfig(cfg.username, cfg.githubRepo, cfg.password) + githubConfig.defaultBranch = cfg.githubBranch + githubConfig.defaultPath = cfg.defaultPath + githubConfig.defaultMsg = cfg.defaultMsg + githubConfig.author = cfg.author + githubConfig.email = cfg.email + githubConfig.previewMdUrl = cfg.previewUrl + githubConfig.previewUrl = cfg.previewPostUrl + githubConfig.baseUrl = cfg.home + githubConfig.mdFilenameRule = cfg.mdFilenameRule + + this.githubClient = new CommonGithubClient(githubConfig) + } + + public async getUsersBlogs(): Promise { + const result: UserBlog[] = [] + + const nodes = await this.githubClient.getGithubPageTreeNode("") + this.logger.debug("getGithubPageTreeNode =>", nodes) + + // 数据适配 + if (nodes && nodes.length > 0) { + const userblog: UserBlog = new UserBlog() + const cfg = this.cfg as CommonGithubConfig + userblog.blogid = cfg.defaultPath + userblog.blogName = cfg.defaultPath + userblog.url = StrUtil.pathJoin(StrUtil.pathJoin(cfg.home, cfg.username), cfg.githubRepo) + result.push(userblog) + } + this.logger.debug("result result =>", result) + + return result + } + + public async newPost(post: Post, publish?: boolean): Promise { + this.logger.debug("start newPost =>", { post: toRaw(post) }) + throw new Error("newPost 开发中...") + // const docPath = `${post.wp_slug}` + // const res = await this.githubClient.publishGithubPage(docPath, post.description) + // + // if (!res?.content?.path) { + // throw new Error("Github 调用API异常") + // } + // return res.content.path + } + + async editPost(postid: string, post: Post, publish?: boolean): Promise { + const res = await this.githubClient.updateGithubPage(post.postid, post.description) + if (!res?.content?.path) { + throw new Error("Hugo调用API异常") + } + return true + } + + public async deletePost(postid: string): Promise { + const res = await this.githubClient.deleteGithubPage(postid) + if (!res?.commit?.sha) { + throw new Error("Hugo调用API异常") + } + return true + } + + public async getCategories(): Promise { + return await Promise.resolve([]) + } + + public async getPreviewUrl(postid: string): Promise { + let previewUrl: string = "/test" + // const newPostid = postid.substring(postid.lastIndexOf("/") + 1).replace(".md", "") + // previewUrl = this.cfg.previewUrl.replace("[postid]", newPostid) + // // 路径组合 + // previewUrl = StrUtil.pathJoin(StrUtil.pathJoin(this.cfg.home, this.cfg.username), previewUrl) + // + return previewUrl + } + + public async getPostPreviewUrl(postid: string): Promise { + let previewUrl: string + const newPostid = postid.substring(postid.lastIndexOf("/") + 1).replace(".md", "") + previewUrl = this.cfg.previewUrl.replace("[postid]", newPostid) + // 路径组合 + previewUrl = StrUtil.pathJoin(StrUtil.pathJoin(this.cfg.home, this.cfg.username), previewUrl) + + return previewUrl + } } export { CommonGithubApiAdaptor } diff --git a/src/adaptors/index.ts b/src/adaptors/index.ts index 501fd610..f519879f 100644 --- a/src/adaptors/index.ts +++ b/src/adaptors/index.ts @@ -23,22 +23,23 @@ * questions. */ -import {BlogAdaptor, WebAdaptor} from "zhi-blog-api" -import {getSubPlatformTypeByKey, SubPlatformType} from "~/src/platforms/dynamicConfig.ts" -import {useCnblogsApi} from "~/src/adaptors/api/cnblogs/useCnblogsApi.ts" -import {createAppLogger} from "~/src/utils/appLogger.ts" -import {useWordpressApi} from "~/src/adaptors/api/wordpress/useWordpressApi.ts" -import {useTypechoApi} from "~/src/adaptors/api/typecho/useTypechoApi.ts" -import {useYuqueApi} from "~/src/adaptors/api/yuque/useYuqueApi.ts" -import {useZhihuWeb} from "~/src/adaptors/web/zhihu/useZhihuWeb.ts" -import {useCsdnWeb} from "~/src/adaptors/web/csdn/useCsdnWeb.ts" -import {useJianshuWeb} from "~/src/adaptors/web/jianshu/useJianshuWeb.ts" -import {useJuejinWeb} from "~/src/adaptors/web/juejin/useJuejinWeb.ts" -import {useWechatWeb} from "~/src/adaptors/web/wechat/useWechatWeb.ts" -import {useSiyuanApi} from "~/src/composables/useSiyuanApi.ts" -import {useMetaweblogApi} from "~/src/adaptors/api/metaweblog/useMetaweblogApi.ts" -import {useNotionApi} from "~/src/adaptors/api/notion/useNotionApi.ts" -import {YamlConvertAdaptor} from "~/src/platforms/yamlConvertAdaptor.ts" +import { BlogAdaptor, WebAdaptor } from "zhi-blog-api" +import { getSubPlatformTypeByKey, SubPlatformType } from "~/src/platforms/dynamicConfig.ts" +import { useCnblogsApi } from "~/src/adaptors/api/cnblogs/useCnblogsApi.ts" +import { createAppLogger } from "~/src/utils/appLogger.ts" +import { useWordpressApi } from "~/src/adaptors/api/wordpress/useWordpressApi.ts" +import { useTypechoApi } from "~/src/adaptors/api/typecho/useTypechoApi.ts" +import { useYuqueApi } from "~/src/adaptors/api/yuque/useYuqueApi.ts" +import { useZhihuWeb } from "~/src/adaptors/web/zhihu/useZhihuWeb.ts" +import { useCsdnWeb } from "~/src/adaptors/web/csdn/useCsdnWeb.ts" +import { useJianshuWeb } from "~/src/adaptors/web/jianshu/useJianshuWeb.ts" +import { useJuejinWeb } from "~/src/adaptors/web/juejin/useJuejinWeb.ts" +import { useWechatWeb } from "~/src/adaptors/web/wechat/useWechatWeb.ts" +import { useSiyuanApi } from "~/src/composables/useSiyuanApi.ts" +import { useMetaweblogApi } from "~/src/adaptors/api/metaweblog/useMetaweblogApi.ts" +import { useNotionApi } from "~/src/adaptors/api/notion/useNotionApi.ts" +import { YamlConvertAdaptor } from "~/src/platforms/yamlConvertAdaptor.ts" +import { useHexoApi } from "~/src/adaptors/api/hexo/useHexoApi.ts" /** * 适配器统一入口 @@ -70,6 +71,11 @@ class Adaptors { blogAdaptor = blogApi break } + case SubPlatformType.Github_Hexo: { + const { blogApi } = await useHexoApi(key, newCfg) + blogAdaptor = blogApi + break + } case SubPlatformType.Metaweblog_Metaweblog: { const { blogApi } = await useMetaweblogApi(key, newCfg) blogAdaptor = blogApi diff --git a/src/components/publish/BatchPublishIndex.vue b/src/components/publish/BatchPublishIndex.vue index 8633385f..a3862bca 100644 --- a/src/components/publish/BatchPublishIndex.vue +++ b/src/components/publish/BatchPublishIndex.vue @@ -50,7 +50,7 @@ const props = defineProps({ // uses const { t } = useVueI18n() -const { doSinglePublish, doSingleDelete } = usePublish() +const { doSinglePublish, doSingleDelete,assignSlug } = usePublish() const { blogApi } = useSiyuanApi() // datas @@ -174,6 +174,8 @@ onMounted(async () => { logger.info("获取到的ID为=>", props.id) // 思源笔记原始文章数据 formData.siyuanPost = await blogApi.getPost(props.id) + // 初始化别名 + formData.siyuanPost = await assignSlug(formData.siyuanPost, props.id) }) diff --git a/src/components/set/publish/singleplatform/github/HexoSetting.vue b/src/components/set/publish/singleplatform/github/HexoSetting.vue index c1f4850b..b66dff8f 100644 --- a/src/components/set/publish/singleplatform/github/HexoSetting.vue +++ b/src/components/set/publish/singleplatform/github/HexoSetting.vue @@ -28,7 +28,6 @@ import { useVueI18n } from "~/src/composables/useVueI18n.ts" import { useHexoApi } from "~/src/adaptors/api/hexo/useHexoApi.ts" import { HexoConfig } from "~/src/adaptors/api/hexo/hexoConfig.ts" import { HexoPlaceHolder } from "~/src/adaptors/api/hexo/hexoPlaceHolder.ts" -import { StrUtil } from "zhi-common" const props = defineProps({ apiType: { @@ -49,8 +48,6 @@ hexoPlaceholder.previewUrlPlaceholder = t("setting.blog.previewMdUrl.tip") hexoCfg.placeholder = hexoPlaceholder hexoCfg.usernameEnabled = true hexoCfg.showTokenTip = true -// hexoCfg.knowledgeSpaceTitle = "知识库" -// hexoCfg.enableKnowledgeSpace = true