diff --git a/esbuild.config.cjs b/esbuild.config.cjs index 515cda5c..b72b78dd 100644 --- a/esbuild.config.cjs +++ b/esbuild.config.cjs @@ -35,9 +35,9 @@ const isWindows = os.platform() === "win32" let baseDir if (isWatch || isServe) { - baseDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/test/data/plugins/siyuan-plugin-publisher" + // baseDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/test/data/plugins/siyuan-plugin-publisher" // baseDir = "/Users/zhangyue/Documents/terwer/SiyuanWorkspace/test/data/plugins/siyuan-plugin-publisher" - // baseDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/public/data/plugins/siyuan-plugin-publisher" + baseDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/public/data/plugins/siyuan-plugin-publisher" if (isWindows) { baseDir = "C:\\Users\\terwer\\Documents\\mydocs\\SiyuanWorkspace\\test\\data\\plugins\\siyuan-plugin-publisher" } diff --git a/package.json b/package.json index 109845d7..218d6fbf 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "vite-plugin-html": "^3.2.0", "vite-plugin-node-polyfills": "^0.15.0", "vitest": "^0.34.6", - "vue-tsc": "^1.8.18" + "vue-tsc": "^1.8.19" }, "dependencies": { "@element-plus/icons-vue": "^2.1.0", @@ -75,7 +75,7 @@ "vue-i18n": "^9.5.0", "vue-router": "^4.2.5", "xmlbuilder2": "^3.1.1", - "zhi-blog-api": "^1.45.0", + "zhi-blog-api": "^1.46.0", "zhi-common": "^1.24.0", "zhi-device": "^2.3.1", "zhi-fetch-middleware": "^0.6.5", @@ -83,7 +83,7 @@ "zhi-gitlab-middleware": "^0.6.5", "zhi-lib-base": "^0.5.0", "zhi-notion-markdown": "^0.1.4", - "zhi-siyuan-api": "^2.10.5", + "zhi-siyuan-api": "^2.11.0", "zhi-xmlrpc-middleware": "^0.5.12" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 88be9fa7..76267aa1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,8 +75,8 @@ dependencies: specifier: ^3.1.1 version: 3.1.1 zhi-blog-api: - specifier: ^1.45.0 - version: 1.45.0 + specifier: ^1.46.0 + version: 1.46.0 zhi-common: specifier: ^1.24.0 version: 1.24.0 @@ -99,8 +99,8 @@ dependencies: specifier: ^0.1.4 version: 0.1.4 zhi-siyuan-api: - specifier: ^2.10.5 - version: 2.10.5 + specifier: ^2.11.0 + version: 2.11.0 zhi-xmlrpc-middleware: specifier: ^0.5.12 version: 0.5.12 @@ -173,8 +173,8 @@ devDependencies: specifier: ^0.34.6 version: 0.34.6(jsdom@22.1.0)(stylus@0.59.0) vue-tsc: - specifier: ^1.8.18 - version: 1.8.18(typescript@5.2.2) + specifier: ^1.8.19 + version: 1.8.19(typescript@5.2.2) packages: @@ -951,7 +951,7 @@ packages: dependencies: '@octokit/auth-token': 4.0.0 '@octokit/graphql': 7.0.2 - '@octokit/request': 8.1.3 + '@octokit/request': 8.1.4 '@octokit/request-error': 5.0.1 '@octokit/types': 12.0.0 before-after-hook: 2.2.3 @@ -971,7 +971,7 @@ packages: resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} engines: {node: '>= 18'} dependencies: - '@octokit/request': 8.1.3 + '@octokit/request': 8.1.4 '@octokit/types': 12.0.0 universal-user-agent: 6.0.0 dev: false @@ -989,8 +989,8 @@ packages: once: 1.4.0 dev: false - /@octokit/request@8.1.3: - resolution: {integrity: sha512-iUvXP4QmysS8kyE/a4AGwR0A+tHDVxgW6TmPd2ci8/Xc8KjlBtTKSDpZlUT5Y4S4Nu+eM8LvbOYjVAp/sz3Gpg==} + /@octokit/request@8.1.4: + resolution: {integrity: sha512-M0aaFfpGPEKrg7XoA/gwgRvc9MSXHRO2Ioki1qrPDbl1e9YhjIwVoHE7HIKmv/m3idzldj//xBujcFNqGX6ENA==} engines: {node: '>= 18'} dependencies: '@octokit/endpoint': 9.0.1 @@ -1217,11 +1217,11 @@ packages: /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.6 + '@types/chai': 4.3.7 dev: true - /@types/chai@4.3.6: - resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} + /@types/chai@4.3.7: + resolution: {integrity: sha512-/k+vesl92vMvMygmQrFe9Aimxi6oQXFUX9mA5HanTrKUSAMoLauSi6PNFOdRw0oeqilaW600GNx2vSaT2f8aIQ==} dev: true /@types/crypto-js@4.1.2: @@ -1285,7 +1285,7 @@ packages: resolution: {integrity: sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==} deprecated: This is a stub types definition. sass provides its own type definitions, so you do not need this installed. dependencies: - sass: 1.69.0 + sass: 1.69.2 /@types/semver@7.5.3: resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} @@ -1795,22 +1795,22 @@ packages: pretty-format: 29.7.0 dev: true - /@volar/language-core@1.10.3: - resolution: {integrity: sha512-7Qgwu9bWUHN+cLrOkCbIVBkL+RVPREhvY07wY89dGxi4mY9mQCsUVRRp64F61lX7Nc27meMnvy0sWlzY0x6oQQ==} + /@volar/language-core@1.10.4: + resolution: {integrity: sha512-Na69qA6uwVIdA0rHuOc2W3pHtVQQO8hCNim7FOaKNpRJh0oAFnu5r9i7Oopo5C4cnELZkPNjTrbmpcCTiW+CMQ==} dependencies: - '@volar/source-map': 1.10.3 + '@volar/source-map': 1.10.4 dev: true - /@volar/source-map@1.10.3: - resolution: {integrity: sha512-QE9nwK3xsdBQGongHnC9SCR0itx7xUKQFsUDn5HbZY3pHpyXxdY1hSBG0eh9mE+aTKoM4KlqMvrb+19Tv9vS1Q==} + /@volar/source-map@1.10.4: + resolution: {integrity: sha512-RxZdUEL+pV8p+SMqnhVjzy5zpb1QRZTlcwSk4bdcBO7yOu4rtEWqDGahVCEj4CcXour+0yJUMrMczfSCpP9Uxg==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript@1.10.3: - resolution: {integrity: sha512-n0ar6xGYpRoSvgGMetm/JXP0QAXx+NOUvxCaWCfCjiFivQRSLJeydYDijhoGBUl5KSKosqq9In5L3e/m2TqTcQ==} + /@volar/typescript@1.10.4: + resolution: {integrity: sha512-BCCUEBASBEMCrz7qmNSi2hBEWYsXD0doaktRKpmmhvb6XntM2sAWYu6gbyK/MluLDgluGLFiFRpWgobgzUqolg==} dependencies: - '@volar/language-core': 1.10.3 + '@volar/language-core': 1.10.4 dev: true /@vue/compiler-core@3.3.4: @@ -1847,20 +1847,20 @@ packages: '@vue/compiler-dom': 3.3.4 '@vue/shared': 3.3.4 - /@vue/devtools-api@6.5.0: - resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + /@vue/devtools-api@6.5.1: + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: false - /@vue/language-core@1.8.18(typescript@5.2.2): - resolution: {integrity: sha512-byTi+mwSL7XnVRtfWE3MJy3HQryoVSQ3lymauXviegn3G1wwwlSOUljzQe3w5PyesOnBEIxYoavfKzMJnExrBA==} + /@vue/language-core@1.8.19(typescript@5.2.2): + resolution: {integrity: sha512-nt3dodGs97UM6fnxeQBazO50yYCKBK53waFWB3qMbLmR6eL3aUryZgQtZoBe1pye17Wl8fs9HysV3si6xMgndQ==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.10.3 - '@volar/source-map': 1.10.3 + '@volar/language-core': 1.10.4 + '@volar/source-map': 1.10.4 '@vue/compiler-dom': 3.3.4 '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 @@ -1923,11 +1923,11 @@ packages: vue-component-type-helpers: 1.8.4 dev: true - /@vue/typescript@1.8.18(typescript@5.2.2): - resolution: {integrity: sha512-3M+lu+DUwJW0fNwd/rLE0FenmELxcC6zxgm/YZ25jSTi+uNGj9L5XvXvf20guC69gQvZ+cg49tTxbepfFVuNNQ==} + /@vue/typescript@1.8.19(typescript@5.2.2): + resolution: {integrity: sha512-k/SHeeQROUgqsxyHQ8Cs3Zz5TnX57p7BcBDVYR2E0c61QL2DJ2G8CsaBremmNGuGE6o1R5D50IHIxFmroMz8iw==} dependencies: - '@volar/typescript': 1.10.3 - '@vue/language-core': 1.8.18(typescript@5.2.2) + '@volar/typescript': 1.10.4 + '@vue/language-core': 1.8.19(typescript@5.2.2) transitivePeerDependencies: - typescript dev: true @@ -2318,7 +2318,7 @@ packages: /browser-resolve@2.0.0: resolution: {integrity: sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==} dependencies: - resolve: 1.22.6 + resolve: 1.22.8 dev: true /browserify-aes@1.2.0: @@ -6029,7 +6029,7 @@ packages: typescript: optional: true dependencies: - '@vue/devtools-api': 6.5.0 + '@vue/devtools-api': 6.5.1 typescript: 5.2.2 vue: 3.3.4 vue-demi: 0.14.6(vue@3.3.4) @@ -6401,8 +6401,8 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - /resolve@1.22.6: - resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: is-core-module: 2.13.0 @@ -6485,8 +6485,8 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass@1.69.0: - resolution: {integrity: sha512-l3bbFpfTOGgQZCLU/gvm1lbsQ5mC/WnLz3djL2v4WCJBDrWm58PO+jgngcGRNnKUh6wSsdm50YaovTqskZ0xDQ==} + /sass@1.69.2: + resolution: {integrity: sha512-48lDtG/9OuSQZ9oNmJMUXI2QdCakAWrAGjpX/Fy6j4Og8dEAyE598x5GqCqnHkwV7+I5w8DJpqjm581q5HNh3w==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -6629,7 +6629,7 @@ packages: zhi-device: 2.3.1 zhi-fetch-middleware: 0.2.29 zhi-lib-base: 0.4.4 - zhi-siyuan-api: 2.10.5 + zhi-siyuan-api: 2.11.0 transitivePeerDependencies: - '@vue/composition-api' - typescript @@ -7346,7 +7346,7 @@ packages: local-pkg: 0.4.3 magic-string: 0.30.4 minimatch: 9.0.3 - resolve: 1.22.6 + resolve: 1.22.8 unplugin: 1.5.0 vue: 3.3.4 transitivePeerDependencies: @@ -7595,7 +7595,7 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.6 + '@types/chai': 4.3.7 '@types/chai-subset': 1.3.3 '@types/node': 18.18.4 '@vitest/expect': 0.34.6 @@ -7678,7 +7678,7 @@ packages: dependencies: '@intlify/core-base': 9.5.0 '@intlify/shared': 9.5.0 - '@vue/devtools-api': 6.5.0 + '@vue/devtools-api': 6.5.1 vue: 3.3.4 dev: false @@ -7687,7 +7687,7 @@ packages: peerDependencies: vue: ^3.2.0 dependencies: - '@vue/devtools-api': 6.5.0 + '@vue/devtools-api': 6.5.1 vue: 3.3.4 dev: false @@ -7698,14 +7698,14 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.18(typescript@5.2.2): - resolution: {integrity: sha512-AwQxBB9SZX308TLL1932P1JByuMsXC2jLfRBGt8SBdm1e3cXkDlFaXUAqibfKnoQ1ZC2zO2NSbeBNdSjOcdvJw==} + /vue-tsc@1.8.19(typescript@5.2.2): + resolution: {integrity: sha512-tacMQLQ0CXAfbhRycCL5sWIy1qujXaIEtP1hIQpzHWOUuICbtTj9gJyFf91PvzG5KCNIkA5Eg7k2Fmgt28l5DQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.18(typescript@5.2.2) - '@vue/typescript': 1.8.18(typescript@5.2.2) + '@vue/language-core': 1.8.19(typescript@5.2.2) + '@vue/typescript': 1.8.19(typescript@5.2.2) semver: 7.5.4 typescript: 5.2.2 dev: true @@ -7975,8 +7975,8 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - /zhi-blog-api@1.45.0: - resolution: {integrity: sha512-NCUS/vfUHT+3wtA3gJDkSbUHVX9nKCpRoc+UJI/w6nIutTLNnKTF8MJm1AeJc6+g3AJw3R0abTl+XS5H6MgxqQ==} + /zhi-blog-api@1.46.0: + resolution: {integrity: sha512-KM+ZjcH4/xMvGWtcel+y8dbpgPv6rqFst0QPUaGpt6QxX/gGhRMvwMISzVcr/j1lphyymdPMrVN1odL9/y6a5w==} dependencies: zhi-common: 1.24.0 zhi-lib-base: 0.5.0 @@ -8056,10 +8056,10 @@ packages: - supports-color dev: false - /zhi-siyuan-api@2.10.5: - resolution: {integrity: sha512-hNggum06YZIHd9+GnWNSEAdoSDeiVOCSKhuQe7tYNFd9fnvKZNkkWAUiHOH88XRRT5aSIB6VKP9PqC6D1PPqrw==} + /zhi-siyuan-api@2.11.0: + resolution: {integrity: sha512-rVWtYST9ELaFJPRKepDBfQel4H4Opcu0dnN89DoYBuwE2cyDZf9kMOyIlYa/tpwKO78eNboAcn2Z0eXVs4SVzA==} dependencies: - zhi-blog-api: 1.45.0 + zhi-blog-api: 1.46.0 zhi-common: 1.24.0 zhi-lib-base: 0.5.0 dev: false diff --git a/src/adaptors/api/base/github/commonGithubApiAdaptor.ts b/src/adaptors/api/base/github/commonGithubApiAdaptor.ts index a0739593..f4ba911f 100644 --- a/src/adaptors/api/base/github/commonGithubApiAdaptor.ts +++ b/src/adaptors/api/base/github/commonGithubApiAdaptor.ts @@ -208,48 +208,49 @@ class CommonGithubApiAdaptor extends BaseBlogApi { // ================ // private methods // ================ - private processFilename(post: Post, cfg: CommonGitlabConfig) { - // 处理文件规则 - const created = DateUtil.formatIsoToZhDate(post.dateCreated.toISOString(), true) - const datearr = created.split(" ")[0] - const numarr = datearr.split("-") - const y = numarr[0] - const m = numarr[1] - const d = numarr[2] - this.logger.debug("created numarr=>", numarr) - let filename = cfg.mdFilenameRule.replace(/\.md/g, "") - if (cfg.useMdFilename) { - // 使用真实文件名作为MD文件名 - filename = filename.replace(/\[filename\]/g, post.title) - } else { - // 使用别名作为MD文件名 - filename = filename.replace(/\[slug\]/g, post.wp_slug) - } - // 年月日 - filename = filename - .replace(/\[yyyy\]/g, y) - .replace(/\[MM\]/g, m) - .replace(/\[mm\]/g, m) - .replace(/\[dd\]/g, d) - - return filename - } - - private processPathCategory(savePath: string, cfg: CommonGitlabConfig) { - let categories = [] - if (cfg.usePathCategory) { - this.logger.debug("savePath=>", savePath) - const docPathArray = savePath.split("/") - if (docPathArray.length > 1) { - for (let i = 1; i < docPathArray.length - 1; i++) { - const docCate = HtmlUtil.removeTitleNumber(docPathArray[i]) - categories.push(docCate) - } - } - } - - return categories - } + // 在 baseExtendApi 里面处理了 + // private processFilename(post: Post, cfg: CommonGitlabConfig) { + // // 处理文件规则 + // const created = DateUtil.formatIsoToZhDate(post.dateCreated.toISOString(), true) + // const datearr = created.split(" ")[0] + // const numarr = datearr.split("-") + // const y = numarr[0] + // const m = numarr[1] + // const d = numarr[2] + // this.logger.debug("created numarr=>", numarr) + // let filename = cfg.mdFilenameRule.replace(/\.md/g, "") + // if (cfg.useMdFilename) { + // // 使用真实文件名作为MD文件名 + // filename = filename.replace(/\[filename\]/g, post.title) + // } else { + // // 使用别名作为MD文件名 + // filename = filename.replace(/\[slug\]/g, post.wp_slug) + // } + // // 年月日 + // filename = filename + // .replace(/\[yyyy\]/g, y) + // .replace(/\[MM\]/g, m) + // .replace(/\[mm\]/g, m) + // .replace(/\[dd\]/g, d) + // + // return filename + // } + // + // private processPathCategory(savePath: string, cfg: CommonGitlabConfig) { + // let categories = [] + // if (cfg.usePathCategory) { + // this.logger.debug("savePath=>", savePath) + // const docPathArray = savePath.split("/") + // if (docPathArray.length > 1) { + // for (let i = 1; i < docPathArray.length - 1; i++) { + // const docCate = HtmlUtil.removeTitleNumber(docPathArray[i]) + // categories.push(docCate) + // } + // } + // } + // + // return categories + // } } export { CommonGithubApiAdaptor } diff --git a/src/adaptors/api/gitlab-vuepress/gitlabvuepressApiAdaptor.ts b/src/adaptors/api/gitlab-vuepress/gitlabvuepressApiAdaptor.ts index e7b4601e..8cddb45f 100644 --- a/src/adaptors/api/gitlab-vuepress/gitlabvuepressApiAdaptor.ts +++ b/src/adaptors/api/gitlab-vuepress/gitlabvuepressApiAdaptor.ts @@ -74,22 +74,22 @@ class GitlabvuepressApiAdaptor extends CommonGitlabApiAdaptor { const docPath = doc.path const saveFile = await this.autoMapPublishDir(docPath) updatedPost.cate_slugs = [saveFile] - // 自动生成一级目录 - // ====== - - updatedPost.markdown = `${yfm}\n${updatedMd}` - this.logger.info("Gitlabvuepress 正文处理完毕") - this.logger.debug("updatedMd =>", { yfm: yfm, updatedMd: updatedMd }) + } + // 自动生成一级目录 + // ====== - // 发布格式 - if (cfg?.pageType == PageTypeEnum.Markdown) { - updatedPost.description = updatedPost.markdown - } else { - updatedPost.description = updatedPost.html - } + updatedPost.markdown = `${yfm}\n${updatedMd}` + this.logger.info("Gitlabvuepress 正文处理完毕") + this.logger.debug("updatedMd =>", { yfm: yfm, updatedMd: updatedMd }) - return updatedPost + // 发布格式 + if (cfg?.pageType == PageTypeEnum.Markdown) { + updatedPost.description = updatedPost.markdown + } else { + updatedPost.description = updatedPost.html } + + return updatedPost } // ================ diff --git a/src/adaptors/api/vuepress/vuepressApiAdaptor.ts b/src/adaptors/api/vuepress/vuepressApiAdaptor.ts index bf093481..1bb50318 100644 --- a/src/adaptors/api/vuepress/vuepressApiAdaptor.ts +++ b/src/adaptors/api/vuepress/vuepressApiAdaptor.ts @@ -28,6 +28,7 @@ import { BlogConfig, PageTypeEnum, Post, YamlConvertAdaptor } from "zhi-blog-api import _ from "lodash" import { VuepressYamlConverterAdaptor } from "~/src/adaptors/api/vuepress/vuepressYamlConverterAdaptor.ts" import { YamlUtil } from "zhi-common" +import { SiyuanDevice } from "zhi-device" /** * Vuepress API 适配器 @@ -65,6 +66,18 @@ class VuepressApiAdaptor extends CommonGithubApiAdaptor { } // ====== + // ====== + // 自动推测保存路径 + const selectedPath = updatedPost.cate_slugs?.[0] ?? cfg.blogid + if ("docs" === selectedPath) { + const doc = await this.baseExtendApi.kernelApi.getDoc(id) + const docPath = doc.path + const saveFile = await this.autoMapPublishDir(docPath) + updatedPost.cate_slugs = [saveFile] + } + // 自动生成一级目录 + // ====== + updatedPost.markdown = `${yfm}\n${updatedMd}` this.logger.info("Vuepress 正文处理完毕") this.logger.debug("updatedMd =>", { yfm: yfm, updatedMd: updatedMd }) @@ -78,6 +91,40 @@ class VuepressApiAdaptor extends CommonGithubApiAdaptor { return updatedPost } + + // ================ + // private methods + // ================ + private async autoMapPublishDir(docPath: string) { + this.logger.info("start autoMapPublishDir, docPath =>", docPath) + + const win = SiyuanDevice.siyuanWindow() + const path = win.require("path") + const paths = docPath + .replace(/\.sy/, "") + .split("/") + .filter((x: string) => x !== "") + + let save_dir: string + let save_file: string + const dir_arr = [] + for (const item of paths) { + const attrs = await this.baseExtendApi.kernelApi.getBlockAttrs(item) + dir_arr.push(attrs.title) + } + const toDir = path.join("docs", ...dir_arr) + const toFile = toDir + ".md" + save_dir = path.dirname(toFile) + save_file = toFile + this.logger.info("finished autoMapPublishDir, save_dir =>", save_dir) + this.logger.info("finished autoMapPublishDir, save_file =>", save_file) + + // 生成一级目录 + // 暂时不做 + + // 注意:这里不包括文件名 + return save_dir + } } export { VuepressApiAdaptor } diff --git a/src/adaptors/base/baseExtendApi.ts b/src/adaptors/base/baseExtendApi.ts index 74c60d4e..7f144647 100644 --- a/src/adaptors/base/baseExtendApi.ts +++ b/src/adaptors/base/baseExtendApi.ts @@ -136,7 +136,7 @@ class BaseExtendApi extends WebApi implements IBlogApi, IWebApi { let filename = cfg.mdFilenameRule.replace(/\.md/g, "") if (cfg.useMdFilename) { // 使用真实文件名作为MD文件名 - filename = filename.replace(/\[filename\]/g, post.title) + filename = filename.replace(/\[filename\]/g, post.originalTitle) } else { // 使用别名作为MD文件名 filename = filename.replace(/\[slug\]/g, post.wp_slug) diff --git a/vite.config.ts b/vite.config.ts index b3260d09..348ac11d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -62,9 +62,9 @@ const isServe = process.env.IS_SERVE const isWatch = args.watch || args.w || false const isDev = isServe || isWatch || debugMode const isWindows = process.platform === "win32" -let devDistDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/test/data/plugins/siyuan-plugin-publisher" +// let devDistDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/test/data/plugins/siyuan-plugin-publisher" // let devDistDir = "/Users/zhangyue/Documents/terwer/SiyuanWorkspace/test/data/plugins/siyuan-plugin-publisher" -// let devDistDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/public/data/plugins/siyuan-plugin-publisher" +let devDistDir = "/Users/terwer/Documents/mydocs/SiYuanWorkspace/public/data/plugins/siyuan-plugin-publisher" if (isWindows) { devDistDir = "C:\\Users\\terwer\\Documents\\mydocs\\SiyuanWorkspace\\test\\data\\plugins\\siyuan-plugin-publisher" // devDistDir = "C:\\Users\\terwer\\Documents\\mydocs\\SiyuanWorkspace\\public\plugins\siyuan-plugin-publisher"