Skip to content

Commit 8e58ffe

Browse files
authored
feat: add confirm btn to upload post (#158)
1 parent 5f7bccf commit 8e58ffe

File tree

11 files changed

+131
-90
lines changed

11 files changed

+131
-90
lines changed

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
- [拉取远程博文内容更新本地文件](#拉取远程博文内容更新本地文件)
1818
- [图片上传](#图片上传)
1919
- [博文分类管理](#博文分类管理)
20-
- [导出 pdf](#导出-pdf)
20+
- [导出 PDF](#导出-PDF)
2121
- [提取图片](#提取图片)
2222
- [博文设置面板](#博文设置面板)
2323
- [闪存](#闪存)
@@ -47,13 +47,13 @@
4747

4848
若本地文件已经关联到一篇博客园博文,那么会直接更新这篇博文。
4949

50-
也通过 vscode 的 `Command Palette`(唤起 `Command Palette` 快捷键,windows:`ctrl+shift+p`,macos:`command+shift+p`)调用 `Cnblogs: 保存到博客园`命令,将当前正在编辑的 markdown 文件保存到博客园上
50+
也通过 vscode 的 `Command Palette`(唤起 `Command Palette` 快捷键,windows:`ctrl+shift+p`,macos:`command+shift+p`)调用 `Cnblogs: 上传到博客园`命令,将当前正在编辑的 markdown 文件上传到博客园上
5151

5252
<kbd><img src="https://img2022.cnblogs.com/blog/1596066/202204/1596066-20220415194545998-874211959.png" height="550"></kbd>
5353

5454
### 博客园博文列表
5555

56-
当点击列表中的博文时,会自动将博文内容下载到工作空间一个本地文件中(此时这个本地文件就关联到了这篇博文),完成编辑后可以再将本地的内容保存到博客园博文
56+
当点击列表中的博文时,会自动将博文内容下载到工作空间一个本地文件中(此时这个本地文件就关联到了这篇博文),完成编辑后可以再将本地的内容上传到博客园
5757

5858
<kbd><img src="https://img2020.cnblogs.com/blog/3/202112/3-20211227184342642-1938639868.png" height="550"></kbd>
5959

@@ -75,23 +75,23 @@
7575

7676
### 拉取远程博文内容更新本地文件
7777

78-
本地文件和博文关联后,如果通过博客后台更新了这篇博文,此时本地文件是不会自动更新的,但是可以通过 `Cnblogs: 拉取远程更新`命令来更新本地博文
78+
本地文件和博文关联后,如果通过博客后台更新了这篇博文,此时本地文件是不会自动更新的,但是可以通过 `Cnblogs: 拉取博文`命令来更新本地博文
7979

80-
可以在下面这些地方可以调用 `Cnblogs: 拉取远程更新`
80+
可以在下面这些地方可以调用 `Cnblogs: 拉取博文`
8181

82-
- 博客园随笔列表视图中的博文的上下文菜单`拉取远程更新`(仅已关联本地文件的博文)
82+
- 博客园随笔列表视图中的博文的上下文菜单`拉取博文`(仅已关联本地文件的博文)
8383

8484
<kbd><img src="https://img2022.cnblogs.com/blog/1596066/202204/1596066-20220415195826898-1477642941.png" height="350"></kbd>
8585

86-
- 编辑器上下文菜单中的`拉取远程更新`(仅针对 markdown 文件)
86+
- 编辑器上下文菜单中的`拉取博文`(仅针对 markdown 文件)
8787

8888
<kbd><img src="https://img2022.cnblogs.com/blog/1596066/202204/1596066-20220415195920100-1395377363.png" height="550"></kbd>
8989

90-
- 文件浏览器上下文菜单中的`拉取远程更新`(仅针对 markdown 文件)
90+
- 文件浏览器上下文菜单中的`拉取博文`(仅针对 markdown 文件)
9191

9292
<kbd><img src="https://img2022.cnblogs.com/blog/1596066/202204/1596066-20220401183918962-2083221618.png" height="550"></kbd>
9393

94-
- vscode 命令面板 `Cnblogs: 拉取远程更新`,此时会尝试去寻找当前正在编辑的文件对其进行更新
94+
- vscode 命令面板 `Cnblogs: 拉取博文`,此时会尝试去寻找当前正在编辑的文件对其进行更新
9595

9696
<kbd><img src="https://img2022.cnblogs.com/blog/1596066/202204/1596066-20220401184013947-1481430186.png?v=20220424" height="550"></kbd>
9797

@@ -109,9 +109,9 @@
109109

110110
<kbd><img src="https://img2020.cnblogs.com/blog/1596066/202112/1596066-20211228130552877-1788018336.png" height="300"></kbd>
111111

112-
### 导出 pdf
112+
### 导出 PDF
113113

114-
支持将博文导出为 pdf 格式的文件到本地,此功能依赖于 [Chromium](https://www.chromium.org/chromium-projects/),vscode-cnb 默认会先从本地寻找是否有已安装的 Chrome 或基于 Chromium 的 Edge 浏览器,若有的话则会直接使用本地的 Chrome 或基于 Chromium 的 Edge; 若未找到,那么会提示用户手动选择本地的 Chromium 或其他基于 Chromium 的浏览器
114+
支持将博文导出为 PDF 格式的文件到本地,此功能依赖于 [Chromium](https://www.chromium.org/chromium-projects/),vscode-cnb 默认会先从本地寻找是否有已安装的 Chrome 或基于 Chromium 的 Edge 浏览器,若有的话则会直接使用本地的 Chrome 或基于 Chromium 的 Edge; 若未找到,那么会提示用户手动选择本地的 Chromium 或其他基于 Chromium 的浏览器
115115

116116
<kbd><img src="https://img2022.cnblogs.com/blog/1596066/202203/1596066-20220323135717910-1090211493.png" height="550"></kbd>
117117

@@ -129,7 +129,7 @@
129129

130130
![image](https://img2022.cnblogs.com/blog/1596066/202209/1596066-20220917215536822-836105648.png)
131131

132-
也可以在设置中配置保存到博客园时自动提取图片
132+
也可以在设置中配置上传到博客园时自动提取图片
133133

134134
![image](https://img2022.cnblogs.com/blog/1596066/202209/1596066-20220917215650930-372126612.png)
135135

package.json

Lines changed: 50 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vscode-cnb",
3-
"displayName": "博客园Cnblogs客户端",
4-
"description": "A vscode extension used to write and publish blog post to cnblogs",
3+
"displayName": "博客园 VSCode 扩展",
4+
"description": "VSCode extension for CNBlogs",
55
"version": "0.0.1",
66
"license": "LICENSE.txt",
77
"preview": false,
@@ -148,8 +148,8 @@
148148
"category": "Cnblogs Posts List"
149149
},
150150
{
151-
"command": "vscode-cnb.save-post",
152-
"title": "保存博文",
151+
"command": "vscode-cnb.upload-post",
152+
"title": "上传博文",
153153
"icon": "$(cloud-upload)",
154154
"category": "Cnblogs Posts List",
155155
"enablement": "vscode-cnb.isAuthorized"
@@ -199,15 +199,15 @@
199199
"category": "Cnblogs"
200200
},
201201
{
202-
"command": "vscode-cnb.save-post-file-to-cnblogs",
203-
"title": "保存到博客园",
202+
"command": "vscode-cnb.upload-post-file-to-cnblogs",
203+
"title": "上传到博客园",
204204
"icon": "$(vscode-cnb-cloud-upload)",
205205
"enablement": "vscode-cnb.isAuthorized",
206206
"category": "Cnblogs"
207207
},
208208
{
209209
"command": "vscode-cnb.pull-post-remote-updates",
210-
"title": "拉取远程更新",
210+
"title": "拉取博文",
211211
"category": "Cnblogs",
212212
"enablement": "vscode-cnb.isAuthorized",
213213
"icon": "$(cloud-download)"
@@ -274,7 +274,7 @@
274274
},
275275
{
276276
"command": "vscode-cnb.export-post-to-pdf",
277-
"title": "导出PDF",
277+
"title": "导出 PDF",
278278
"category": "Cnblogs",
279279
"enablement": "vscode-cnb.isAuthorized"
280280
},
@@ -473,17 +473,19 @@
473473
"enum": [
474474
"disable",
475475
"local",
476+
"dataurl",
476477
"web",
477478
"any"
478479
],
479480
"enumItemLabels": [
480481
"禁用",
481482
"自动提取本地图片",
483+
"自动提取由 Base64 编码的图片",
482484
"自动提取网络图片",
483485
"自动提取全部图片"
484486
],
485487
"editPresentation": "singlelineText",
486-
"markdownDescription": "提取图片, 配置保存到博客园时要自动提取上传到博客园的图片"
488+
"markdownDescription": "提取图片, 配置上传到博客园时要自动提取上传到博客园的图片"
487489
},
488490
"cnblogsClientForVSCode.pageSize.postsList": {
489491
"order": 7,
@@ -527,11 +529,27 @@
527529
"editPresentation": "singlelineText",
528530
"markdownDescription": "博客园 Markdown 语法扩展: 代码块指定行高亮\n\n&nbsp;\n\n使用示例:\n\n```markdown\n\n```typescript {1, 3-4}\nconsole.log(1)\nconsole.log(2)\nconsole.log(3)\nconsole.log(4)\nconsole.log(5)\n```\n\n```"
529531
},
532+
"cnblogsClientForVSCode.markdown.showConfirmMsgWhenUploadPost": {
533+
"order": 11,
534+
"type": "boolean",
535+
"scope": "application",
536+
"default": true,
537+
"editPresentation": "singlelineText",
538+
"markdownDescription": "在上传博文时显示确认消息"
539+
},
540+
"cnblogsClientForVSCode.markdown.showConfirmMsgWhenPullPost": {
541+
"order": 12,
542+
"type": "boolean",
543+
"scope": "application",
544+
"default": true,
545+
"editPresentation": "singlelineText",
546+
"markdownDescription": "在拉取博文时显示确认消息"
547+
},
530548
"cnblogsClientForVSCode.menus.context.explorer": {
531549
"type": "object",
532550
"additionalProperties": false,
533551
"default": {
534-
"save-post-file-to-cnblogs": true,
552+
"upload-post-file-to-cnblogs": true,
535553
"pull-post-remote-updates": true,
536554
"modify-post-settings": true,
537555
"show-post-to-local-file-info": true,
@@ -540,16 +558,16 @@
540558
"copy-post-link": true
541559
},
542560
"markdownDescription": "控制要在资源管理器右键菜单中显示的命令",
543-
"order": 12,
561+
"order": 13,
544562
"properties": {
545-
"save-post-file-to-cnblogs": {
546-
"description": "保存到博客园",
563+
"upload-post-file-to-cnblogs": {
564+
"description": "上传到博客园",
547565
"type": "boolean",
548566
"order": 0,
549567
"default": true
550568
},
551569
"pull-post-remote-updates": {
552-
"description": "拉取远程更新",
570+
"description": "拉取博文",
553571
"type": "boolean",
554572
"order": 1,
555573
"default": true
@@ -573,7 +591,7 @@
573591
"default": true
574592
},
575593
"export-post-to-pdf": {
576-
"description": "导出pdf",
594+
"description": "导出 PDF",
577595
"type": "boolean",
578596
"order": 5,
579597
"default": true
@@ -589,7 +607,7 @@
589607
"cnblogsClientForVSCode.menus.context.editor": {
590608
"type": "object",
591609
"default": {
592-
"save-post-file-to-cnblogs": true,
610+
"upload-post-file-to-cnblogs": true,
593611
"pull-post-remote-updates": true,
594612
"modify-post-settings": true,
595613
"show-post-to-local-file-info": true,
@@ -602,13 +620,13 @@
602620
"ing:publish-selection": false
603621
},
604622
"properties": {
605-
"save-post-file-to-cnblogs": {
606-
"description": "保存到博客园",
623+
"upload-post-file-to-cnblogs": {
624+
"description": "上传到博客园",
607625
"type": "boolean",
608626
"order": 0
609627
},
610628
"pull-post-remote-updates": {
611-
"description": "拉取远程更新",
629+
"description": "拉取博文",
612630
"type": "boolean",
613631
"order": 1
614632
},
@@ -629,7 +647,7 @@
629647
"order": 4
630648
},
631649
"export-post-to-pdf": {
632-
"description": "导出pdf",
650+
"description": "导出 PDF",
633651
"type": "boolean",
634652
"order": 5
635653
},
@@ -662,7 +680,7 @@
662680
"scope": "application",
663681
"additionalProperties": false,
664682
"markdownDescription": "控制要在编辑器右键菜单中显示的命令",
665-
"order": 13
683+
"order": 14
666684
}
667685
}
668686
}
@@ -826,7 +844,7 @@
826844
"when": "false"
827845
},
828846
{
829-
"command": "vscode-cnb.save-post",
847+
"command": "vscode-cnb.upload-post",
830848
"when": "false"
831849
},
832850
{
@@ -838,7 +856,7 @@
838856
"when": "false"
839857
},
840858
{
841-
"command": "vscode-cnb.save-post-file-to-cnblogs",
859+
"command": "vscode-cnb.upload-post-file-to-cnblogs",
842860
"when": "true"
843861
},
844862
{
@@ -944,7 +962,7 @@
944962
],
945963
"view/item/context": [
946964
{
947-
"command": "vscode-cnb.save-post",
965+
"command": "vscode-cnb.upload-post",
948966
"group": "inline@1",
949967
"when": "viewItem == cnb-post-cached"
950968
},
@@ -988,7 +1006,7 @@
9881006
"group": "delete@2"
9891007
},
9901008
{
991-
"command": "vscode-cnb.save-post",
1009+
"command": "vscode-cnb.upload-post",
9921010
"group": "0@1",
9931011
"when": "viewItem == cnb-post-cached"
9941012
},
@@ -1093,8 +1111,8 @@
10931111
"group": "cnblogs@1"
10941112
},
10951113
{
1096-
"command": "vscode-cnb.save-post-file-to-cnblogs",
1097-
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.editor.save-post-file-to-cnblogs",
1114+
"command": "vscode-cnb.upload-post-file-to-cnblogs",
1115+
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.editor.upload-post-file-to-cnblogs",
10981116
"group": "cnblogs@2"
10991117
},
11001118
{
@@ -1145,7 +1163,7 @@
11451163
"group": "navigation"
11461164
},
11471165
{
1148-
"command": "vscode-cnb.save-post-file-to-cnblogs",
1166+
"command": "vscode-cnb.upload-post-file-to-cnblogs",
11491167
"when": "resourceLangId == markdown",
11501168
"group": "navigation"
11511169
}
@@ -1157,8 +1175,8 @@
11571175
"group": "cnblogs@1"
11581176
},
11591177
{
1160-
"command": "vscode-cnb.save-post-file-to-cnblogs",
1161-
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.explorer.save-post-file-to-cnblogs",
1178+
"command": "vscode-cnb.upload-post-file-to-cnblogs",
1179+
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.explorer.upload-post-file-to-cnblogs",
11621180
"group": "cnblogs@2"
11631181
},
11641182
{
@@ -1219,7 +1237,7 @@
12191237
"viewsWelcome": [
12201238
{
12211239
"view": "cnblogs-authorize",
1222-
"contents": "欢迎使用博客园vscode插件! 请先登录授权!"
1240+
"contents": "欢迎使用博客园 VSCode 插件!请先登录授权!"
12231241
},
12241242
{
12251243
"view": "cnblogs-authorize",
@@ -1231,7 +1249,7 @@
12311249
},
12321250
{
12331251
"view": "vscode-cnb-workspace",
1234-
"contents": "[在vscode中打开工作空间](command:vscode-cnb.open-workspace)",
1252+
"contents": "[在 VSCode 中打开工作空间](command:vscode-cnb.open-workspace)",
12351253
"when": "!vscode-cnb.isTargetWorkspace"
12361254
},
12371255
{

src/commands/commands-registration.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
refreshPostsList,
1212
seekPostsList,
1313
} from './posts-list/refresh-posts-list'
14-
import { savePostFileToCnblogs, savePostToCnblogs } from './posts-list/save-post'
14+
import { uploadPostFileToCnblogs, uploadPostToCnblogs } from './posts-list/upload-post'
1515
import { createLocalDraft } from './posts-list/create-local-draft'
1616
import { deleteSelectedPosts } from './posts-list/delete-post'
1717
import { modifyPostSettings } from './posts-list/modify-post-settings'
@@ -41,6 +41,8 @@ import { registerCommandsForBlogExport } from '@/commands/blog-export'
4141
export const registerCommands = () => {
4242
const context = globalContext.extensionContext
4343
const appName = globalContext.extensionName
44+
45+
// TODO: simplify register
4446
const disposables = [
4547
commands.registerCommand(`${appName}.login`, login),
4648
commands.registerCommand(`${appName}.open-my-blog`, openMyBlog),
@@ -53,11 +55,11 @@ export const registerCommands = () => {
5355
commands.registerCommand(`${appName}.seek-posts-list`, seekPostsList),
5456
commands.registerCommand(`${appName}.next-posts-list`, gotoNextPostsList),
5557
commands.registerCommand(`${appName}.edit-post`, openPostInVscode),
56-
commands.registerCommand(`${appName}.save-post`, savePostToCnblogs),
58+
commands.registerCommand(`${appName}.upload-post`, uploadPostToCnblogs),
5759
commands.registerCommand(`${appName}.modify-post-settings`, modifyPostSettings),
5860
commands.registerCommand(`${appName}.delete-post`, deleteSelectedPosts),
5961
commands.registerCommand(`${appName}.create-local-draft`, createLocalDraft),
60-
commands.registerCommand(`${appName}.save-post-file-to-cnblogs`, savePostFileToCnblogs),
62+
commands.registerCommand(`${appName}.upload-post-file-to-cnblogs`, uploadPostFileToCnblogs),
6163
commands.registerCommand(`${appName}.pull-post-remote-updates`, pullPostRemoteUpdates),
6264
commands.registerCommand(`${appName}.upload-clipboard-image`, () => uploadImage(true, 'clipboard')),
6365
commands.registerCommand(`${appName}.upload-local-disk-image`, () => uploadImage(true, 'local')),
@@ -88,7 +90,9 @@ export const registerCommands = () => {
8890
new PublishIngCommandHandler('selection').handle()
8991
),
9092
]
93+
9194
registerCommandsForIngsList(disposables)
9295
registerCommandsForBlogExport(disposables)
96+
9397
context?.subscriptions.push(...disposables)
9498
}

src/commands/pdf/export-pdf.command.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ const retrieveChromiumPath = async (): Promise<string | undefined> => {
125125
path = op ? await op[1]() : undefined
126126
}
127127

128-
if (path && path !== Settings.chromiumPath) await Settings.setChromiumPath(path)
128+
if (path !== undefined && path !== Settings.chromiumPath) await Settings.setChromiumPath(path)
129129

130130
return path
131131
}

0 commit comments

Comments
 (0)