Skip to content

Commit

Permalink
Merge pull request #697 from terwer/dev
Browse files Browse the repository at this point in the history
feat: #130 支持发布到CSDN
  • Loading branch information
terwer authored Sep 2, 2023
2 parents f5ab1fa + 958c34b commit 5c415b7
Show file tree
Hide file tree
Showing 66 changed files with 1,256 additions and 187 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Publish articles from siyuan-note to platforms such as Yuque, Notion, Cnblogs, W

Support features such as fast publishing, image bed management, platform expansion, smart labels, etc.

🎉 Version `1.12.0` of Publish Tool with the first CSDN support is now available!

**Facing issues or have suggestions? Please join QQ group `895063267` for discussion. Alternatively, refer to the online documentation below:**

> [Click here](https://blog.terwer.space/s/20230810132040-nn4q7vs) to view the latest help documentation.
Expand All @@ -31,6 +33,7 @@ Names not listed in order
- [X] Typecho
- [X] WordPress
- [X] Zhihu
- [X] CSDN

## Core Features

Expand Down
3 changes: 3 additions & 0 deletions README_zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

将思源笔记的文章发布到语雀、Notion、Cnblogs、WordPress、Typecho、Hexo、知乎 等平台,支持极速发布、图床管理、平台扩展、智能标签等特色功能。

> 🎉 发布工具首个支持CSDN的版本 `1.12.0` 发布!
**遇到问题或者需求建议?请加QQ群 `895063267` 讨论。或者查看下面的在线文档:**

> [猛击这里](https://blog.terwer.space/s/20230810132040-nn4q7vs),查看最新帮助文档。
Expand All @@ -29,6 +31,7 @@
- [X] Typecho
- [X] WordPress
- [X] 知乎
- [X] CSDN

## 核心特色

Expand Down
40 changes: 40 additions & 0 deletions docs/插件开发.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## 插件开发指南

先要确定插件所属的大类,这个是发布工具内置的,需要发布工具内部添加维护,不支持用户自定义。
目前可用的有
- Common
- Metaweblog
- Wordpress
- Github
- Gitlab
- Custom
- System

新增大类的时候需要维护
- DynamicJsonCfg
- getSubtypeList
- setDynamicJsonCfg
- src/utils/import/pre.ts

## API授权插件开发指南

## 网页授权插件开发指南

1. 确定大类。例如:CSDN属于Custom
2. 新建子类别。例如:SubPlatformType加一个Custom_CSDN
3. 注册子类别,需要修改
- getSubtypeList
- src/utils/import/pre.ts
4. 新增适配器
网页授权需要再 src/adaptors/web 新建文件。例如
- csdnWebAdaptor 需要继承 BaseWebApi
- csdnConfig 需要继承 CommonWebConfig
- csdnPlaceholder 需要继承 CommonWebPlaceholder
- useCsdnWeb 定义 const useCsdnWeb = async (key?: string, newCfg?: CsdnConfig) => {}
5. 注册适配器
适配器 src/adaptors/index.ts getCfg
配置 src/adaptors/index.ts getAdaptor
YAML适配器(不一定有)
6. 开启配置页面
在 src/components/set/publish/singleplatform/SingleSettingIndex.vue 注册配置

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"devDependencies": {
"@terwer/eslint-config-custom": "^1.3.6",
"@types/crypto-js": "^4.1.1",
"@types/node": "^18.17.12",
"@types/node": "^18.17.13",
"@vitejs/plugin-vue": "^4.3.4",
"@vitest/coverage-v8": "^0.34.3",
"@vue/test-utils": "^2.4.1",
Expand Down Expand Up @@ -72,15 +72,15 @@
"vue-i18n": "^9.2.2",
"vue-router": "^4.2.4",
"xmlbuilder2": "^3.1.1",
"zhi-blog-api": "^1.35.0",
"zhi-blog-api": "^1.36.3",
"zhi-common": "^1.23.7",
"zhi-device": "^2.3.1",
"zhi-fetch-middleware": "^0.6.4",
"zhi-github-middleware": "^0.4.2",
"zhi-gitlab-middleware": "^0.6.4",
"zhi-lib-base": "^0.5.0",
"zhi-notion-markdown": "^0.1.4",
"zhi-siyuan-api": "^2.7.0",
"zhi-siyuan-api": "^2.7.4",
"zhi-xmlrpc-middleware": "^0.5.11"
}
}
63 changes: 29 additions & 34 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/adaptors/api/base/baseBlogApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
*/

import { BlogApi, BlogConfig, Post, YamlConvertAdaptor } from "zhi-blog-api"
import { AppInstance } from "~/src/appInstance.ts"
import { PublisherAppInstance } from "~/src/publisherAppInstance.ts"
import { createAppLogger, ILogger } from "~/src/utils/appLogger.ts"
import { useProxy } from "~/src/composables/useProxy.ts"
import { BaseExtendApi } from "~/src/adaptors/base/baseExtendApi.ts"
Expand All @@ -48,7 +48,7 @@ export class BaseBlogApi extends BlogApi {
* @param appInstance 应用实例
* @param cfg 配置项
*/
constructor(appInstance: AppInstance, cfg: BlogConfig) {
constructor(appInstance: PublisherAppInstance, cfg: BlogConfig) {
super()

this.cfg = cfg
Expand Down
4 changes: 2 additions & 2 deletions src/adaptors/api/base/gitlab/commonGitlabApiAdaptor.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
*/

import { describe, it } from "vitest"
import { AppInstance } from "~/src/appInstance.ts"
import { PublisherAppInstance } from "~/src/publisherAppInstance.ts"
import { CommonGitlabConfig } from "~/src/adaptors/api/base/gitlab/commonGitlabConfig.ts"
import { CommonGitlabApiAdaptor } from "~/src/adaptors/api/base/gitlab/commonGitlabApiAdaptor.ts"

describe("test commonGitlabApiAdaptor", () => {
const appInstance = new AppInstance()
const appInstance = new PublisherAppInstance()
const gitlabCfg = new CommonGitlabConfig("terwer", "", "terwer-github-io", "main")
gitlabCfg.apiUrl = "http://localhost:8002"
gitlabCfg.home = "http://localhost:8002"
Expand Down
4 changes: 2 additions & 2 deletions src/adaptors/api/base/gitlab/commonGitlabApiAdaptor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
*/

import { BaseBlogApi } from "~/src/adaptors/api/base/baseBlogApi.ts"
import { AppInstance } from "~/src/appInstance.ts"
import { PublisherAppInstance } from "~/src/publisherAppInstance.ts"
import { CommonGitlabConfig } from "~/src/adaptors/api/base/gitlab/commonGitlabConfig.ts"
import { createAppLogger } from "~/src/utils/appLogger.ts"
import { CommonGitlabClient } from "zhi-gitlab-middleware"
Expand All @@ -44,7 +44,7 @@ import { isDev } from "~/src/utils/constants.ts"
class CommonGitlabApiAdaptor extends BaseBlogApi {
private gitlabClient: CommonGitlabClient

constructor(appInstance: AppInstance, cfg: CommonGitlabConfig) {
constructor(appInstance: PublisherAppInstance, cfg: CommonGitlabConfig) {
super(appInstance, cfg)
this.logger = createAppLogger("common-gitlab-api-adaptor")

Expand Down
4 changes: 2 additions & 2 deletions src/adaptors/api/cnblogs/cnblogsApiAdaptor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

import { CategoryInfo, Post, UserBlog } from "zhi-blog-api"
import { CnblogsConfig } from "~/src/adaptors/api/cnblogs/cnblogsConfig.ts"
import { AppInstance } from "~/src/appInstance.ts"
import { PublisherAppInstance } from "~/src/publisherAppInstance.ts"
import { createAppLogger } from "~/src/utils/appLogger.ts"
import { CnblogsConstants } from "~/src/adaptors/api/cnblogs/cnblogsConstants.ts"
import { MetaweblogBlogApiAdaptor } from "~/src/adaptors/api/base/metaweblog/metaweblogBlogApiAdaptor.ts"
Expand All @@ -49,7 +49,7 @@ class CnblogsApiAdaptor extends MetaweblogBlogApiAdaptor {
* @param appInstance 应用实例
* @param cfg 配置项
*/
constructor(appInstance: AppInstance, cfg: CnblogsConfig) {
constructor(appInstance: PublisherAppInstance, cfg: CnblogsConfig) {
super(appInstance, cfg)
this.logger = createAppLogger("cnblogs-api-adaptor")
this.cfg.blogid = "cnblogs"
Expand Down
Loading

0 comments on commit 5c415b7

Please sign in to comment.