Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
- [拉取远程博文内容更新本地文件](#拉取远程博文内容更新本地文件)
- [图片上传](#图片上传)
- [博文分类管理](#博文分类管理)
- [导出 pdf](#导出-pdf)
- [导出 PDF](#导出-PDF)
- [提取图片](#提取图片)
- [博文设置面板](#博文设置面板)
- [闪存](#闪存)
Expand Down Expand Up @@ -47,13 +47,13 @@

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

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

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

### 博客园博文列表

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

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

Expand All @@ -75,23 +75,23 @@

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

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

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

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

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

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

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

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

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

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

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

Expand All @@ -109,9 +109,9 @@

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

### 导出 pdf
### 导出 PDF

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

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

Expand All @@ -129,7 +129,7 @@

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

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

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

Expand Down
82 changes: 50 additions & 32 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "vscode-cnb",
"displayName": "博客园Cnblogs客户端",
"description": "A vscode extension used to write and publish blog post to cnblogs",
"displayName": "博客园 VSCode 扩展",
"description": "VSCode extension for CNBlogs",
"version": "0.0.1",
"license": "LICENSE.txt",
"preview": false,
Expand Down Expand Up @@ -148,8 +148,8 @@
"category": "Cnblogs Posts List"
},
{
"command": "vscode-cnb.save-post",
"title": "保存博文",
"command": "vscode-cnb.upload-post",
"title": "上传博文",
"icon": "$(cloud-upload)",
"category": "Cnblogs Posts List",
"enablement": "vscode-cnb.isAuthorized"
Expand Down Expand Up @@ -199,15 +199,15 @@
"category": "Cnblogs"
},
{
"command": "vscode-cnb.save-post-file-to-cnblogs",
"title": "保存到博客园",
"command": "vscode-cnb.upload-post-file-to-cnblogs",
"title": "上传到博客园",
"icon": "$(vscode-cnb-cloud-upload)",
"enablement": "vscode-cnb.isAuthorized",
"category": "Cnblogs"
},
{
"command": "vscode-cnb.pull-post-remote-updates",
"title": "拉取远程更新",
"title": "拉取博文",
"category": "Cnblogs",
"enablement": "vscode-cnb.isAuthorized",
"icon": "$(cloud-download)"
Expand Down Expand Up @@ -274,7 +274,7 @@
},
{
"command": "vscode-cnb.export-post-to-pdf",
"title": "导出PDF",
"title": "导出 PDF",
"category": "Cnblogs",
"enablement": "vscode-cnb.isAuthorized"
},
Expand Down Expand Up @@ -473,17 +473,19 @@
"enum": [
"disable",
"local",
"dataurl",
"web",
"any"
],
"enumItemLabels": [
"禁用",
"自动提取本地图片",
"自动提取由 Base64 编码的图片",
"自动提取网络图片",
"自动提取全部图片"
],
"editPresentation": "singlelineText",
"markdownDescription": "提取图片, 配置保存到博客园时要自动提取上传到博客园的图片"
"markdownDescription": "提取图片, 配置上传到博客园时要自动提取上传到博客园的图片"
},
"cnblogsClientForVSCode.pageSize.postsList": {
"order": 7,
Expand Down Expand Up @@ -527,11 +529,27 @@
"editPresentation": "singlelineText",
"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```"
},
"cnblogsClientForVSCode.markdown.showConfirmMsgWhenUploadPost": {
"order": 11,
"type": "boolean",
"scope": "application",
"default": true,
"editPresentation": "singlelineText",
"markdownDescription": "在上传博文时显示确认消息"
},
"cnblogsClientForVSCode.markdown.showConfirmMsgWhenPullPost": {
"order": 12,
"type": "boolean",
"scope": "application",
"default": true,
"editPresentation": "singlelineText",
"markdownDescription": "在拉取博文时显示确认消息"
},
"cnblogsClientForVSCode.menus.context.explorer": {
"type": "object",
"additionalProperties": false,
"default": {
"save-post-file-to-cnblogs": true,
"upload-post-file-to-cnblogs": true,
"pull-post-remote-updates": true,
"modify-post-settings": true,
"show-post-to-local-file-info": true,
Expand All @@ -540,16 +558,16 @@
"copy-post-link": true
},
"markdownDescription": "控制要在资源管理器右键菜单中显示的命令",
"order": 12,
"order": 13,
"properties": {
"save-post-file-to-cnblogs": {
"description": "保存到博客园",
"upload-post-file-to-cnblogs": {
"description": "上传到博客园",
"type": "boolean",
"order": 0,
"default": true
},
"pull-post-remote-updates": {
"description": "拉取远程更新",
"description": "拉取博文",
"type": "boolean",
"order": 1,
"default": true
Expand All @@ -573,7 +591,7 @@
"default": true
},
"export-post-to-pdf": {
"description": "导出pdf",
"description": "导出 PDF",
"type": "boolean",
"order": 5,
"default": true
Expand All @@ -589,7 +607,7 @@
"cnblogsClientForVSCode.menus.context.editor": {
"type": "object",
"default": {
"save-post-file-to-cnblogs": true,
"upload-post-file-to-cnblogs": true,
"pull-post-remote-updates": true,
"modify-post-settings": true,
"show-post-to-local-file-info": true,
Expand All @@ -602,13 +620,13 @@
"ing:publish-selection": false
},
"properties": {
"save-post-file-to-cnblogs": {
"description": "保存到博客园",
"upload-post-file-to-cnblogs": {
"description": "上传到博客园",
"type": "boolean",
"order": 0
},
"pull-post-remote-updates": {
"description": "拉取远程更新",
"description": "拉取博文",
"type": "boolean",
"order": 1
},
Expand All @@ -629,7 +647,7 @@
"order": 4
},
"export-post-to-pdf": {
"description": "导出pdf",
"description": "导出 PDF",
"type": "boolean",
"order": 5
},
Expand Down Expand Up @@ -662,7 +680,7 @@
"scope": "application",
"additionalProperties": false,
"markdownDescription": "控制要在编辑器右键菜单中显示的命令",
"order": 13
"order": 14
}
}
}
Expand Down Expand Up @@ -826,7 +844,7 @@
"when": "false"
},
{
"command": "vscode-cnb.save-post",
"command": "vscode-cnb.upload-post",
"when": "false"
},
{
Expand All @@ -838,7 +856,7 @@
"when": "false"
},
{
"command": "vscode-cnb.save-post-file-to-cnblogs",
"command": "vscode-cnb.upload-post-file-to-cnblogs",
"when": "true"
},
{
Expand Down Expand Up @@ -944,7 +962,7 @@
],
"view/item/context": [
{
"command": "vscode-cnb.save-post",
"command": "vscode-cnb.upload-post",
"group": "inline@1",
"when": "viewItem == cnb-post-cached"
},
Expand Down Expand Up @@ -988,7 +1006,7 @@
"group": "delete@2"
},
{
"command": "vscode-cnb.save-post",
"command": "vscode-cnb.upload-post",
"group": "0@1",
"when": "viewItem == cnb-post-cached"
},
Expand Down Expand Up @@ -1093,8 +1111,8 @@
"group": "cnblogs@1"
},
{
"command": "vscode-cnb.save-post-file-to-cnblogs",
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.editor.save-post-file-to-cnblogs",
"command": "vscode-cnb.upload-post-file-to-cnblogs",
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.editor.upload-post-file-to-cnblogs",
"group": "cnblogs@2"
},
{
Expand Down Expand Up @@ -1145,7 +1163,7 @@
"group": "navigation"
},
{
"command": "vscode-cnb.save-post-file-to-cnblogs",
"command": "vscode-cnb.upload-post-file-to-cnblogs",
"when": "resourceLangId == markdown",
"group": "navigation"
}
Expand All @@ -1157,8 +1175,8 @@
"group": "cnblogs@1"
},
{
"command": "vscode-cnb.save-post-file-to-cnblogs",
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.explorer.save-post-file-to-cnblogs",
"command": "vscode-cnb.upload-post-file-to-cnblogs",
"when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.explorer.upload-post-file-to-cnblogs",
"group": "cnblogs@2"
},
{
Expand Down Expand Up @@ -1219,7 +1237,7 @@
"viewsWelcome": [
{
"view": "cnblogs-authorize",
"contents": "欢迎使用博客园vscode插件! 请先登录授权!"
"contents": "欢迎使用博客园 VSCode 插件!请先登录授权!"
},
{
"view": "cnblogs-authorize",
Expand All @@ -1231,7 +1249,7 @@
},
{
"view": "vscode-cnb-workspace",
"contents": "[在vscode中打开工作空间](command:vscode-cnb.open-workspace)",
"contents": "[在 VSCode 中打开工作空间](command:vscode-cnb.open-workspace)",
"when": "!vscode-cnb.isTargetWorkspace"
},
{
Expand Down
10 changes: 7 additions & 3 deletions src/commands/commands-registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
refreshPostsList,
seekPostsList,
} from './posts-list/refresh-posts-list'
import { savePostFileToCnblogs, savePostToCnblogs } from './posts-list/save-post'
import { uploadPostFileToCnblogs, uploadPostToCnblogs } from './posts-list/upload-post'
import { createLocalDraft } from './posts-list/create-local-draft'
import { deleteSelectedPosts } from './posts-list/delete-post'
import { modifyPostSettings } from './posts-list/modify-post-settings'
Expand Down Expand Up @@ -41,6 +41,8 @@ import { registerCommandsForBlogExport } from '@/commands/blog-export'
export const registerCommands = () => {
const context = globalContext.extensionContext
const appName = globalContext.extensionName

// TODO: simplify register
const disposables = [
commands.registerCommand(`${appName}.login`, login),
commands.registerCommand(`${appName}.open-my-blog`, openMyBlog),
Expand All @@ -53,11 +55,11 @@ export const registerCommands = () => {
commands.registerCommand(`${appName}.seek-posts-list`, seekPostsList),
commands.registerCommand(`${appName}.next-posts-list`, gotoNextPostsList),
commands.registerCommand(`${appName}.edit-post`, openPostInVscode),
commands.registerCommand(`${appName}.save-post`, savePostToCnblogs),
commands.registerCommand(`${appName}.upload-post`, uploadPostToCnblogs),
commands.registerCommand(`${appName}.modify-post-settings`, modifyPostSettings),
commands.registerCommand(`${appName}.delete-post`, deleteSelectedPosts),
commands.registerCommand(`${appName}.create-local-draft`, createLocalDraft),
commands.registerCommand(`${appName}.save-post-file-to-cnblogs`, savePostFileToCnblogs),
commands.registerCommand(`${appName}.upload-post-file-to-cnblogs`, uploadPostFileToCnblogs),
commands.registerCommand(`${appName}.pull-post-remote-updates`, pullPostRemoteUpdates),
commands.registerCommand(`${appName}.upload-clipboard-image`, () => uploadImage(true, 'clipboard')),
commands.registerCommand(`${appName}.upload-local-disk-image`, () => uploadImage(true, 'local')),
Expand Down Expand Up @@ -88,7 +90,9 @@ export const registerCommands = () => {
new PublishIngCommandHandler('selection').handle()
),
]

registerCommandsForIngsList(disposables)
registerCommandsForBlogExport(disposables)

context?.subscriptions.push(...disposables)
}
2 changes: 1 addition & 1 deletion src/commands/pdf/export-pdf.command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ const retrieveChromiumPath = async (): Promise<string | undefined> => {
path = op ? await op[1]() : undefined
}

if (path && path !== Settings.chromiumPath) await Settings.setChromiumPath(path)
if (path !== undefined && path !== Settings.chromiumPath) await Settings.setChromiumPath(path)

return path
}
Expand Down
Loading